diff options
Diffstat (limited to '.config/eww/scripts')
| -rwxr-xr-x | .config/eww/scripts/update_x_names | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/.config/eww/scripts/update_x_names b/.config/eww/scripts/update_x_names new file mode 100755 index 0000000..63117ef --- /dev/null +++ b/.config/eww/scripts/update_x_names @@ -0,0 +1,33 @@ +#!/run/current-system/profile/bin/guile \ +-s +!# + +(use-modules (ice-9 popen) + (ice-9 textual-ports) + (ice-9 rdelim)) + +(define cmd "wmctrl -l | awk -v ws=\"$(wmctrl -d | awk '$2 == \"*\" {print $1}')\" '$2 == ws {print}' | cut -d ' ' -f 5-") + +(define box-attrs '(:class "classes" + :orientation "h" + :valign "center" + :halign "start" + :space-evenly "false")) + +(define titles + (let* ((process (open-pipe* OPEN_READ "sh" "-c" cmd)) + (output (get-string-all process))) + (close-pipe process) + output)) + +(define labels + (map (lambda (t) `(eventbox + :onclick ,(string-concatenate `("wmctrl -a \"" ,t "\"")) + (label :class "class" + :text ,t + :truncate true + :valign "center"))) + (filter (lambda (s) (not (string=? s ""))) + (string-split titles #\newline)))) + +(write `(box ,@box-attrs ,@labels)) |
