diff --git a/hosts/astyanax/default.nix b/hosts/astyanax/default.nix index 1bd6f22..f8323bd 100644 --- a/hosts/astyanax/default.nix +++ b/hosts/astyanax/default.nix @@ -26,12 +26,13 @@ in device = "/dev/nvme0n1"; }) ../../modules/desktops/niri + ../../modules/audio + ../../modules/audio-automation ../../modules/backups ../../modules/bluetooth ../../modules/keyboard (import ../../modules/networking { inherit hostName; }) ../../modules/users - ../../modules/audio ../../modules/localization ../../modules/fonts ../../modules/ssh/hardened-openssh.nix diff --git a/modules/audio-automation/default.nix b/modules/audio-automation/default.nix new file mode 100644 index 0000000..70dcda1 --- /dev/null +++ b/modules/audio-automation/default.nix @@ -0,0 +1,17 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = [ pkgs.libnotify ]; + + services.udev.extraRules = '' + SUBSYSTEM=="power_supply", ATTR{online}=="0", ACTION=="change", TAG+="systemd", ENV{SYSTEMD_USER_WANTS}+="mute-audio.service" + ''; + + systemd.user.services.mute-audio = { + description = "mute audio when switching to battery power"; + serviceConfig = { + Type = "oneshot"; + ExecStart = "${pkgs.bash}/bin/bash -c '${pkgs.pulseaudio}/bin/pactl set-sink-mute $(${pkgs.pulseaudio}/bin/pactl get-default-sink) true && ${pkgs.libnotify}/bin/notify-send \"audio Muted\" \"switched to battery power\"'"; + }; + }; +}