diff --git a/upstart-jobs/acpid.nix b/upstart-jobs/acpid.nix new file mode 100644 index 000000000000..5bd1fa635906 --- /dev/null +++ b/upstart-jobs/acpid.nix @@ -0,0 +1,42 @@ +{pkgs, config, ...}: + +let + + acpiConfDir = pkgs.runCommand "acpi-events" {} + '' + ensureDir $out + ln -s ${acpiConfFile} $out/events.conf + ''; + + acpiConfFile = pkgs.writeText "acpi.conf" + '' + event=button/power.* + action=${powerEventHandler} "%e" + ''; + + # Called when the power button is pressed. + powerEventHandler = pkgs.writeScript "acpi-power.sh" + '' + #! ${pkgs.bash}/bin/sh + # Suspend to RAM. + #echo mem > /sys/power/state + exit 0 + ''; + +in + +{ + name = "acpid"; + + extraPath = [pkgs.acpid]; + + job = '' + description "ACPI daemon" + + start on udev + stop on shutdown + + respawn ${pkgs.acpid}/sbin/acpid --foreground --confdir ${acpiConfDir} + ''; + +} diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index bd0581b58704..bd45dda49911 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -342,6 +342,12 @@ let inherit (pkgs) alsaUtils; }) + # ACPI daemon. + ++ optional true /* !!! need some option */ + (import ../upstart-jobs/acpid.nix { + inherit config pkgs; + }) + # D-Bus system-wide daemon. ++ optional config.services.dbus.enable (import ../upstart-jobs/dbus.nix {