updated
This commit is contained in:
parent
e8b31ea3d4
commit
8ea5a726bf
12 changed files with 490 additions and 441 deletions
|
@ -16,13 +16,19 @@ fi
|
||||||
# environment variables
|
# environment variables
|
||||||
export EDITOR="~/.local/bin/lvim"
|
export EDITOR="~/.local/bin/lvim"
|
||||||
export VISUAL="neovide --neovim-bin ~/.local/bin/lvim"
|
export VISUAL="neovide --neovim-bin ~/.local/bin/lvim"
|
||||||
export MEDIA_DIR="$HOME/Media"
|
|
||||||
export TEMP_DIR="$HOME/Temporal"
|
|
||||||
|
|
||||||
# clean home
|
# clean home
|
||||||
export XDG_DATA_HOME="$HOME/.local/share"
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
export XDG_CACHE_HOME="$HOME/.cache"
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
export XDG_CONFIG_HOME="$HOME/.config"
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
export XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||||
|
export XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||||
|
export XDG_TEMPLATES_DIR="$HOME/Templates"
|
||||||
|
export XDG_PUBLICSHARE_DIR="$HOME/Public"
|
||||||
|
export XDG_DOCUMENTS_DIR="$HOME/Documents"
|
||||||
|
export XDG_MUSIC_DIR="$HOME/Music"
|
||||||
|
export XDG_PICTURES_DIR="$HOME/Pictures"
|
||||||
|
export XDG_VIDEOS_DIR="$HOME/Videos"
|
||||||
export W3M_DIR="$XDG_DATA_HOME/w3m"
|
export W3M_DIR="$XDG_DATA_HOME/w3m"
|
||||||
export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0"
|
export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0"
|
||||||
export INPUTRC="$HOME/.config/inputrc"
|
export INPUTRC="$HOME/.config/inputrc"
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
# - Dependencies: dmenu, power-profiles-daemon, slock
|
# - Dependencies: dmenu, power-profiles-daemon, slock
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
## Main menu options ##
|
## Main manu options ##
|
||||||
#######################
|
#######################
|
||||||
option1=" Logout"
|
option1=" Logout"
|
||||||
option2=" Reboot"
|
option2=" Reboot"
|
||||||
|
@ -13,18 +13,23 @@ option3=" Power off"
|
||||||
option4=" Suspend"
|
option4=" Suspend"
|
||||||
option5=" Lock"
|
option5=" Lock"
|
||||||
option6=" Change power profile"
|
option6=" Change power profile"
|
||||||
option7=" Cancel"
|
option7=" Exit"
|
||||||
options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6\n$option7"
|
options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6\n$option7"
|
||||||
|
|
||||||
############################
|
####################################
|
||||||
## Power profiles submenu ##
|
## Power profiles submenu options ##
|
||||||
############################
|
####################################
|
||||||
pwr1=" Performance"
|
pwr1=" Performance"
|
||||||
pwr2=" Balanced"
|
pwr2=" Balanced"
|
||||||
pwr3=" Power Saver"
|
pwr3=" Power Saver"
|
||||||
pwr4=" Cancel"
|
pwr4=" Cancel"
|
||||||
pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4"
|
pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4"
|
||||||
|
|
||||||
|
#####
|
||||||
|
## This variable will store the current power profile
|
||||||
|
#####
|
||||||
|
currentpwr=$(powerprofilesctl get)
|
||||||
|
|
||||||
##########
|
##########
|
||||||
## main ##
|
## main ##
|
||||||
##########
|
##########
|
||||||
|
@ -46,29 +51,45 @@ case "$action" in
|
||||||
slock;
|
slock;
|
||||||
;;
|
;;
|
||||||
"$option6")
|
"$option6")
|
||||||
currentpwr=$(powerprofilesctl get); # this variable will store the current power profile
|
#####
|
||||||
if [ "$currentpwr" = "performance" ]; then # this if statement is used for the power profiles prompt
|
## These conditions will be used for the prompt
|
||||||
currentpwr="$pwr1"
|
#####
|
||||||
|
if [ "$currentpwr" = "performance" ]; then
|
||||||
|
currentpwr="$pwr1";
|
||||||
elif [ "$currentpwr" = "balanced" ]; then
|
elif [ "$currentpwr" = "balanced" ]; then
|
||||||
currentpwr="$pwr2"
|
currentpwr="$pwr2";
|
||||||
elif [ "$currentpwr" = "power-saver" ]; then
|
elif [ "$currentpwr" = "power-saver" ]; then
|
||||||
currentpwr="$pwr3"
|
currentpwr="$pwr3";
|
||||||
fi
|
fi
|
||||||
pwraction=$(echo -e "$pwrs" | dmenu -i -p " Power Profile Menu - Currently set to: ${currentpwr}"); # power profiles submenu prompt
|
pwraction=$(echo -e "$pwrs" | dmenu -l 6 -i -p " Power Profile Menu - Currently set to: $currentpwr") # power profiles submenu prompt
|
||||||
case "$pwraction" in
|
case "$pwraction" in
|
||||||
"$pwr1")
|
"$pwr1")
|
||||||
powerprofilesctl set performance && notify-send "Power profile switched to performance";
|
if [ "$currentpwr" = "$pwr1" ]; then # if the power profile is already set to performance
|
||||||
|
notify-send "The power profile is already set to performance";
|
||||||
|
exit 1;
|
||||||
|
else
|
||||||
|
powerprofilesctl set performance && notify-send "Power profile switched to performance"; # if not, set the powerprofile to performance
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
"$pwr2")
|
"$pwr2")
|
||||||
powerprofilesctl set balanced && notify-send "Power profile switched to balanced";
|
if [ "$currentpwr" = "$pwr2" ]; then # if the power profile is already set to balanced
|
||||||
|
notify-send "The power profile is already set to balanced";
|
||||||
|
exit 1;
|
||||||
|
else
|
||||||
|
powerprofilesctl set balanced && notify-send "Power profile switched to balanced"; # if not, set the powerprofile to balanced
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
"$pwr3")
|
"$pwr3")
|
||||||
powerprofilesctl set power-saver && notify-send "Power profile switched to power saver";
|
if [ "$currentpwr" = "$pwr3" ]; then # if the power profile is already set to power saver
|
||||||
|
notify-send "The power profile is already set to power saver";
|
||||||
|
exit 1;
|
||||||
|
else
|
||||||
|
powerprofilesctl set power-saver && notify-send "Power profile switched to power saver"; # if not, set the powerprofile to power saver
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
"$pwr4")
|
"$pwr4")
|
||||||
exit 0
|
exit 0;
|
||||||
esac
|
esac;;
|
||||||
;;
|
|
||||||
"$option7")
|
"$option7")
|
||||||
exit 0
|
exit 0;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -7,15 +7,23 @@
|
||||||
###########################
|
###########################
|
||||||
## Screenshots Directory ##
|
## Screenshots Directory ##
|
||||||
###########################
|
###########################
|
||||||
SHOTDIR="$MEDIA_DIR/Pictures/Screenshots" # $MEDIA_DIR reffers to a global variable in .xinitrc/.bash_profile
|
SHOTDIR="$XDG_PICTURES_DIR/screenshots"
|
||||||
mkdir -p "$SHOTDIR"
|
mkdir -p "$SHOTDIR"
|
||||||
|
|
||||||
|
###########################
|
||||||
|
## Screencasts Directory ##
|
||||||
|
###########################
|
||||||
|
CASTDIR="$XDG_VIDEOS_DIR/screencasts"
|
||||||
|
mkdir -p "$CASTDIR"
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
## Main menu choices ##
|
## Main menu choices ##
|
||||||
#######################
|
#######################
|
||||||
mcho1=" Take an screenshot"
|
mcho1=" Take a screenshot"
|
||||||
mcho2=" Record the screen"
|
mcho2=" Record the screen"
|
||||||
mchos="$mcho1\n$mcho2"
|
mcho3=" Stop recording"
|
||||||
|
mcho4=" Exit"
|
||||||
|
mchos="$mcho1\n$mcho2\n$mcho3\n$mcho4"
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
## Screenshot menu choices ##
|
## Screenshot menu choices ##
|
||||||
|
@ -31,7 +39,7 @@ schos="$scho1\n$scho2\n$scho3\n$scho4\n$scho5"
|
||||||
## Screenshot submenu ##
|
## Screenshot submenu ##
|
||||||
########################
|
########################
|
||||||
sscho1=" Copy to clipboard"
|
sscho1=" Copy to clipboard"
|
||||||
sscho2=" Save to ~/Media/Pictures/Screenshots"
|
sscho2=" Save to $SHOTDIR"
|
||||||
sschos="$sscho1\n$sscho2"
|
sschos="$sscho1\n$sscho2"
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
|
@ -43,38 +51,25 @@ del3=" 10 sec delay"
|
||||||
dels="$del1\n$del2\n$del3"
|
dels="$del1\n$del2\n$del3"
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## This function uses the sschos variable
|
## This function uses the sschos variable to ask the user what to do with the
|
||||||
## to ask the user what to do with the
|
|
||||||
## screenshot
|
## screenshot
|
||||||
#####
|
#####
|
||||||
## param: none
|
|
||||||
## return: string
|
|
||||||
#####
|
|
||||||
fsschos() {
|
fsschos() {
|
||||||
sschoice=$(echo -e "$sschos" | dmenu -i -l 2 -p " What do you want to do with this screenshot?")
|
sschoice=$(echo -e "$sschos" | dmenu -i -l 2 -p " What do you want to do with this screenshot?")
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## This function uses the dels variable
|
## This function uses the dels variable to ask the user which delay option to
|
||||||
## to ask the user which delay option to
|
|
||||||
## choose
|
## choose
|
||||||
#####
|
#####
|
||||||
## param: none
|
|
||||||
## return: string
|
|
||||||
#####
|
|
||||||
fdel() {
|
fdel() {
|
||||||
del=$(echo -e "$dels" | dmenu -i -p " Select Delay")
|
del=$(echo -e "$dels" | dmenu -i -p " Select Delay")
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## This function does a full screen
|
## This function does a full screen screenshot without delay, depending on what
|
||||||
## screenshot without delay, depending on
|
## the user chooses on the fsschos function, the screenshot will be saved to the
|
||||||
## what the user chooses on the fsschos
|
## clipboard or to $SHOTDIR
|
||||||
## function, the screenshot will be saved
|
|
||||||
## to the clipboard or to $SHOTDIR
|
|
||||||
#####
|
|
||||||
## param: none
|
|
||||||
## return: void
|
|
||||||
#####
|
#####
|
||||||
shot_screen() {
|
shot_screen() {
|
||||||
fsschos
|
fsschos
|
||||||
|
@ -88,17 +83,10 @@ shot_screen() {
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## This function does a full screen
|
## This function does a full screen screenshot with delay, depending on what the
|
||||||
## screenshot with delay, depending on
|
## user chooses on the fsschos function, the screenshot will be saved to the
|
||||||
## what the user chooses on the fsschos
|
## clipboard or to $SHOTDIR. And depending on what the user chooses on the fdel
|
||||||
## function, the screenshot will be saved
|
## function, the delay will be between 3 and 10 seconds
|
||||||
## to the clipboard or to $SHOTDIR. And
|
|
||||||
## depending on what the user chooses on
|
|
||||||
## the fdel function, the delay will be
|
|
||||||
## between 3 and 10 seconds
|
|
||||||
#####
|
|
||||||
## param: none
|
|
||||||
## return: void
|
|
||||||
#####
|
#####
|
||||||
shot_screen_delay() {
|
shot_screen_delay() {
|
||||||
fsschos;
|
fsschos;
|
||||||
|
@ -118,13 +106,13 @@ shot_screen_delay() {
|
||||||
fdel;
|
fdel;
|
||||||
case $del in
|
case $del in
|
||||||
"$del1")
|
"$del1")
|
||||||
sleep 3 && maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
|
sleep 3 && maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to $SHOTDIR";
|
||||||
;;
|
;;
|
||||||
"$del2")
|
"$del2")
|
||||||
sleep 5 && maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
|
sleep 5 && maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to $SHOTDIR";
|
||||||
;;
|
;;
|
||||||
"$del3")
|
"$del3")
|
||||||
sleep 10 && maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
|
sleep 10 && maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to $SHOTDIR";
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -132,55 +120,75 @@ shot_screen_delay() {
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## This function allows the user to select
|
## This function allows the user to select the area on the screen to screenshot
|
||||||
## the area on screen to screenshot
|
## depending on what the user chooses on the fsschos function, the screenshot will
|
||||||
## depending on what the user chooses on
|
## be saved to the clipboard or to $SHOTDIR
|
||||||
## the fsschos function, the screenshot
|
|
||||||
## will be saved to the clipboard or to
|
|
||||||
## $SHOTDIR
|
|
||||||
#####
|
|
||||||
## param: none
|
|
||||||
## return: void
|
|
||||||
#####
|
#####
|
||||||
shot_area() {
|
shot_area() {
|
||||||
fsschos;
|
fsschos;
|
||||||
if [ "$sschoice" = "$sscho1" ]; then
|
if [ "$sschoice" = "$sscho1" ]; then
|
||||||
maim -s | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard";
|
maim -s | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard";
|
||||||
elif [ "$sschoice" = "$sscho2" ]; then
|
elif [ "$sschoice" = "$sscho2" ]; then
|
||||||
maim -s -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
|
maim -s -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to $SHOTDIR";
|
||||||
else
|
else
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## This function does an screnshot of the
|
## This function does a screenshot of the currently active window, depending
|
||||||
## currently active window, depending on
|
## on what the user chooses on the fsschos function, the screenshot will be
|
||||||
## what the user chooses on the fsschos
|
## saved to the clipboard or to $SHOTDIR
|
||||||
## function, the screenshot will be saved
|
|
||||||
## to the clipboard or to $SHOTDIR
|
|
||||||
#####
|
|
||||||
## param: none
|
|
||||||
## return: void
|
|
||||||
#####
|
#####
|
||||||
shot_window() {
|
shot_window() {
|
||||||
fsschos;
|
fsschos;
|
||||||
if [ "$sschoice" = "$sscho1" ]; then
|
if [ "$sschoice" = "$sscho1" ]; then
|
||||||
maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard";
|
maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard";
|
||||||
elif [ "$sschoice" = "$sscho2" ]; then
|
elif [ "$sschoice" = "$sscho2" ]; then
|
||||||
maim -i "$(xdotool getactivewindow)" -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
|
maim -i "$(xdotool getactivewindow)" -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to $SHOTDIR";
|
||||||
else
|
else
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#####
|
||||||
|
## This function uses ffmpeg to record the screen, It will check if ffmpeg is
|
||||||
|
## already running (already recording), to prevent the user from executing
|
||||||
|
## another ffmpeg instance, if it's not running, it will grab the screen
|
||||||
|
## resolution with xdpyinfo and use it to record the screen with ffmpeg.
|
||||||
|
#####
|
||||||
|
start_recording() {
|
||||||
|
if pgrep -x "ffmpeg" > /dev/null; then
|
||||||
|
notify-send "A screen recording is already in progress."
|
||||||
|
else
|
||||||
|
filename="$CASTDIR/$(date +%s).mp4"
|
||||||
|
resolution="$(xdpyinfo | grep dimensions | awk '{print $2}')"
|
||||||
|
ffmpeg -f x11grab -s "$resolution" -i :0.0 -c:v libx264 -preset ultrafast -qp 0 "$filename" &
|
||||||
|
notify-send "Screen recording started."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#####
|
||||||
|
## This function stops screen recording, it first checks if ffmpeg is already
|
||||||
|
## running (already recording), to only stop a recording if there's an ffmpeg
|
||||||
|
## instance running
|
||||||
|
#####
|
||||||
|
stop_recording() {
|
||||||
|
if pgrep -x "ffmpeg" > /dev/null; then
|
||||||
|
pkill -f "ffmpeg -f x11grab"
|
||||||
|
notify-send "Screen recording stopped. Video saved to $CASTDIR"
|
||||||
|
else
|
||||||
|
notify-send "You aren't recording anything at the moment"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
##########
|
##########
|
||||||
## main ##
|
## main ##
|
||||||
##########
|
##########
|
||||||
mchoice=$(echo -e "$mchos" | dmenu -i -l 2 -p " Screen Capture Menu") # main menu prompt
|
mchoice=$(echo -e "$mchos" | dmenu -i -l 4 -p " Screen Capture Menu") # main menu prompt
|
||||||
case $mchoice in
|
case $mchoice in
|
||||||
"$mcho1")
|
"$mcho1")
|
||||||
schoice=$(echo -e "$schos" | dmenu -i -l 9 -p " Sreenshot Menu") # screenshot menu prompt
|
schoice=$(echo -e "$schos" | dmenu -i -l 9 -p " Screenshot Menu") # screenshot menu prompt
|
||||||
case $schoice in
|
case $schoice in
|
||||||
"$scho1")
|
"$scho1")
|
||||||
shot_screen;
|
shot_screen;
|
||||||
|
@ -199,8 +207,12 @@ case $mchoice in
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"$mcho2")
|
"$mcho2")
|
||||||
# TODO Implement screencast functionality with ffmpeg
|
start_recording;
|
||||||
notify-send "Bro you need to implement screen recording with ffmpeg"
|
;;
|
||||||
exit 0
|
"$mcho3")
|
||||||
|
stop_recording;
|
||||||
|
;;
|
||||||
|
"$mcho4")
|
||||||
|
exit 0;
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
##########################
|
##########################
|
||||||
## Wallpapers Directory ##
|
## Wallpapers Directory ##
|
||||||
##########################
|
##########################
|
||||||
walldir="$MEDIA_DIR/Pictures/Wallpapers" # $MEDIA_DIR reffers to a global variable in .xinitrc/.bash_profile
|
walldir="$XDG_PICTURES_DIR/wallpapers"
|
||||||
cd "$walldir" || exit # we cd into $walldir in order to get only the file name on the main prompt
|
cd "$walldir" || exit # we cd into $walldir in order to get only the file name on the main prompt
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
|
|
|
@ -12,14 +12,16 @@ option2=" Turn off WiFi"
|
||||||
option3=" Disconnect WiFi"
|
option3=" Disconnect WiFi"
|
||||||
option4=" Connect WiFi"
|
option4=" Connect WiFi"
|
||||||
option5=" Setup captive portal"
|
option5=" Setup captive portal"
|
||||||
option6=" Exit"
|
option6=" Exit"
|
||||||
options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6"
|
options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6"
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## This variable will grab the wireless
|
## These variables will store specific
|
||||||
## interface name
|
## information about the wireless
|
||||||
|
## interface
|
||||||
#####
|
#####
|
||||||
wlan=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f1 | head -1)
|
wifi_info=$(nmcli dev | awk '/wifi/ {print $1,$3; exit}')
|
||||||
|
read -r wlan constate <<< "$wifi_info"
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## This function uses nmcli to turn
|
## This function uses nmcli to turn
|
||||||
|
@ -30,8 +32,7 @@ wlan=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f1 | head -1)
|
||||||
## return: void
|
## return: void
|
||||||
#####
|
#####
|
||||||
turnoff() {
|
turnoff() {
|
||||||
nmcli radio wifi off
|
nmcli radio wifi off && notify-send "WiFi has been turned off";
|
||||||
notify-send "WiFi has been turned off"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
|
@ -43,22 +44,26 @@ turnoff() {
|
||||||
## return: void
|
## return: void
|
||||||
#####
|
#####
|
||||||
turnon() {
|
turnon() {
|
||||||
nmcli radio wifi on
|
nmcli radio wifi on && notify-send "WiFi has been turned on";
|
||||||
notify-send "WiFi has been turned on"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
## This function uses nmcli and the
|
## This function uses nmcli and the
|
||||||
## $wlan variable to disconnect
|
## $wlan and $constate variables to
|
||||||
## from the wifi network and
|
## disconnect from the wifi network
|
||||||
## then sends a notification
|
## and then sends a notification
|
||||||
#####
|
#####
|
||||||
## param: none
|
## param: none
|
||||||
## return: void
|
## return: void
|
||||||
#####
|
#####
|
||||||
disconnect() {
|
disconnect() {
|
||||||
nmcli device disconnect "$wlan"
|
if [ "$constate" = "disconnected" ]; then
|
||||||
notify-send "WiFi has been disconnected"
|
notify-send "WiFi is already disconnected";
|
||||||
|
elif [ "$constate" = "connected" ]; then
|
||||||
|
nmcli device disconnect "$wlan" && notify-send "Wifi has been disconnected";
|
||||||
|
else
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
|
@ -71,10 +76,10 @@ disconnect() {
|
||||||
## return: string
|
## return: string
|
||||||
#####
|
#####
|
||||||
connect() {
|
connect() {
|
||||||
notify-send "Scannig WiFi networks, please wait"
|
notify-send "Scannig networks..." && nmcli dev wifi rescan;
|
||||||
nmcli dev wifi rescan
|
wifinet=$(nmcli -f BSSID,SSID,BARS,SECURITY dev wifi list | sed -n '1!p' | dmenu -i -l 10 -p " Select a Wifi Network");
|
||||||
sleep 1
|
bssid=$(echo "$wifinet" | cut -d' ' -f1)
|
||||||
bssid=$(nmcli device wifi list | sed -n '1!p' | cut -b 9- | dmenu -i -l 10 -p "Select a Wifi Network " | cut -d' ' -f1)
|
ssid=$(echo "$wifinet" | cut -d' ' -f3)
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
|
@ -85,11 +90,18 @@ connect() {
|
||||||
## return: string
|
## return: string
|
||||||
#####
|
#####
|
||||||
password() {
|
password() {
|
||||||
# TODO Create a condition to check if the chosen network is open or not, that
|
if nmcli connection show | grep -q "$ssid"; then # check if the network is already saved
|
||||||
# way this will be skipped of it's open
|
return 0; # no password is required
|
||||||
# TODO What if the network is already saved? The user doesn't need to type the
|
elif nmcli -f BSSID,SECURITY dev wifi list | sed -n '1!p' | grep "$bssid" | awk '{print $2}' | grep -q -- "--"; then # check if the network is open
|
||||||
# password again
|
return 0; # no password is required
|
||||||
pass=$(echo " " | dmenu -P -i -p "Enter Password ")
|
else
|
||||||
|
pass=$(dmenu -i -l 1 -P -p "Enter Password " --password);
|
||||||
|
if [ -n "$pass" ]; then # if the user gave a password
|
||||||
|
return 0;
|
||||||
|
else
|
||||||
|
exit 1; # if not, exit the script
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#####
|
#####
|
||||||
|
@ -101,28 +113,10 @@ password() {
|
||||||
## return: void
|
## return: void
|
||||||
#####
|
#####
|
||||||
action() {
|
action() {
|
||||||
# TODO Create a condition to check if the chosen network is open or not (check
|
if [ -n "$pass" ]; then # we need to check again if the $pass variable exists
|
||||||
# password funcion)
|
nmcli dev wifi connect "$bssid" password "$pass"
|
||||||
# TODO What if the network is already saved? The user doesn't need to type the
|
else # if not, that means that the password() function ended in one of the first two conditions, the network is saved or open
|
||||||
# password again
|
nmcli dev wifi connect "$bssid";
|
||||||
nmcli device wifi connect "$bssid" password "$pass" || nmcli device wifi connect "$bssid"
|
|
||||||
}
|
|
||||||
|
|
||||||
#####
|
|
||||||
## This function will check if the
|
|
||||||
## connection works
|
|
||||||
#####
|
|
||||||
## param: none
|
|
||||||
## return: void
|
|
||||||
#####
|
|
||||||
check() {
|
|
||||||
notify-send "Checking if connection was successful"
|
|
||||||
sleep 1
|
|
||||||
currentwfi=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f4 | head -1)
|
|
||||||
if ping -q -c 2 -W 2 google.com >/dev/null; then
|
|
||||||
notify-send "You are now connected to $currentwfi and internet is working properly"
|
|
||||||
else
|
|
||||||
notify-send "Your internet is not working :("
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,23 +126,25 @@ check() {
|
||||||
cases=$(echo -e "$options" | dmenu -l 6 -i -p " Wifi Settings" ) # main menu prompt
|
cases=$(echo -e "$options" | dmenu -l 6 -i -p " Wifi Settings" ) # main menu prompt
|
||||||
case "$cases" in
|
case "$cases" in
|
||||||
"$option1")
|
"$option1")
|
||||||
turnon;;
|
turnon;
|
||||||
|
;;
|
||||||
"$option2")
|
"$option2")
|
||||||
turnoff;;
|
turnoff;
|
||||||
|
;;
|
||||||
"$option3")
|
"$option3")
|
||||||
disconnect;;
|
disconnect;
|
||||||
|
;;
|
||||||
"$option4")
|
"$option4")
|
||||||
connect;
|
if connect; then # if the user chooses a network
|
||||||
if [ -n "$bssid" ]; then # if the user chooses a network
|
password; # this function will exit the script if the user didn't put a password
|
||||||
password;
|
|
||||||
action;
|
action;
|
||||||
sleep 5;
|
|
||||||
check;
|
|
||||||
else
|
else
|
||||||
exit 0; # if not, exit the script
|
exit 1; # if not, exit the script
|
||||||
fi;;
|
fi
|
||||||
|
;;
|
||||||
"$option5")
|
"$option5")
|
||||||
"$BROWSER" http://networkcheck.kde.org;; # $BROWSER reffers to a global variable set in .xinitrc/.bash_profile
|
io.elementary.capnet-assist;
|
||||||
|
;;
|
||||||
"$option6")
|
"$option6")
|
||||||
exit 0;
|
exit 0;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
/* appearance */
|
#include "tcl.c"
|
||||||
static const unsigned int borderpx = 1; /* border pixel of windows */
|
#include "movestack.c"
|
||||||
static const unsigned int snap = 32; /* snap pixel */
|
|
||||||
static const int showbar = 1; /* 0 means no bar */
|
// Appearance
|
||||||
static const int topbar = 1; /* 0 means bottom bar */
|
static const unsigned int borderpx = 1; // border pixel of windows
|
||||||
static const int horizpadbar = 2; /* horizontal padding for statusbar */
|
static const unsigned int snap = 32; // snap pixel
|
||||||
static const int vertpadbar = 4; /* vertical padding for statusbar */
|
static const int showbar = 1; // 0 means no bar
|
||||||
|
static const int topbar = 1; // 0 means bottom bar
|
||||||
|
static const int horizpadbar = 2; // horizontal padding for statusbar
|
||||||
|
static const int vertpadbar = 4; // vertical padding for statusbar
|
||||||
static const char *fonts[] = {"Symbols Nerd Font Mono:size=12", "mononoki Nerd Font:size=12"};
|
static const char *fonts[] = {"Symbols Nerd Font Mono:size=12", "mononoki Nerd Font:size=12"};
|
||||||
static const char dmenufont[] = {"mononoki Nerd Font:size=12"};
|
static const char dmenufont[] = {"mononoki Nerd Font:size=12"};
|
||||||
static const char col_gray1[] = "#1d2021";
|
static const char col_gray1[] = "#1d2021";
|
||||||
|
@ -14,37 +17,41 @@ static const char col_gray4[] = "#fbf1c7";
|
||||||
static const char col_cyan[] = "#cc241d";
|
static const char col_cyan[] = "#cc241d";
|
||||||
static const unsigned int baralpha = 0xd0;
|
static const unsigned int baralpha = 0xd0;
|
||||||
static const unsigned int borderalpha = OPAQUE;
|
static const unsigned int borderalpha = OPAQUE;
|
||||||
|
|
||||||
static const char *colors[][3] = {
|
static const char *colors[][3] = {
|
||||||
/* fg bg border */
|
// FB BG BORDER
|
||||||
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
|
[SchemeNorm] = {col_gray3, col_gray1, col_gray2},
|
||||||
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
|
[SchemeSel] = {col_gray4, col_cyan, col_cyan},
|
||||||
};
|
|
||||||
static const unsigned int alphas[][3] = {
|
|
||||||
/* fg bg border*/
|
|
||||||
[SchemeNorm] = { OPAQUE, baralpha, borderalpha },
|
|
||||||
[SchemeSel] = { OPAQUE, baralpha, borderalpha },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* scratchpads */
|
static const unsigned int alphas[][3] = {
|
||||||
|
// FB BG BORDER
|
||||||
|
[SchemeNorm] = {OPAQUE, baralpha, borderalpha},
|
||||||
|
[SchemeSel] = {OPAQUE, baralpha, borderalpha},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Scratchpads
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char *name;
|
const char *name;
|
||||||
const void *cmd;
|
const void *cmd;
|
||||||
} Sp;
|
} Sp;
|
||||||
const char *spcmd1[] = {"st", "-n", "sptrm", "-g", "140x35", NULL };
|
|
||||||
const char *spcmd2[] = {"st", "-n", "sptop", "-g", "140x35", "-e", "btop", NULL };
|
const char *spcmd1[] = {"st", "-n", "sptrm", "-g", "140x35", NULL};
|
||||||
const char *spcmd3[] = {"st", "-n", "spfli", "-g", "140x35", "-e", "flix-cli", NULL };
|
const char *spcmd2[] = {"st", "-n", "sptop", "-g", "140x35", "-e", "btop", NULL};
|
||||||
const char *spcmd4[] = {"st", "-n", "spani", "-g", "140x35", "-e", "ani-cli", NULL };
|
const char *spcmd3[] = {"st", "-n", "spfli", "-g", "140x35", "-e", "flix-cli", NULL};
|
||||||
const char *spcmd5[] = {"st", "-n", "spytf", "-g", "140x35", "-e", "ytfzf", "-flst", NULL };
|
const char *spcmd4[] = {"st", "-n", "spani", "-g", "140x35", "-e", "ani-cli", NULL};
|
||||||
const char *spcmd6[] = {"st", "-n", "spamx", "-g", "140x35", "-e", "alsamixer", NULL };
|
const char *spcmd5[] = {"st", "-n", "spytf", "-g", "140x35", "-e", "ytfzf", "-flst", NULL};
|
||||||
const char *spcmd7[] = {"st", "-n", "sppmx", "-g", "140x35", "-e", "pulsemixer", NULL };
|
const char *spcmd6[] = {"st", "-n", "spamx", "-g", "140x35", "-e", "alsamixer", NULL};
|
||||||
const char *spcmd8[] = {"st", "-n", "spmsc", "-g", "140x35", "-e", "cmus", NULL };
|
const char *spcmd7[] = {"st", "-n", "sppmx", "-g", "140x35", "-e", "pulsemixer", NULL};
|
||||||
const char *spcmd9[] = {"st", "-n", "spflm", "-g", "140x35", "-e", ".config/vifm/scripts/vifmrun", NULL };
|
const char *spcmd8[] = {"st", "-n", "spmsc", "-g", "140x35", "-e", "cmus", NULL};
|
||||||
const char *spcmd10[] = {"st", "-n", "spytm", "-g", "140x35", "-e", "ytfzf", "-mlst", NULL };
|
const char *spcmd9[] = {"st", "-n", "spflm", "-g", "140x35", "-e", ".config/vifm/scripts/vifmrun", NULL};
|
||||||
const char *spcmd11[] = {"st", "-n", "sprss", "-g", "140x35", "-e", "newsboat", NULL };
|
const char *spcmd10[] = {"st", "-n", "spytm", "-g", "140x35", "-e", "ytfzf", "-mlst", NULL};
|
||||||
const char *spcmd12[] = {"st", "-n", "spgkk", "-g", "140x35", "-e", "geek-life", NULL };
|
const char *spcmd11[] = {"st", "-n", "sprss", "-g", "140x35", "-e", "newsboat", NULL};
|
||||||
const char *spcmd13[] = {"st", "-n", "sptut", "-g", "140x35", "-e", "tut", NULL };
|
const char *spcmd12[] = {"st", "-n", "spgkk", "-g", "140x35", "-e", "geek-life", NULL};
|
||||||
|
const char *spcmd13[] = {"st", "-n", "sptut", "-g", "140x35", "-e", "tut", NULL};
|
||||||
|
|
||||||
static Sp scratchpads[] = {
|
static Sp scratchpads[] = {
|
||||||
/* name cmd */
|
// NAME CMD
|
||||||
{"sptrm", spcmd1},
|
{"sptrm", spcmd1},
|
||||||
{"sptop", spcmd2},
|
{"sptop", spcmd2},
|
||||||
{"spfli", spcmd3},
|
{"spfli", spcmd3},
|
||||||
|
@ -60,7 +67,7 @@ static Sp scratchpads[] = {
|
||||||
{"sptut", spcmd13},
|
{"sptut", spcmd13},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* tagging */
|
// Tags
|
||||||
static const char *tags[] = {
|
static const char *tags[] = {
|
||||||
"", // EDITOR
|
"", // EDITOR
|
||||||
"", // TESTING
|
"", // TESTING
|
||||||
|
@ -73,229 +80,225 @@ static const char *tags[] = {
|
||||||
"" // GAMES
|
"" // GAMES
|
||||||
};
|
};
|
||||||
|
|
||||||
// rules
|
// Rules
|
||||||
static const Rule rules[] = {
|
static const Rule rules[] = {
|
||||||
/* xprop(1):
|
/* xprop(1):
|
||||||
* WM_CLASS(STRING) = instance, class
|
* WM_CLASS(STRING) = instance, class
|
||||||
* WM_NAME(STRING) = title
|
* WM_NAME(STRING) = title
|
||||||
*/
|
*/
|
||||||
// class instance title tags mask isfloating monitor
|
// CLASS INSTANCE TITLE TAGS MASK ISFLOATING MONITOR
|
||||||
// no workspace
|
// no workspace
|
||||||
{ "Galculator", NULL, NULL, 0, 1, -1 },
|
{"Galculator", NULL, NULL, 0, 1, -1},
|
||||||
// code tag
|
// code tag
|
||||||
{ "Emacs", NULL, NULL, 1, 0, -1 },
|
{"Emacs", NULL, NULL, 1, 0, -1},
|
||||||
{ "Godot", NULL, NULL, 1, 0, -1 },
|
{"Godot", NULL, NULL, 1, 0, -1},
|
||||||
{ "neovim", NULL, NULL, 1, 0, -1 },
|
{"neovim", NULL, NULL, 1, 0, -1},
|
||||||
{ "neovide", NULL, NULL, 1, 0, -1 },
|
{"neovide", NULL, NULL, 1, 0, -1},
|
||||||
// test tag
|
// test tag
|
||||||
{ "Virt-manager", NULL, NULL, 1 << 1, 0, -1 },
|
{"Virt-manager", NULL, NULL, 1 << 1, 0, -1},
|
||||||
{ "Gnome-boxes", NULL, NULL, 1 << 1, 0, -1 },
|
{"Gnome-boxes", NULL, NULL, 1 << 1, 0, -1},
|
||||||
// web tag
|
// web tag
|
||||||
{ "LibreWolf", NULL, NULL, 1 << 2, 0, -1 },
|
{"LibreWolf", NULL, NULL, 1 << 2, 0, -1},
|
||||||
{ "librewolf-default", NULL, NULL, 1 << 2, 0, -1 },
|
{"librewolf-default", NULL, NULL, 1 << 2, 0, -1},
|
||||||
{ "firefox", NULL, NULL, 1 << 2, 0, -1 },
|
{"firefox", NULL, NULL, 1 << 2, 0, -1},
|
||||||
{ "qutebrowser", NULL, NULL, 1 << 2, 0, -1 },
|
{"qutebrowser", NULL, NULL, 1 << 2, 0, -1},
|
||||||
{ "Chromium", NULL, NULL, 1 << 2, 0, -1 },
|
{"Chromium", NULL, NULL, 1 << 2, 0, -1},
|
||||||
{ "Brave-browser", NULL, NULL, 1 << 2, 0, -1 },
|
{"Brave-browser", NULL, NULL, 1 << 2, 0, -1},
|
||||||
{ "Bitwarden", NULL, NULL, 1 << 2, 0, -1 },
|
{"Bitwarden", NULL, NULL, 1 << 2, 0, -1},
|
||||||
{ "newsboat", NULL, NULL, 1 << 2, 0, -1 },
|
{"newsboat", NULL, NULL, 1 << 2, 0, -1},
|
||||||
// chat tag
|
// chat tag
|
||||||
{ "Signal", NULL, NULL, 1 << 3, 0, -1 },
|
{"Signal", NULL, NULL, 1 << 3, 0, -1},
|
||||||
// audio tools tag
|
// audio tools tag
|
||||||
{ "Audacity", NULL, NULL, 1 << 4, 0, -1 },
|
{"Audacity", NULL, NULL, 1 << 4, 0, -1},
|
||||||
{ "Ardour", NULL, NULL, 1 << 4, 0, -1 },
|
{"Ardour", NULL, NULL, 1 << 4, 0, -1},
|
||||||
{ "Carla2", NULL, NULL, 1 << 4, 0, -1 },
|
{"Carla2", NULL, NULL, 1 << 4, 0, -1},
|
||||||
{ "Carla2-Control", NULL, NULL, 1 << 4, 0, -1 },
|
{"Carla2-Control", NULL, NULL, 1 << 4, 0, -1},
|
||||||
{ "QjackCtl", NULL, NULL, 1 << 4, 1, -1 },
|
{"QjackCtl", NULL, NULL, 1 << 4, 1, -1},
|
||||||
{ "lsp-plugins", NULL, NULL, 1 << 4, 1, -1 },
|
{"lsp-plugins", NULL, NULL, 1 << 4, 1, -1},
|
||||||
{ "qpwgraph", NULL, NULL, 1 << 4, 0, -1 },
|
{"qpwgraph", NULL, NULL, 1 << 4, 0, -1},
|
||||||
{ "Cadence", NULL, NULL, 1 << 4, 0, -1 },
|
{"Cadence", NULL, NULL, 1 << 4, 0, -1},
|
||||||
{ "easyeffects", NULL, NULL, 1 << 4, 0, -1 },
|
{"easyeffects", NULL, NULL, 1 << 4, 0, -1},
|
||||||
// video tag
|
// video tag
|
||||||
{ "kdenlive", NULL, NULL, 1 << 5, 0, -1 },
|
{"kdenlive", NULL, NULL, 1 << 5, 0, -1},
|
||||||
{ "Pitivi", NULL, NULL, 1 << 5, 0, -1 },
|
{"Pitivi", NULL, NULL, 1 << 5, 0, -1},
|
||||||
{ "Blender", NULL, NULL, 1 << 5, 0, -1 },
|
{"Blender", NULL, NULL, 1 << 5, 0, -1},
|
||||||
{ "Natron", NULL, NULL, 1 << 5, 0, -1 },
|
{"Natron", NULL, NULL, 1 << 5, 0, -1},
|
||||||
{ "SimpleScreenRecorder", NULL, NULL, 1 << 5, 0, -1 },
|
{"SimpleScreenRecorder", NULL, NULL, 1 << 5, 0, -1},
|
||||||
{ "Ghb", NULL, NULL, 1 << 5, 0, -1 },
|
{"Ghb", NULL, NULL, 1 << 5, 0, -1},
|
||||||
{ "obs", NULL, NULL, 1 << 5, 0, -1 },
|
{"obs", NULL, NULL, 1 << 5, 0, -1},
|
||||||
{ "mpv", NULL, NULL, 1 << 5, 0, -1 },
|
{"mpv", NULL, NULL, 1 << 5, 0, -1},
|
||||||
// graphics/extra tools tag
|
// graphics/extra tools tag
|
||||||
{ "Gimp-2.10", NULL, NULL, 1 << 6, 0, -1 },
|
{"Gimp-2.10", NULL, NULL, 1 << 6, 0, -1},
|
||||||
{ "krita", NULL, NULL, 1 << 6, 0, -1 },
|
{"krita", NULL, NULL, 1 << 6, 0, -1},
|
||||||
{ "Inkscape", NULL, NULL, 1 << 6, 0, -1 },
|
{"Inkscape", NULL, NULL, 1 << 6, 0, -1},
|
||||||
{ "Xournalpp", NULL, NULL, 1 << 6, 0, -1 },
|
{"Xournalpp", NULL, NULL, 1 << 6, 0, -1},
|
||||||
// office tag
|
// office tag
|
||||||
{ "DesktopEditors", NULL, NULL, 1 << 7, 0, -1 },
|
{"DesktopEditors", NULL, NULL, 1 << 7, 0, -1},
|
||||||
{ "Soffice", "soffice", NULL, 1 << 7, 0, -1 },
|
{"Soffice", "soffice", NULL, 1 << 7, 0, -1},
|
||||||
{ "libreoffice-startcenter", NULL, NULL, 1 << 7, 0, -1 },
|
{"libreoffice-startcenter", NULL, NULL, 1 << 7, 0, -1},
|
||||||
{ "libreoffice-calc", NULL, NULL, 1 << 7, 0, -1 },
|
{"libreoffice-calc", NULL, NULL, 1 << 7, 0, -1},
|
||||||
{ "libreoffice-writer", NULL, NULL, 1 << 7, 0, -1 },
|
{"libreoffice-writer", NULL, NULL, 1 << 7, 0, -1},
|
||||||
{ "libreoffice-impress", NULL, NULL, 1 << 7, 0, -1 },
|
{"libreoffice-impress", NULL, NULL, 1 << 7, 0, -1},
|
||||||
{ "libreoffice-base", NULL, NULL, 1 << 7, 0, -1 },
|
{"libreoffice-base", NULL, NULL, 1 << 7, 0, -1},
|
||||||
{ "libreoffice-draw", NULL, NULL, 1 << 7, 0, -1 },
|
{"libreoffice-draw", NULL, NULL, 1 << 7, 0, -1},
|
||||||
{ "libreoffice-math", NULL, NULL, 1 << 7, 0, -1 },
|
{"libreoffice-math", NULL, NULL, 1 << 7, 0, -1},
|
||||||
{ "Joplin", NULL, NULL, 1 << 7, 0, -1 },
|
{"Joplin", NULL, NULL, 1 << 7, 0, -1},
|
||||||
// games tag
|
// games tag
|
||||||
{ "retroarch", NULL, NULL, 1 << 8, 0, -1 },
|
{"retroarch", NULL, NULL, 1 << 8, 0, -1},
|
||||||
{ "steam", NULL, NULL, 1 << 8, 0, -1 },
|
{"steam", NULL, NULL, 1 << 8, 0, -1},
|
||||||
// scratchpads
|
// scratchpads
|
||||||
{ NULL, "sptrm", NULL, SPTAG(0), 1, -1 },
|
{NULL, "sptrm", NULL, SPTAG(0), 1, -1},
|
||||||
{ NULL, "sptop", NULL, SPTAG(1), 1, -1 },
|
{NULL, "sptop", NULL, SPTAG(1), 1, -1},
|
||||||
{ NULL, "spfli", NULL, SPTAG(2), 1, -1 },
|
{NULL, "spfli", NULL, SPTAG(2), 1, -1},
|
||||||
{ NULL, "spani", NULL, SPTAG(3), 1, -1 },
|
{NULL, "spani", NULL, SPTAG(3), 1, -1},
|
||||||
{ NULL, "spytf", NULL, SPTAG(4), 1, -1 },
|
{NULL, "spytf", NULL, SPTAG(4), 1, -1},
|
||||||
{ NULL, "spamx", NULL, SPTAG(5), 1, -1 },
|
{NULL, "spamx", NULL, SPTAG(5), 1, -1},
|
||||||
{ NULL, "sppmx", NULL, SPTAG(6), 1, -1 },
|
{NULL, "sppmx", NULL, SPTAG(6), 1, -1},
|
||||||
{ NULL, "spmsc", NULL, SPTAG(7), 1, -1 },
|
{NULL, "spmsc", NULL, SPTAG(7), 1, -1},
|
||||||
{ NULL, "spflm", NULL, SPTAG(8), 1, -1 },
|
{NULL, "spflm", NULL, SPTAG(8), 1, -1},
|
||||||
{ NULL, "spytm", NULL, SPTAG(9), 1, -1 },
|
{NULL, "spytm", NULL, SPTAG(9), 1, -1},
|
||||||
{ NULL, "sprss", NULL, SPTAG(10), 1, -1 },
|
{NULL, "sprss", NULL, SPTAG(10), 1, -1},
|
||||||
{ NULL, "spgkk", NULL, SPTAG(11), 1, -1 },
|
{NULL, "spgkk", NULL, SPTAG(11), 1, -1},
|
||||||
{ NULL, "sptut", NULL, SPTAG(12), 1, -1 },
|
{NULL, "sptut", NULL, SPTAG(12), 1, -1},
|
||||||
};
|
};
|
||||||
|
|
||||||
// layout(s)
|
// Layout(s)
|
||||||
static const float mfact = 0.5; /* factor of master area size [0.05..0.95] */
|
static const float mfact = 0.5; // factor of master area size [0.05..0.95]
|
||||||
static const int nmaster = 1; /* number of clients in master area */
|
static const int nmaster = 1; // number of clients in master area
|
||||||
static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
|
static const int resizehints = 1; // 1 means respect size hints in tiled resizals
|
||||||
static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
|
static const int lockfullscreen = 1; // 1 will force focus on the fullscreen window
|
||||||
|
|
||||||
#include "tcl.c"
|
|
||||||
static const Layout layouts[] = {
|
static const Layout layouts[] = {
|
||||||
/* symbol arrange function */
|
// SYMBOL ARRANGE FUNCTION
|
||||||
{ "[]=", tile }, /* first entry is default */
|
{"[]=", tile}, // first entry is default
|
||||||
{ "><>", NULL }, /* no layout function means floating behavior */
|
{"><>", NULL}, // no layout function means floating behavior
|
||||||
{ "[M]", monocle },
|
{"[M]", monocle},
|
||||||
{ "|||", tcl },
|
{"|||", tcl},
|
||||||
};
|
};
|
||||||
|
|
||||||
// key definitions
|
// Key definitions
|
||||||
#define MODKEY Mod4Mask
|
#define MODKEY Mod4Mask
|
||||||
#define TAGKEYS(KEY,TAG) \
|
#define TAGKEYS(KEY,TAG) \
|
||||||
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
|
{MODKEY, KEY, view, {.ui = 1 << TAG}}, \
|
||||||
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
|
{MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG}}, \
|
||||||
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
|
{MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG}}, \
|
||||||
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
|
{MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG}},
|
||||||
|
|
||||||
// helper for spawning shell commands in the pre dwm-5.0 fashion
|
// Helper for spawning shell commands in the pre dwm-5.0 fashion
|
||||||
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
|
#define SHCMD(cmd) {.v = (const char*[]){ "/bin/sh", "-c", cmd, NULL}}
|
||||||
|
|
||||||
/* commands */
|
// Commands
|
||||||
// dmenu
|
// dmenu
|
||||||
static const char *dmenucmd[] = { "dmenu_run", "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
|
static const char *dmenucmd[] = {"dmenu_run", "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL};
|
||||||
// terminal
|
// terminal
|
||||||
static const char *termcmd[] = { "st", NULL };
|
static const char *termcmd[] = {"st", NULL};
|
||||||
|
|
||||||
#include "movestack.c"
|
|
||||||
|
|
||||||
static const Key keys[] = {
|
static const Key keys[] = {
|
||||||
/* modifier key function argument */
|
// MODIFIER KEY FUNCTION ARGUMENT
|
||||||
|
// main apps
|
||||||
/* main apps*/
|
|
||||||
// terminal
|
// terminal
|
||||||
{ MODKEY, XK_Return, spawn, {.v = termcmd } },
|
{MODKEY, XK_Return, spawn, {.v = termcmd}},
|
||||||
// text editor
|
// text editor
|
||||||
{ MODKEY, XK_e, spawn, SHCMD("neovide --neovim-bin ~/.local/bin/lvim")},
|
{MODKEY, XK_e, spawn, SHCMD("neovide --neovim-bin ~/.local/bin/lvim")},
|
||||||
// web browser
|
// web browser
|
||||||
{ MODKEY, XK_w, spawn, SHCMD("qutebrowser")},
|
{MODKEY, XK_w, spawn, SHCMD("qutebrowser")},
|
||||||
// chat
|
// chat
|
||||||
{ MODKEY, XK_s, spawn, SHCMD("signal-desktop")},
|
{MODKEY, XK_s, spawn, SHCMD("org.signal.Signal")},
|
||||||
|
|
||||||
/* keyboard layout */
|
// keyboard layout
|
||||||
// set keyboard layout to es
|
// set keyboard layout to es
|
||||||
{ MODKEY|ControlMask, XK_e, spawn, SHCMD("setxkbmap -layout es && pkill -RTMIN+10 dwmblocks")},
|
{MODKEY|ControlMask, XK_e, spawn, SHCMD("setxkbmap -layout es && pkill -RTMIN+10 dwmblocks")},
|
||||||
// set keyboard layout to us
|
// set keyboard layout to us
|
||||||
{ MODKEY|ControlMask, XK_u, spawn, SHCMD("setxkbmap -layout us && pkill -RTMIN+10 dwmblocks")},
|
{MODKEY|ControlMask, XK_u, spawn, SHCMD("setxkbmap -layout us && pkill -RTMIN+10 dwmblocks")},
|
||||||
|
|
||||||
/* XF86 Keys */
|
// XF86 Keys
|
||||||
// increase volume
|
// increase volume
|
||||||
{ 0, XF86XK_AudioRaiseVolume, spawn, SHCMD("pamixer -i 5 && pkill -RTMIN+10 dwmblocks")},
|
{0, XF86XK_AudioRaiseVolume, spawn, SHCMD("pamixer -i 5 && pkill -RTMIN+10 dwmblocks")},
|
||||||
// decrease volume
|
// decrease volume
|
||||||
{ 0, XF86XK_AudioLowerVolume, spawn, SHCMD("pamixer -d 5 && pkill -RTMIN+10 dwmblocks")},
|
{0, XF86XK_AudioLowerVolume, spawn, SHCMD("pamixer -d 5 && pkill -RTMIN+10 dwmblocks")},
|
||||||
// mute volume
|
// mute volume
|
||||||
{ 0, XF86XK_AudioMute, spawn, SHCMD("pamixer -t && pkill -RTMIN+10 dwmblocks")},
|
{0, XF86XK_AudioMute, spawn, SHCMD("pamixer -t && pkill -RTMIN+10 dwmblocks")},
|
||||||
// mute microphone
|
// mute microphone
|
||||||
{ 0, XF86XK_AudioMicMute, spawn, SHCMD("pamixer --default-source -t && pkill -RTMIN+10 dwmblocks")},
|
{0, XF86XK_AudioMicMute, spawn, SHCMD("pamixer --default-source -t && pkill -RTMIN+10 dwmblocks")},
|
||||||
// increase brightness
|
// increase brightness
|
||||||
{ 0, XF86XK_MonBrightnessUp, spawn, SHCMD("brightnessctl s 5%+ && pkill -RTMIN+10 dwmblocks")},
|
{0, XF86XK_MonBrightnessUp, spawn, SHCMD("brightnessctl s 5%+ && pkill -RTMIN+10 dwmblocks")},
|
||||||
// decrease brightness
|
// decrease brightness
|
||||||
{ 0, XF86XK_MonBrightnessDown, spawn, SHCMD("brightnessctl s 5%- && pkill -RTMIN+10 dwmblocks")},
|
{0, XF86XK_MonBrightnessDown, spawn, SHCMD("brightnessctl s 5%- && pkill -RTMIN+10 dwmblocks")},
|
||||||
// display settings
|
// display settings
|
||||||
{ 0, XF86XK_Display, spawn, SHCMD("arandr")},
|
{0, XF86XK_Display, spawn, SHCMD("arandr")},
|
||||||
// play/pause
|
// play/pause
|
||||||
{ 0, XF86XK_AudioPause, spawn, SHCMD("playerctl play-pause")},
|
{0, XF86XK_AudioPause, spawn, SHCMD("playerctl play-pause")},
|
||||||
// play/pause
|
// play/pause
|
||||||
{ 0, XF86XK_AudioPlay, spawn, SHCMD("playerctl play-pause")},
|
{0, XF86XK_AudioPlay, spawn, SHCMD("playerctl play-pause")},
|
||||||
// next
|
// next
|
||||||
{ 0, XF86XK_AudioNext, spawn, SHCMD("playerctl next")},
|
{0, XF86XK_AudioNext, spawn, SHCMD("playerctl next")},
|
||||||
// previous
|
// previous
|
||||||
{ 0, XF86XK_AudioPrev, spawn, SHCMD("playerctl previous")},
|
{0, XF86XK_AudioPrev, spawn, SHCMD("playerctl previous")},
|
||||||
// stop
|
// stop
|
||||||
{ 0, XF86XK_AudioStop, spawn, SHCMD("playerctl stop")},
|
{0, XF86XK_AudioStop, spawn, SHCMD("playerctl stop")},
|
||||||
// news
|
// news
|
||||||
{ 0, XF86XK_News, spawn, SHCMD("st -n newsboat -c newsboat -e newsboat")},
|
{0, XF86XK_News, spawn, SHCMD("st -n newsboat -c newsboat -e newsboat")},
|
||||||
|
|
||||||
/* dmenu */
|
// dmenu
|
||||||
// launcher
|
// launcher
|
||||||
{ MODKEY|ShiftMask, XK_r, spawn, {.v = dmenucmd } },
|
{MODKEY|ShiftMask, XK_r, spawn, {.v = dmenucmd}},
|
||||||
// desktop launcher
|
// desktop launcher
|
||||||
{ MODKEY|ShiftMask, XK_d, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_drun") },
|
{MODKEY|ShiftMask, XK_d, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_drun")},
|
||||||
// wifi config
|
// wifi config
|
||||||
{ MODKEY|ShiftMask, XK_i, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_wifi") },
|
{MODKEY|ShiftMask, XK_i, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_wifi")},
|
||||||
// screenshots
|
// screenshots
|
||||||
{ MODKEY, XK_Print, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_scrot") },
|
{MODKEY, XK_Print, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_scrot")},
|
||||||
// wallpapers
|
// wallpapers
|
||||||
{ MODKEY|ShiftMask, XK_w, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_wall") },
|
{MODKEY|ShiftMask, XK_w, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_wall")},
|
||||||
// edit
|
// edit
|
||||||
{ MODKEY|ShiftMask, XK_e, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_edit") },
|
{MODKEY|ShiftMask, XK_e, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_edit")},
|
||||||
// bluetooth
|
// bluetooth
|
||||||
{ MODKEY|ShiftMask, XK_b, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_blue") },
|
{MODKEY|ShiftMask, XK_b, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_blue")},
|
||||||
// power manager
|
// power manager
|
||||||
{ MODKEY|ShiftMask, XK_q, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_power")},
|
{MODKEY|ShiftMask, XK_q, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_power")},
|
||||||
|
|
||||||
/* window management */
|
// window management
|
||||||
// window focusing
|
// window focusing
|
||||||
{ MODKEY, XK_j, focusstack, {.i = +1 } },
|
{MODKEY, XK_j, focusstack, {.i = +1}},
|
||||||
{ MODKEY, XK_k, focusstack, {.i = -1 } },
|
{MODKEY, XK_k, focusstack, {.i = -1}},
|
||||||
// increase and decrease master clients count
|
// increase and decrease master clients count
|
||||||
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
|
{MODKEY, XK_i, incnmaster, {.i = +1}},
|
||||||
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
|
{MODKEY, XK_d, incnmaster, {.i = -1}},
|
||||||
// increase and decrease master client size
|
// increase and decrease master client size
|
||||||
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
{MODKEY, XK_h, setmfact, {.f = -0.05}},
|
||||||
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
{MODKEY, XK_l, setmfact, {.f = +0.05}},
|
||||||
// move windows on stack
|
// move windows on stack
|
||||||
{ MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } },
|
{MODKEY|ShiftMask, XK_j, movestack, {.i = +1}},
|
||||||
{ MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } },
|
{MODKEY|ShiftMask, XK_k, movestack, {.i = -1}},
|
||||||
// switch master window
|
// switch master window
|
||||||
{ MODKEY|ControlMask, XK_Return, zoom, {0} },
|
{MODKEY|ControlMask, XK_Return, zoom, {0}},
|
||||||
// switch to latest tag
|
// switch to latest tag
|
||||||
{ MODKEY, XK_Tab, view, {0} },
|
{MODKEY, XK_Tab, view, {0}},
|
||||||
// close focused client
|
// close focused client
|
||||||
{ MODKEY, XK_q, killclient, {0} },
|
{MODKEY, XK_q, killclient, {0}},
|
||||||
// switch to tiling layout
|
// switch to tiling layout
|
||||||
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
|
{MODKEY, XK_t, setlayout, {.v = &layouts[0]}},
|
||||||
// switch to floating layout
|
// switch to floating layout
|
||||||
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
|
{MODKEY, XK_f, setlayout, {.v = &layouts[1]}},
|
||||||
// switch to monocle layout
|
// switch to monocle layout
|
||||||
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
{MODKEY, XK_m, setlayout, {.v = &layouts[2]}},
|
||||||
// switch to three-column layout
|
// switch to three-column layout
|
||||||
{ MODKEY, XK_c, setlayout, {.v = &layouts[3]} },
|
{MODKEY, XK_c, setlayout, {.v = &layouts[3]}},
|
||||||
// switch to latest layout
|
// switch to latest layout
|
||||||
{ MODKEY, XK_space, setlayout, {0} },
|
{MODKEY, XK_space, setlayout, {0}},
|
||||||
// toggle floating mode on focused window
|
// toggle floating mode on focused window
|
||||||
{ MODKEY|ControlMask, XK_space, togglefloating, {0} },
|
{MODKEY|ControlMask, XK_space, togglefloating, {0}},
|
||||||
// view all opened clients on current tag
|
// view all opened clients on current tag
|
||||||
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
{MODKEY, XK_0, view, {.ui = ~0}},
|
||||||
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
{MODKEY|ShiftMask, XK_0, tag, {.ui = ~0}},
|
||||||
// focus next or previous screen
|
// focus next or previous screen
|
||||||
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
{MODKEY, XK_comma, focusmon, {.i = -1}},
|
||||||
{ MODKEY, XK_period, focusmon, {.i = +1 } },
|
{MODKEY, XK_period, focusmon, {.i = +1}},
|
||||||
// move focused client to next or previous screen
|
// move focused client to next or previous screen
|
||||||
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
|
{MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1}},
|
||||||
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
|
{MODKEY|ShiftMask, XK_period, tagmon, {.i = +1}},
|
||||||
|
|
||||||
/* tags */
|
// tags
|
||||||
TAGKEYS( XK_1, 0)
|
TAGKEYS( XK_1, 0)
|
||||||
TAGKEYS( XK_2, 1)
|
TAGKEYS( XK_2, 1)
|
||||||
TAGKEYS( XK_3, 2)
|
TAGKEYS( XK_3, 2)
|
||||||
|
@ -306,45 +309,44 @@ static const Key keys[] = {
|
||||||
TAGKEYS( XK_8, 7)
|
TAGKEYS( XK_8, 7)
|
||||||
TAGKEYS( XK_9, 8)
|
TAGKEYS( XK_9, 8)
|
||||||
|
|
||||||
/* scratchpads */
|
// scratchpads
|
||||||
{ MODKEY|Mod1Mask, XK_Return, togglescratch, {.ui = 0 } },
|
{MODKEY|Mod1Mask, XK_Return, togglescratch, {.ui = 0 }},
|
||||||
{ MODKEY|Mod1Mask, XK_b, togglescratch, {.ui = 1 } },
|
{MODKEY|Mod1Mask, XK_b, togglescratch, {.ui = 1 }},
|
||||||
{ MODKEY|Mod1Mask, XK_f, togglescratch, {.ui = 2 } },
|
{MODKEY|Mod1Mask, XK_f, togglescratch, {.ui = 2 }},
|
||||||
{ MODKEY|Mod1Mask, XK_a, togglescratch, {.ui = 3 } },
|
{MODKEY|Mod1Mask, XK_a, togglescratch, {.ui = 3 }},
|
||||||
{ MODKEY|Mod1Mask, XK_y, togglescratch, {.ui = 4 } },
|
{MODKEY|Mod1Mask, XK_y, togglescratch, {.ui = 4 }},
|
||||||
{ MODKEY|Mod1Mask, XK_o, togglescratch, {.ui = 5 } },
|
{MODKEY|Mod1Mask, XK_o, togglescratch, {.ui = 5 }},
|
||||||
{ MODKEY|Mod1Mask, XK_p, togglescratch, {.ui = 6 } },
|
{MODKEY|Mod1Mask, XK_p, togglescratch, {.ui = 6 }},
|
||||||
{ MODKEY|Mod1Mask, XK_m, togglescratch, {.ui = 7 } },
|
{MODKEY|Mod1Mask, XK_m, togglescratch, {.ui = 7 }},
|
||||||
{ MODKEY|Mod1Mask, XK_v, togglescratch, {.ui = 8 } },
|
{MODKEY|Mod1Mask, XK_v, togglescratch, {.ui = 8 }},
|
||||||
{ MODKEY|Mod1Mask, XK_n, togglescratch, {.ui = 9 } },
|
{MODKEY|Mod1Mask, XK_n, togglescratch, {.ui = 9 }},
|
||||||
{ MODKEY|Mod1Mask, XK_r, togglescratch, {.ui = 10 } },
|
{MODKEY|Mod1Mask, XK_r, togglescratch, {.ui = 10 }},
|
||||||
{ MODKEY|Mod1Mask, XK_g, togglescratch, {.ui = 11 } },
|
{MODKEY|Mod1Mask, XK_g, togglescratch, {.ui = 11 }},
|
||||||
{ MODKEY|Mod1Mask, XK_t, togglescratch, {.ui = 12 } },
|
{MODKEY|Mod1Mask, XK_t, togglescratch, {.ui = 12 }},
|
||||||
|
|
||||||
/* misc */
|
// misc
|
||||||
// logout
|
// logout
|
||||||
//{ MODKEY|ShiftMask, XK_q, quit, {0} },
|
//{ MODKEY|ShiftMask, XK_q, quit, {0} },
|
||||||
// toogle the bar
|
// toogle the bar
|
||||||
{ MODKEY, XK_b, togglebar, {0} },
|
{MODKEY, XK_b, togglebar, {0}},
|
||||||
// restart dwm
|
// restart dwm
|
||||||
{ MODKEY|ControlMask, XK_r, quit, {1} },
|
{MODKEY|ControlMask, XK_r, quit, {1}},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* button definitions */
|
// button definitions
|
||||||
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
|
// click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin
|
||||||
// mouse bindings
|
// mouse bindings
|
||||||
static const Button buttons[] = {
|
static const Button buttons[] = {
|
||||||
/* click event mask button function argument */
|
/* click event mask button function argument */
|
||||||
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
|
{ClkLtSymbol, 0, Button1, setlayout, {0}},
|
||||||
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
|
{ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]}},
|
||||||
{ ClkWinTitle, 0, Button2, zoom, {0} },
|
{ClkWinTitle, 0, Button2, zoom, {0}},
|
||||||
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
|
{ClkStatusText, 0, Button2, spawn, {.v = termcmd }},
|
||||||
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
|
{ClkClientWin, MODKEY, Button1, movemouse, {0}},
|
||||||
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
|
{ClkClientWin, MODKEY, Button2, togglefloating, {0}},
|
||||||
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
|
{ClkClientWin, MODKEY, Button3, resizemouse, {0}},
|
||||||
{ ClkTagBar, 0, Button1, view, {0} },
|
{ClkTagBar, 0, Button1, view, {0}},
|
||||||
{ ClkTagBar, 0, Button3, toggleview, {0} },
|
{ClkTagBar, 0, Button3, toggleview, {0}},
|
||||||
{ ClkTagBar, MODKEY, Button1, tag, {0} },
|
{ClkTagBar, MODKEY, Button1, tag, {0}},
|
||||||
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
|
{ClkTagBar, MODKEY, Button3, toggletag, {0}},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
# If you want you can set this to $EDITOR to use your environment variable or
|
# If you want you can set this to $EDITOR to use your environment variable or
|
||||||
# vim if you want to specify the program directly.
|
# vim if you want to specify the program directly.
|
||||||
# default="TUT_USE_INTERNAL"
|
# default="TUT_USE_INTERNAL"
|
||||||
editor="emacsclient -t -a ''"
|
editor="~/.local/bin/lvim"
|
||||||
|
|
||||||
# You need to press yes in a confirmation dialog before favoriting, boosting,
|
# You need to press yes in a confirmation dialog before favoriting, boosting,
|
||||||
# etc.
|
# etc.
|
||||||
|
|
|
@ -5,11 +5,11 @@
|
||||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||||
# absolute path. No other format is supported.
|
# absolute path. No other format is supported.
|
||||||
#
|
#
|
||||||
XDG_DESKTOP_DIR="$HOME/Temporal/Desktop"
|
XDG_DESKTOP_DIR="$HOME/var/desktop"
|
||||||
XDG_DOWNLOAD_DIR="$HOME/Temporal/Downloads"
|
XDG_DOWNLOAD_DIR="$HOME/var/downloads"
|
||||||
XDG_TEMPLATES_DIR="$HOME/Temporal/Templates"
|
XDG_TEMPLATES_DIR="$HOME/media/documents/templates"
|
||||||
XDG_PUBLICSHARE_DIR="$HOME/Temporal/Public"
|
XDG_PUBLICSHARE_DIR="$HOME/var/public"
|
||||||
XDG_DOCUMENTS_DIR="$HOME/Documents"
|
XDG_DOCUMENTS_DIR="$HOME/media/documents"
|
||||||
XDG_MUSIC_DIR="$HOME/Media/Music"
|
XDG_MUSIC_DIR="$HOME/media/music"
|
||||||
XDG_PICTURES_DIR="$HOME/Media/Pictures"
|
XDG_PICTURES_DIR="$HOME/media/pictures"
|
||||||
XDG_VIDEOS_DIR="$HOME/Media/Videos"
|
XDG_VIDEOS_DIR="$HOME/media/videos"
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
" Since emacs is a GUI app and not a terminal app like vim, append the command
|
" Since emacs is a GUI app and not a terminal app like vim, append the command
|
||||||
" with an ampersand (&).
|
" with an ampersand (&).
|
||||||
|
|
||||||
set vicmd=nvim
|
set vicmd=~/.local/bin/lvim
|
||||||
|
|
||||||
" This makes vifm perform file operations on its own instead of relying on
|
" This makes vifm perform file operations on its own instead of relying on
|
||||||
" standard utilities like `cp`. While using `cp` and alike is a more universal
|
" standard utilities like `cp`. While using `cp` and alike is a more universal
|
||||||
|
|
2
user/.local/bin/neovide
Executable file
2
user/.local/bin/neovide
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
neovide --neovim-bin "$HOME/.local/bin/lvim"
|
|
@ -28,16 +28,26 @@ if [ -f "$usermodmap" ]; then
|
||||||
xmodmap "$usermodmap"
|
xmodmap "$usermodmap"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if xinput --list | grep -q "Elan TrackPoint"; then
|
||||||
|
xinput set-prop "TPPS/2 Elan TrackPoint" "libinput Accel Speed" 1
|
||||||
|
fi
|
||||||
|
|
||||||
# environment variables
|
# environment variables
|
||||||
export MOZ_USE_XINPUT2=1
|
export MOZ_USE_XINPUT2=1
|
||||||
export QT_STYLE_OVERRIDE=kvantum
|
export QT_STYLE_OVERRIDE=kvantum
|
||||||
export MEDIA_DIR="$HOME/Media"
|
|
||||||
export TEMP_DIR="$HOME/Temporal"
|
|
||||||
|
|
||||||
# clean home
|
# clean home
|
||||||
export XDG_DATA_HOME="$HOME/.local/share"
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
export XDG_CACHE_HOME="$HOME/.cache"
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
export XDG_CONFIG_HOME="$HOME/.config"
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
export XDG_DESKTOP_DIR="$HOME/var/desktop"
|
||||||
|
export XDG_DOWNLOAD_DIR="$HOME/var/downloads"
|
||||||
|
export XDG_TEMPLATES_DIR="$HOME/media/documents/templates"
|
||||||
|
export XDG_PUBLICSHARE_DIR="$HOME/var/public"
|
||||||
|
export XDG_DOCUMENTS_DIR="$HOME/media/documents"
|
||||||
|
export XDG_MUSIC_DIR="$HOME/media/music"
|
||||||
|
export XDG_PICTURES_DIR="$HOME/media/pictures"
|
||||||
|
export XDG_VIDEOS_DIR="$HOME/media/videos"
|
||||||
export W3M_DIR="$XDG_DATA_HOME/w3m"
|
export W3M_DIR="$XDG_DATA_HOME/w3m"
|
||||||
export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0"
|
export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0"
|
||||||
export WGETRC="$HOME/.config/wget/wgetrc"
|
export WGETRC="$HOME/.config/wget/wgetrc"
|
||||||
|
@ -52,4 +62,4 @@ export BROWSER="qutebrowser"
|
||||||
export VIEWER="zathura"
|
export VIEWER="zathura"
|
||||||
|
|
||||||
# start window manager / desktop environment
|
# start window manager / desktop environment
|
||||||
exec dwm
|
dbus-launch dwm
|
||||||
|
|
Loading…
Reference in a new issue