diff --git a/modules/module-list.nix b/modules/module-list.nix index 5eadfe0185c..97c7b9fef1f 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -75,6 +75,7 @@ ./services/hardware/hal.nix ./services/hardware/nvidia-optimus.nix ./services/hardware/pcscd.nix + ./services/hardware/pommed.nix ./services/hardware/sane.nix ./services/hardware/udev.nix ./services/hardware/udisks.nix diff --git a/modules/services/hardware/pommed.nix b/modules/services/hardware/pommed.nix new file mode 100644 index 00000000000..84f2925c4ae --- /dev/null +++ b/modules/services/hardware/pommed.nix @@ -0,0 +1,47 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +{ + + options.services.hardware.pommed = { + enable = mkOption { + default = false; + description = '' + Whether to use the pommed tool to handle Apple laptop keyboard hotkeys. + ''; + }; + + configFile = mkOption { + default = builtins.toPath "${pkgs.pommed}/etc/pommed.conf"; + description = '' + The contents of the pommed.conf file. + ''; + }; + }; + + config = mkIf config.services.hardware.pommed.enable { + environment.systemPackages = [ pkgs.polkit ]; + + environment.etc = [ + { source = config.services.hardware.pommed.configFile; + target = "pommed.conf"; + } + ]; + + services.dbus.packages = [ pkgs.pommed ]; + + jobs.pommed = { name = "pommed"; + + description = "Pommed hotkey management"; + + startOn = "started dbus"; + + postStop = "rm -f /var/run/pommed.pid"; + + exec = "${pkgs.pommed}/bin/pommed"; + + daemonType = "fork"; + }; + }; +}