pinwheel: Support bluetooth media keys for playerctl
This commit is contained in:
@@ -1,18 +1,6 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, lib, config, ... }:
|
||||||
let
|
let
|
||||||
hyprlandEnabled = config.mod.hyprland.enable;
|
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
|
in
|
||||||
{
|
{
|
||||||
users.users.alex.extraGroups = [ "audio" ];
|
users.users.alex.extraGroups = [ "audio" ];
|
||||||
@@ -34,14 +22,34 @@ in
|
|||||||
home-manager.users.alex = {
|
home-manager.users.alex = {
|
||||||
wayland.windowManager.hyprland = lib.mkIf hyprlandEnabled {
|
wayland.windowManager.hyprland = lib.mkIf hyprlandEnabled {
|
||||||
settings = {
|
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%+"
|
", 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%-"
|
", XF86AudioLowerVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
|
||||||
", XF86AudioMute, exec, ${toggle-output-mute}"
|
", XF86AudioMute, exec, ${toggle-output-mute}"
|
||||||
", XF86AudioMicMute, exec, ${toggle-input-mute}"
|
", XF86AudioMicMute, exec, ${toggle-input-mute}"
|
||||||
|
|
||||||
"$mod ALT, LEFT, exec, ${pkgs.playerctl}/bin/playerctl -p playerctld previous"
|
", XF86AudioPrev, exec, ${prev}"
|
||||||
"$mod ALT, RIGHT, exec, ${pkgs.playerctl}/bin/playerctl -p playerctld next"
|
", 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"
|
"$mod ALT, DOWN, exec, ${pkgs.playerctl}/bin/playerctl -p playerctld play-pause"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user