diff --git a/hosts/pinwheel/modules/sound/default.nix b/hosts/pinwheel/modules/sound/default.nix index 3b1c716..19c2694 100644 --- a/hosts/pinwheel/modules/sound/default.nix +++ b/hosts/pinwheel/modules/sound/default.nix @@ -1,18 +1,6 @@ { pkgs, lib, config, ... }: let hyprlandEnabled = config.mod.hyprland.enable; - - toggle-output-mute = pkgs.writeShellScript "toggle-output-mute" '' - ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle - MUTED=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep MUTED | wc -l) - echo $MUTED > /sys/class/leds/platform::mute/brightness - ''; - - toggle-input-mute = pkgs.writeShellScript "toggle-input-mute" '' - ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle - MUTED=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SOURCE@ | grep MUTED | wc -l) - echo $MUTED > /sys/class/leds/platform::micmute/brightness - ''; in { users.users.alex.extraGroups = [ "audio" ]; @@ -34,14 +22,34 @@ in home-manager.users.alex = { wayland.windowManager.hyprland = lib.mkIf hyprlandEnabled { settings = { - bind = [ + bind = let + toggle-output-mute = pkgs.writeShellScript "toggle-output-mute" '' + ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + MUTED=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep MUTED | wc -l) + echo $MUTED > /sys/class/leds/platform::mute/brightness + ''; + + toggle-input-mute = pkgs.writeShellScript "toggle-input-mute" '' + ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle + MUTED=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SOURCE@ | grep MUTED | wc -l) + echo $MUTED > /sys/class/leds/platform::micmute/brightness + ''; + + prev = "${pkgs.playerctl}/bin/playerctl -p playerctld previous"; + next = "${pkgs.playerctl}/bin/playerctl -p playerctld next"; + in [ ", XF86AudioRaiseVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 2%+" ", XF86AudioLowerVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-" ", XF86AudioMute, exec, ${toggle-output-mute}" ", XF86AudioMicMute, exec, ${toggle-input-mute}" - "$mod ALT, LEFT, exec, ${pkgs.playerctl}/bin/playerctl -p playerctld previous" - "$mod ALT, RIGHT, exec, ${pkgs.playerctl}/bin/playerctl -p playerctld next" + ", XF86AudioPrev, exec, ${prev}" + ", XF86AudioNext, exec, ${next}" + ", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl -p playerctld play" + ", XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl -p playerctld pause" + + "$mod ALT, LEFT, exec, ${prev}" + "$mod ALT, RIGHT, exec, ${next}" "$mod ALT, DOWN, exec, ${pkgs.playerctl}/bin/playerctl -p playerctld play-pause" ]; };