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' '[0m')"
# 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="