diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf index 947d7020..cc435d5e 100755 --- a/.config/fontconfig/fonts.conf +++ b/.config/fontconfig/fonts.conf @@ -5,28 +5,33 @@ serif Linux Libertine - Noto Color Emoji Joy Pixels + Noto Color Emoji sans-serif Linux Biolinum - Noto Color Emoji Joy Pixels + Noto Color Emoji sans Linux Biolinum - Noto Color Emoji Joy Pixels + Noto Color Emoji monospace - Inconsolata + + Liberation Mono + Inconsolata + Joy Pixels + Noto Color Emoji + diff --git a/.config/i3/config b/.config/i3/config index 0703caa7..7ba99762 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -4,7 +4,6 @@ # This config file will use environmental variables such as $BROWSER and $TERMINAL. # You can set these variables in ~/.profile or ~/.bash_profile if you have it as below: # -# export FILE="ranger" # export TERMINAL="st" # #---Basic Definitions---# # @@ -47,7 +46,7 @@ bindsym $mod+Shift+space floating toggle bindsym $mod+space focus mode_toggle bindsym $mod+Escape workspace prev -bindsym $mod+Shift+Escape exec prompt "Log out of i3?" "i3 exit" +bindsym $mod+Shift+Escape exec --no-startup-id prompt "Exit i3?" "i3 exit" # bindsym $mod+BackSpace bindsym $mod+Shift+BackSpace exec --no-startup-id prompt "Reboot computer?" "$reboot" @@ -56,7 +55,7 @@ bindsym $mod+grave exec --no-startup-id dmenuunicode ##bindsym $mod+asciitilde #STOP/HIDE EVERYTHING: -bindsym $mod+Shift+Delete exec --no-startup-id amixer sset Master mute ; exec --no-startup-id mpc pause && pkill -RTMIN+10 i3blocks ; exec --no-startup-id pauseallmpv; workspace 0; exec $term -e htop ; exec $term -e $FILE +bindsym $mod+Shift+Delete exec --no-startup-id lmc mute ; exec --no-startup-id mpc pause && pkill -RTMIN+10 i3blocks ; exec --no-startup-id pauseallmpv; workspace 0; exec $term -e htop ; exec $term -e lf # Show selection: bindsym $mod+Insert exec --no-startup-id showclip @@ -66,13 +65,13 @@ bindsym $mod+Insert exec --no-startup-id showclip bindsym $mod+q [con_id="__focused__" instance="^(?!dropdown_).*$"] kill bindsym $mod+Shift+q [con_id="__focused__" instance="^(?!dropdown_).*$"] exec --no-startup-id kill -9 `xdotool getwindowfocus getwindowpid` -bindsym $mod+w exec $term -e nmtui -bindsym $mod+Shift+w exec --no-startup-id $BROWSER +bindsym $mod+w exec --no-startup-id $BROWSER +bindsym $mod+Shift+w exec $term -e nmtui bindsym $mod+e exec $term -e neomutt && pkill -RTMIN+12 i3blocks bindsym $mod+Shift+e exec --no-startup-id tutorialvids -bindsym $mod+r exec $term -e $FILE +bindsym $mod+r exec $term -e lf bindsym $mod+Shift+r exec --no-startup-id winresize bindsym $mod+t split toggle @@ -147,7 +146,7 @@ bindsym $mod+n exec $term -e newsboat && pkill -RTMIN+6 i3blocks bindsym $mod+Shift+n floating toggle; sticky toggle; exec --no-startup-id hover right bindsym $mod+m exec --no-startup-id $term -e ncmpcpp -bindsym $mod+Shift+m exec --no-startup-id amixer sset Master toggle && pkill -RTMIN+10 i3blocks +bindsym $mod+Shift+m exec --no-startup-id lmc toggle # #---Workspace Bindings---# # bindsym $mod+Home workspace $ws1 @@ -231,6 +230,7 @@ bindsym $mod+F9 exec --no-startup-id dmenumount bindsym $mod+F10 exec --no-startup-id dmenuumount bindsym $mod+F11 exec --no-startup-id ducksearch bindsym $mod+F12 exec $term -e nmtui +bindsym $mod+Shift+F1 exec --no-startup-id toggle-welcome # #---Arrow Keys---# # bindsym $mod+Left focus left @@ -248,10 +248,10 @@ bindsym $mod+Ctrl+Right move workspace to output right # #---Media Keys---# # # Volume keys -bindsym $mod+plus exec --no-startup-id amixer sset Master 5%+ && pkill -RTMIN+10 i3blocks -bindsym $mod+Shift+plus exec --no-startup-id amixer sset Master 15%+ && pkill -RTMIN+10 i3blocks -bindsym $mod+minus exec --no-startup-id amixer sset Master 5%- && pkill -RTMIN+10 i3blocks -bindsym $mod+Shift+minus exec --no-startup-id amixer sset Master 15%- && pkill -RTMIN+10 i3blocks +bindsym $mod+plus exec --no-startup-id lmc up +bindsym $mod+Shift+plus exec --no-startup-id lmc up 15 +bindsym $mod+minus exec --no-startup-id lmc down +bindsym $mod+Shift+minus exec --no-startup-id lmc down 15 bindsym $mod+less exec --no-startup-id mpc prev bindsym $mod+Shift+less exec --no-startup-id mpc seek 0% bindsym $mod+greater exec --no-startup-id mpc next @@ -272,13 +272,13 @@ bindsym $mod+Delete exec $stoprec bindsym XF86Launch1 exec --no-startup-id xset dpms force off # #---Extra XF86 Keys---# # -bindsym XF86AudioMute exec --no-startup-id amixer sset Master toggle && pkill -RTMIN+10 i3blocks -bindsym XF86AudioLowerVolume exec --no-startup-id amixer sset Master 5%- && pkill -RTMIN+10 i3blocks -bindsym Shift+XF86AudioLowerVolume exec --no-startup-id amixer sset Master 10%- && pkill -RTMIN+10 i3blocks -bindsym Control+XF86AudioLowerVolume exec --no-startup-id amixer sset Master 1%- && pkill -RTMIN+10 i3blocks -bindsym XF86AudioRaiseVolume exec --no-startup-id amixer sset Master 5%+ && pkill -RTMIN+10 i3blocks -bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id amixer sset Master 10%+ && pkill -RTMIN+10 i3blocks -bindsym Control+XF86AudioRaiseVolume exec --no-startup-id amixer sset Master 1%+ && pkill -RTMIN+10 i3blocks +bindsym XF86AudioMute exec --no-startup-id lmc toggle +bindsym XF86AudioLowerVolume exec --no-startup-id lmc down +bindsym Shift+XF86AudioLowerVolume exec --no-startup-id lmc down 10 +bindsym Control+XF86AudioLowerVolume exec --no-startup-id lmc down 1 +bindsym XF86AudioRaiseVolume exec --no-startup-id lmc up +bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id lmc up 10 +bindsym Control+XF86AudioRaiseVolume exec --no-startup-id lmc up 1 bindsym XF86PowerOff exec --no-startup-id prompt "Shutdown computer?" "$shutdown" ##bindsym XF86Copy exec ##bindsym XF86Open exec @@ -288,7 +288,7 @@ bindsym XF86PowerOff exec --no-startup-id prompt "Shutdown computer?" "$shutdow bindsym XF86Calculator exec --no-startup-id ddspawn dropdowncalc -f mono:pixelsize=24 ##bindsym XF86Sleep This binding is typically mapped by systemd automatically. ##bindsym XF86WakeUp exec -bindsym XF86Explorer exec $term -e $FILE +bindsym XF86Explorer exec $term -e lf ##bindsym XF86Send exec ##bindsym XF86Xfer exec bindsym XF86WWW exec --no-startup-id $BROWSER @@ -297,7 +297,7 @@ bindsym XF86ScreenSaver exec exec --no-startup-id lockscreen ##bindsym XF86RotateWindows exec ##bindsym XF86TaskPane exec ##bindsym XF86Favorites exec -bindsym XF86MyComputer exec $term -e $FILE +bindsym XF86MyComputer exec $term -e lf ##bindsym XF86Back exec ##bindsym XF86Forward exec bindsym XF86Eject exec --no-startup-id dmenuumount @@ -349,7 +349,7 @@ bindsym XF86Display exec --no-startup-id displayselect ##bindsym XF86Reply exec ##bindsym XF86MailForward exec ##bindsym XF86Save exec -bindsym XF86Documents exec $term -e $FILE ~/Documents +bindsym XF86Documents exec $term -e lf ~/Documents ##bindsym XF86Battery exec ##bindsym XF86Bluetooth exec bindsym XF86WLAN exec $netrefresh diff --git a/.config/i3blocks/config b/.config/i3blocks/config index 407e23e8..e4626545 100644 --- a/.config/i3blocks/config +++ b/.config/i3blocks/config @@ -20,7 +20,6 @@ signal=6 #interval=30 [pacpackages] -label=📦 interval=once signal=8 diff --git a/.config/vifm/vifmrc b/.config/vifm/vifmrc index d646f860..b327786c 100644 --- a/.config/vifm/vifmrc +++ b/.config/vifm/vifmrc @@ -55,18 +55,21 @@ filetype *.csv,*.xlsx sc-im %c fileviewer *.csv sed "s/,,,,/,,-,,/g;s/,,/ /g" %c | column -t | sed "s/ - / /g" | cut -c -%pw filetype *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus mpv --no-audio-display --input-ipc-server=/tmp/mpvsoc$(date +%%s) %c -filextype *.pdf,*.ps,*.eps,*.ps.gz,*.djvu,*.epub zathura %f 2>/dev/null &, +filextype *.pdf,*.ps,*.eps,*.ps.gz,*.djvu,*.epub,*.cbz,*.cbr,*.cb7 zathura %f 2>/dev/null &, fileviewer *.pdf pdftotext -l 1 -nopgbrk %c - fileviewer *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.qt,*.divx,*.as[fx],*mp3,*.flac file filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,*.as[fx] mpv --input-ipc-server=/tmp/mpvsoc$(date +%%s) %f 2>/dev/null &, -fileview *.zip,*.rar,*.tar.gz atool -l %f -filetype *.zip,*.rar,*.tar.gz ext %f +fileview *.tar.gz atool -l --format=tar %f 2>/dev/null | awk '{$1=$2=$3=$4=$5=""; print $0}' +fileview *.zip,*.cbz atool -l --format=zip %f 2>/dev/null | tail +4 | awk '{$1=$2=$3=""; print $0}' +fileview *.rar,*.cbr atool -l --format=rar %f 2>/dev/null | tail +9 | awk '{$1=$2=$3=$4=""; print $0}' +fileview *.7z,*.cb7 atool -l --format=7z %f 2>/dev/null | tail +20 | awk '{$1=$2=$3=$4=$5=""; print $0}' +filetype *.zip,*.7z,*.rar,*.tar.gz,*.tar.xz ext %f fileviewer *.[1-8] man ./%c | col -b filetype *.[1-8] man ./%c -fileviewer *.jpg,*.jpeg,*.png,*.ico vifmimg draw %px %py %pw %ph %c %pc vifmimg clear +fileviewer *.jpg,*.jpeg,*.png,*.ico,*.gif vifmimg draw %px %py %pw %ph %c %pc vifmimg clear filextype *.bmp,*.jpg,*.jpeg,*.png,*.ico,*.gif,*.xpm rotdir %f 2>/dev/null | sxiv -ia 2>/dev/null & filextype *.svg inkscape %f 2>/dev/null & diff --git a/.local/bin/i3cmds/toggle-welcome b/.local/bin/i3cmds/toggle-welcome new file mode 100755 index 00000000..715db09e --- /dev/null +++ b/.local/bin/i3cmds/toggle-welcome @@ -0,0 +1,10 @@ +#!/bin/sh + +# Toggles the LARBS welcome message. + +PIC="$HOME/.local/share/larbs/larbs.png" + +grep LARBSWELCOME "$HOME/.xprofile" && + ( sed -i "/LARBSWELCOME/d" ~/.xprofile && notify-send -i "$PIC" "LARBS welcome message" "Welcome message disabled. Press Super+Shift+F1 again to reverse." ) || + ( echo "notify-send -i \"$PIC\" \"Welcome to LARBS\" \"Press super+F1 for the help menu.\" # LARBSWELCOME" >> ~/.xprofile && + notify-send -i "$PIC" "LARBS welcome message" "Welcome message re-enabled." ) diff --git a/.local/bin/lmc b/.local/bin/lmc new file mode 100755 index 00000000..bbe99a56 --- /dev/null +++ b/.local/bin/lmc @@ -0,0 +1,27 @@ +#!/bin/sh + +NUM="${2:-5}" + +# Uncomment the following line to use Pulseaudio. +# PULSE=true + +if [ "$PULSE" ]; then + toggle() { pulsemixer --toggle-mute ;} + mute() { pulsemixer --mute ;} + up() { pulsemixer --change-volume +"$NUM" ;} + down() { pulsemixer --change-volume -"$NUM" ;} +else + toggle() { amixer sset Master toggle ;} + mute() { amixer sset Master mute ;} + up() { amixer sset Master "$NUM"%+ ;} + down() { amixer sset Master "$NUM"%- ;} +fi + +case "$1" in + toggle) toggle ;; + mute) mute ;; + up) up ;; + down) down ;; +esac >/dev/null + +pkill -RTMIN+10 "${STATUSBAR:?}" & diff --git a/.local/bin/setbg b/.local/bin/setbg index 728df4ca..e7775cad 100755 --- a/.local/bin/setbg +++ b/.local/bin/setbg @@ -13,10 +13,10 @@ [ -d "$1" ] && mv "$(find "$1"/*.{jpg,jpeg,png} -type f | shuf -n 1)" ~/.config/wall.png && notify-send -i "$HOME/.config/wall.png" "Random Wallpaper chosen." # If pywal is installed, use it. -type wal >/dev/null 2>&1 && { wal -c ; - wal -s -i ~/.config/wall.png -o ~/.config/wal/postrun; - xsetroot -name "fsignal:xrdb"; - killall dwmblocks; - setsid dwmblocks >/dev/null 2>&1 & } +type wal >/dev/null 2>&1 && { wal -c + wal -s -i ~/.config/wall.png -o ~/.config/wal/postrun + xsetroot -name "fsignal:xrdb" + killall dwmblocks + setsid dwmblocks >/dev/null & } >/dev/null 2>&1 xwallpaper --zoom ~/.config/wall.png diff --git a/.local/bin/statusbar/internet b/.local/bin/statusbar/internet index 49352940..8063e193 100755 --- a/.local/bin/statusbar/internet +++ b/.local/bin/statusbar/internet @@ -10,8 +10,7 @@ case $BLOCK_BUTTON in " ;; esac -[ "$(cat /sys/class/net/w*/operstate)" = 'down' ] && wifiicon="📡" +[ "$(cat /sys/class/net/w*/operstate)" = 'down' ] && wifiicon="📡" || + wifiicon=$(grep "^\s*w" /proc/net/wireless | awk '{ print "📶", int($3 * 100 / 70) "%" }') -[ ! -n "${wifiicon+var}" ] && wifiicon=$(grep "^\s*w" /proc/net/wireless | awk '{ print "📶", int($3 * 100 / 70) "%" }') - -printf "%s %s\n" "$wifiicon" "$(cat /sys/class/net/e*/operstate | sed "s/down/❎/;s/up/🌐/")" +printf "%s %s\n" "$wifiicon" "$(sed "s/down/❎/;s/up/🌐/" /sys/class/net/e*/operstate)" diff --git a/.local/bin/statusbar/moonphase b/.local/bin/statusbar/moonphase old mode 100644 new mode 100755 diff --git a/.local/bin/statusbar/volume b/.local/bin/statusbar/volume index c16eded6..fd59a6f9 100755 --- a/.local/bin/statusbar/volume +++ b/.local/bin/statusbar/volume @@ -14,7 +14,7 @@ volstat="$(amixer get Master)" echo "$volstat" | grep "\[off\]" >/dev/null && printf "🔇\\n" && exit -vol=$(echo "$volstat" | grep -o "\[[0-9]\+%\]" | sed 's/[^0-9]*//g') +vol=$(echo "$volstat" | grep -o "\[[0-9]\+%\]" | sed "s/[^0-9]*//g;1q") if [ "$vol" -gt "70" ]; then icon="🔊" diff --git a/.profile b/.profile index 53cb8ded..1b5460a0 100644 --- a/.profile +++ b/.profile @@ -12,7 +12,6 @@ export EDITOR="nvim" export TERMINAL="st" export BROWSER="brave" export READER="zathura" -export FILE="lf" export STATUSBAR="${LARBSWM}blocks" # ~/ Clean-up: @@ -45,5 +44,3 @@ export LESS_TERMCAP_ue="$(printf '%b' '')" # Switch escape and caps if tty and no passwd required: sudo -n loadkeys ~/.local/share/larbs/ttymaps.kmap 2>/dev/null - -export LF_ICONS="di=:fi=:ln=:or=:ex=:*.c=:*.cc=:*.clj=:*.coffee=:*.cpp=:*.css=:*.d=:*.dart=:*.erl=:*.exs=:*.fs=:*.go=:*.h=:*.hh=:*.hpp=:*.hs=:*.html=:*.java=:*.jl=:*.js=:*.json=:*.lua=:*.md=:*.php=:*.pl=:*.pro=:*.py=:*.rb=:*.rs=:*.scala=:*.ts=:*.vim=:*.cmd=:*.ps1=:*.sh=:*.bash=:*.zsh=:*.fish=:*.tar=:*.tgz=:*.arc=:*.arj=:*.taz=:*.lha=:*.lz4=:*.lzh=:*.lzma=:*.tlz=:*.txz=:*.tzo=:*.t7z=:*.zip=:*.z=:*.dz=:*.gz=:*.lrz=:*.lz=:*.lzo=:*.xz=:*.zst=:*.tzst=:*.bz2=:*.bz=:*.tbz=:*.tbz2=:*.tz=:*.deb=:*.rpm=:*.jar=:*.war=:*.ear=:*.sar=:*.rar=:*.alz=:*.ace=:*.zoo=:*.cpio=:*.7z=:*.rz=:*.cab=:*.wim=:*.swm=:*.dwm=:*.esd=:*.jpg=:*.jpeg=:*.mjpg=:*.mjpeg=:*.gif=:*.bmp=:*.pbm=:*.pgm=:*.ppm=:*.tga=:*.xbm=:*.xpm=:*.tif=:*.tiff=:*.png=:*.svg=:*.svgz=:*.mng=:*.pcx=:*.mov=:*.mpg=:*.mpeg=:*.m2v=:*.mkv=:*.webm=:*.ogm=:*.mp4=:*.m4v=:*.mp4v=:*.vob=:*.qt=:*.nuv=:*.wmv=:*.asf=:*.rm=:*.rmvb=:*.flc=:*.avi=:*.fli=:*.flv=:*.gl=:*.dl=:*.xcf=:*.xwd=:*.yuv=:*.cgm=:*.emf=:*.ogv=:*.ogx=:*.aac=:*.au=:*.flac=:*.m4a=:*.mid=:*.midi=:*.mka=:*.mp3=:*.mpc=:*.ogg=:*.ra=:*.wav=:*.oga=:*.opus=:*.spx=:*.xspf=:*.pdf="