diff --git a/_desktop/_scripts/sb-emerge b/_desktop/_scripts/sb-emerge
new file mode 100755
index 0000000..6bdd3fd
--- /dev/null
+++ b/_desktop/_scripts/sb-emerge
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+icon='\ue20f '
+[ $(pgrep -x emerge) ] && printf "$icon emerge" || printf ""
diff --git a/_desktop/_scripts/sb-network b/_desktop/_scripts/sb-network
new file mode 100755
index 0000000..b03596b
--- /dev/null
+++ b/_desktop/_scripts/sb-network
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+icon='\uf1eb '
+case "$(cat /sys/class/net/w*/operstate 2>/dev/null)" in
+ down) printf "$icon no wifi" ;;
+ up)
+ [ -n "$(ip address show dev wlan0 | grep 'inet ')" ] \
+ && printf "$icon $(iw dev wlan0 info | grep 'ssid ' | cut -d' ' -f2-)" \
+ || printf "$icon no ip"
+esac
diff --git a/_desktop/_scripts/sb-volume b/_desktop/_scripts/sb-volume
new file mode 100755
index 0000000..95f582c
--- /dev/null
+++ b/_desktop/_scripts/sb-volume
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+icon='\uf028 '
+vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk -F' / ' '{print $2}' | tr -d '%')
+[ $(pactl get-sink-mute @DEFAULT_SINK@ | awk -F': ' '{print $2}') = yes ] || [ "$vol" -eq 0 ] && printf "$icon mute" || printf "$icon ${vol}%%"
diff --git a/_desktop/suckless/dmenu/LICENSE b/_desktop/_suckless/dmenu/LICENSE
similarity index 100%
rename from _desktop/suckless/dmenu/LICENSE
rename to _desktop/_suckless/dmenu/LICENSE
diff --git a/_desktop/suckless/dmenu/Makefile b/_desktop/_suckless/dmenu/Makefile
similarity index 100%
rename from _desktop/suckless/dmenu/Makefile
rename to _desktop/_suckless/dmenu/Makefile
diff --git a/_desktop/suckless/dmenu/README.md b/_desktop/_suckless/dmenu/README.md
similarity index 100%
rename from _desktop/suckless/dmenu/README.md
rename to _desktop/_suckless/dmenu/README.md
diff --git a/_desktop/suckless/dmenu/arg.h b/_desktop/_suckless/dmenu/arg.h
similarity index 100%
rename from _desktop/suckless/dmenu/arg.h
rename to _desktop/_suckless/dmenu/arg.h
diff --git a/_desktop/suckless/dmenu/config.def.h b/_desktop/_suckless/dmenu/config.def.h
similarity index 100%
rename from _desktop/suckless/dmenu/config.def.h
rename to _desktop/_suckless/dmenu/config.def.h
diff --git a/_desktop/suckless/dmenu/config.h b/_desktop/_suckless/dmenu/config.h
similarity index 100%
rename from _desktop/suckless/dmenu/config.h
rename to _desktop/_suckless/dmenu/config.h
diff --git a/_desktop/suckless/dmenu/config.mk b/_desktop/_suckless/dmenu/config.mk
similarity index 100%
rename from _desktop/suckless/dmenu/config.mk
rename to _desktop/_suckless/dmenu/config.mk
diff --git a/_desktop/suckless/dmenu/dmenu.1 b/_desktop/_suckless/dmenu/dmenu.1
similarity index 100%
rename from _desktop/suckless/dmenu/dmenu.1
rename to _desktop/_suckless/dmenu/dmenu.1
diff --git a/_desktop/suckless/dmenu/dmenu.c b/_desktop/_suckless/dmenu/dmenu.c
similarity index 100%
rename from _desktop/suckless/dmenu/dmenu.c
rename to _desktop/_suckless/dmenu/dmenu.c
diff --git a/_desktop/suckless/dmenu/dmenu_path b/_desktop/_suckless/dmenu/dmenu_path
similarity index 100%
rename from _desktop/suckless/dmenu/dmenu_path
rename to _desktop/_suckless/dmenu/dmenu_path
diff --git a/_desktop/suckless/dmenu/dmenu_run b/_desktop/_suckless/dmenu/dmenu_run
similarity index 100%
rename from _desktop/suckless/dmenu/dmenu_run
rename to _desktop/_suckless/dmenu/dmenu_run
diff --git a/_desktop/suckless/dmenu/drw.c b/_desktop/_suckless/dmenu/drw.c
similarity index 100%
rename from _desktop/suckless/dmenu/drw.c
rename to _desktop/_suckless/dmenu/drw.c
diff --git a/_desktop/suckless/dmenu/drw.h b/_desktop/_suckless/dmenu/drw.h
similarity index 100%
rename from _desktop/suckless/dmenu/drw.h
rename to _desktop/_suckless/dmenu/drw.h
diff --git a/_desktop/suckless/dmenu/stest.1 b/_desktop/_suckless/dmenu/stest.1
similarity index 100%
rename from _desktop/suckless/dmenu/stest.1
rename to _desktop/_suckless/dmenu/stest.1
diff --git a/_desktop/suckless/dmenu/stest.c b/_desktop/_suckless/dmenu/stest.c
similarity index 100%
rename from _desktop/suckless/dmenu/stest.c
rename to _desktop/_suckless/dmenu/stest.c
diff --git a/_desktop/suckless/dmenu/util.c b/_desktop/_suckless/dmenu/util.c
similarity index 100%
rename from _desktop/suckless/dmenu/util.c
rename to _desktop/_suckless/dmenu/util.c
diff --git a/_desktop/suckless/dmenu/util.h b/_desktop/_suckless/dmenu/util.h
similarity index 100%
rename from _desktop/suckless/dmenu/util.h
rename to _desktop/_suckless/dmenu/util.h
diff --git a/_desktop/suckless/st/LICENSE b/_desktop/_suckless/st/LICENSE
similarity index 100%
rename from _desktop/suckless/st/LICENSE
rename to _desktop/_suckless/st/LICENSE
diff --git a/_desktop/suckless/st/Makefile b/_desktop/_suckless/st/Makefile
similarity index 100%
rename from _desktop/suckless/st/Makefile
rename to _desktop/_suckless/st/Makefile
diff --git a/_desktop/suckless/st/README.md b/_desktop/_suckless/st/README.md
similarity index 100%
rename from _desktop/suckless/st/README.md
rename to _desktop/_suckless/st/README.md
diff --git a/_desktop/suckless/st/arg.h b/_desktop/_suckless/st/arg.h
similarity index 100%
rename from _desktop/suckless/st/arg.h
rename to _desktop/_suckless/st/arg.h
diff --git a/_desktop/suckless/st/config.def.h b/_desktop/_suckless/st/config.def.h
similarity index 100%
rename from _desktop/suckless/st/config.def.h
rename to _desktop/_suckless/st/config.def.h
diff --git a/_desktop/suckless/st/config.h b/_desktop/_suckless/st/config.h
similarity index 100%
rename from _desktop/suckless/st/config.h
rename to _desktop/_suckless/st/config.h
diff --git a/_desktop/suckless/st/config.mk b/_desktop/_suckless/st/config.mk
similarity index 100%
rename from _desktop/suckless/st/config.mk
rename to _desktop/_suckless/st/config.mk
diff --git a/_desktop/suckless/st/st.1 b/_desktop/_suckless/st/st.1
similarity index 100%
rename from _desktop/suckless/st/st.1
rename to _desktop/_suckless/st/st.1
diff --git a/_desktop/suckless/st/st.c b/_desktop/_suckless/st/st.c
similarity index 100%
rename from _desktop/suckless/st/st.c
rename to _desktop/_suckless/st/st.c
diff --git a/_desktop/suckless/st/st.h b/_desktop/_suckless/st/st.h
similarity index 100%
rename from _desktop/suckless/st/st.h
rename to _desktop/_suckless/st/st.h
diff --git a/_desktop/suckless/st/st.info b/_desktop/_suckless/st/st.info
similarity index 100%
rename from _desktop/suckless/st/st.info
rename to _desktop/_suckless/st/st.info
diff --git a/_desktop/suckless/st/win.h b/_desktop/_suckless/st/win.h
similarity index 100%
rename from _desktop/suckless/st/win.h
rename to _desktop/_suckless/st/win.h
diff --git a/_desktop/suckless/st/x.c b/_desktop/_suckless/st/x.c
similarity index 100%
rename from _desktop/suckless/st/x.c
rename to _desktop/_suckless/st/x.c
diff --git a/_desktop/qtile/config.py b/_desktop/qtile/config.py
index c14f407..c2d4224 100644
--- a/_desktop/qtile/config.py
+++ b/_desktop/qtile/config.py
@@ -1,4 +1,5 @@
import psutil
+import subprocess
from libqtile import bar, extension, hook, layout, widget
from libqtile.config import Click, Drag, DropDown, Group, Key, Match, ScratchPad, Screen
from libqtile.dgroups import simple_key_binder
@@ -20,7 +21,7 @@ groups = [
"spterm", "sh -c 'BROWSER=firefox st'",
on_focus_lost_hide=False,
width=0.40,
- height=0.50,
+ height=0.20,
x=0.30,
y=0.25,
),
@@ -28,7 +29,7 @@ groups = [
"spwork", "sh -c 'BROWSER=workfx st -n work'",
on_focus_lost_hide=False,
width=0.40,
- height=0.50,
+ height=0.20,
x=0.30,
y=0.25,
),
@@ -119,42 +120,22 @@ screens = [
record_history=False,
),
widget.Spacer(),
- widget.Maildir(
- hide_when_empty=True,
- maildir_path='~/.local/share/mail/priv',
- nonempty_color="#fff27f",
- sub_folders=[{'label': 'priv', 'path': 'INBOX'}, {'label': 'sites', 'path': 'sites'}],
- update_interval=5,
+ widget.GenPollText(
+ update_interval=0.2,
+ func=lambda: subprocess.check_output("sb-emerge").decode(),
),
- widget.Maildir(
- hide_when_empty=True,
- maildir_path='~/.local/share/mail/klub',
- nonempty_color="#fff27f",
- total=True,
- sub_folders=[{'label': 'klub', 'path': 'INBOX'}],
- update_interval=5,
+ widget.GenPollText(
+ update_interval=0.2,
+ func=lambda: subprocess.check_output("sb-mail").decode(),
),
- widget.Maildir(
- hide_when_empty=True,
- maildir_path='~/.local/share/mail/info',
- nonempty_color="#fff27f",
- total=True,
- sub_folders=[{'label': 'info', 'path': 'INBOX'}],
- update_interval=5,
+ widget.GenPollText(
+ update_interval=0.2,
+ func=lambda: subprocess.check_output("sb-volume").decode(),
),
- widget.Maildir(
- hide_when_empty=True,
- maildir_path='~/.local/share/mail/work',
- nonempty_color="#fff27f",
- total=True,
- sub_folders=[{'label': 'work', 'path': 'INBOX'}],
- update_interval=5,
+ widget.GenPollText(
+ update_interval=0.2,
+ func=lambda: subprocess.check_output("sb-network").decode(),
),
- widget.Wlan(
- format='\uf1eb {essid}',
- disconnected_message=' NO WIFI ',
- ),
- widget.Sep(padding=15, size_percent=60),
widget.Battery(
format='\uf241 {char} {percent:2.0%}',
charge_char="\uf077",
@@ -162,16 +143,10 @@ screens = [
full_char="\uf102",
unknown_char="\uf444",
),
- widget.Sep(padding=15, size_percent=60),
widget.Clock(
format='\uf073 [%d] %I:%M:%S %p'
),
widget.Sep(padding=15, size_percent=60),
- widget.PulseVolume(
- emoji=True,
- step=5,
- update_interval=0.1,
- ),
widget.Systray(),
],
24,