From db880e13ad1bf8dad471435ac6f8b31a9ebf6ffc Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.uk>
Date: Thu, 17 Aug 2023 20:03:07 +0100
Subject: [PATCH] feat(nixos): add wob

Add wob to show an overlay when changing volume and brightness.
---
 system/nixos/home-manager-desktop.nix | 13 ++++++++-----
 system/nixos/home-manager.nix         |  1 +
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/system/nixos/home-manager-desktop.nix b/system/nixos/home-manager-desktop.nix
index d9287e64..65b4de41 100644
--- a/system/nixos/home-manager-desktop.nix
+++ b/system/nixos/home-manager-desktop.nix
@@ -124,12 +124,15 @@
       bindswitch --reload --locked lid:on output $laptop disable
       bindswitch --reload --locked lid:off output $laptop enable
 
-      bindsym XF86AudioRaiseVolume exec pamixer -ui 2 && pamixer --get-volume
-      bindsym XF86AudioLowerVolume exec pamixer -ud 2 && pamixer --get-volume
-      bindsym XF86AudioMute exec pamixer --toggle-mute
+      set $WOBSOCK $XDG_RUNTIME_DIR/wob.sock
+      exec rm -f $WOBSOCK && mkfifo $WOBSOCK && tail -f $WOBSOCK | wob
 
-      bindsym --locked XF86MonBrightnessDown exec brightnessctl set 10%-
-      bindsym --locked XF86MonBrightnessUp exec brightnessctl set 10%+
+      bindsym XF86AudioRaiseVolume exec pamixer -ui 2 && pamixer --get-volume > $WOBSOCK
+      bindsym XF86AudioLowerVolume exec pamixer -ud 2 && pamixer --get-volume > $WOBSOCK
+      bindsym XF86AudioMute exec pamixer --toggle-mute && ( [ "$(pamixer --get-mute)" = "true" ] && echo 0 > $WOBSOCK ) || pamixer --get-volume > $WOBSOCK
+
+      bindsym XF86MonBrightnessDown exec brightnessctl set 5%- | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOBSOCK
+      bindsym XF86MonBrightnessUp exec brightnessctl set +5% | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOBSOCK
 
       exec alacritty
       exec firefox
diff --git a/system/nixos/home-manager.nix b/system/nixos/home-manager.nix
index cf0feb52..6434ea5d 100644
--- a/system/nixos/home-manager.nix
+++ b/system/nixos/home-manager.nix
@@ -20,6 +20,7 @@ in
     pkgs.via
     pkgs.vial
     pkgs.vlc
+    pkgs.wob
     pkgs.wofi
     pkgs.xcape
     pkgs.zoom-us