{ config, lib, pkgs, ... }: { services.wob = { enable = true; settings."" = { anchor = "top center"; background_color = "00000080"; border_color = "4aa96ce6"; bar_color = "ffffffa6"; }; }; programs.niri.settings.binds = with config.lib.niri.actions; { "XF86AudioMute".action = spawn (lib.getExe pkgs.bash) "-c" "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && (wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnugrep} -q MUTED && echo 0 > $XDG_RUNTIME_DIR/wob.sock) || wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnused} 's/[^0-9]//g' > $XDG_RUNTIME_DIR/wob.sock)"; "XF86AudioRaiseVolume".action = spawn (lib.getExe pkgs.bash) "-c" "(wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnugrep} -q MUTED && echo 0 > $XDG_RUNTIME_DIR/wob.sock) || (wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ && wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnused} 's/[^0-9]//g' > $XDG_RUNTIME_DIR/wob.sock)"; "XF86AudioLowerVolume".action = spawn (lib.getExe pkgs.bash) "-c" "(wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnugrep} -q MUTED && echo 0 > $XDG_RUNTIME_DIR/wob.sock) || (wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- && wpctl get-volume @DEFAULT_AUDIO_SINK@ | ${lib.getExe pkgs.gnused} 's/[^0-9]//g' > $XDG_RUNTIME_DIR/wob.sock)"; "XF86MonBrightnessUp".action = spawn (lib.getExe pkgs.bash) "-c" "${lib.getExe pkgs.brightnessctl} set +2% | ${lib.getExe pkgs.gnused} -En 's/.*\\(([0-9]+)%\\).*/\\1/p' > $XDG_RUNTIME_DIR/wob.sock"; "XF86MonBrightnessDown".action = spawn (lib.getExe pkgs.bash) "-c" "${lib.getExe pkgs.brightnessctl} set 2%- | ${lib.getExe pkgs.gnused} -En 's/.*\\(([0-9]+)%\\).*/\\1/p' > $XDG_RUNTIME_DIR/wob.sock"; }; }