* Run the ACPI daemon. This allows the system to respond to ACPI
events, like pressing the power button. The NVIDIA X11 driver also needs it to respond to the internal/external monitor switch button on laptops. The power actions should of course be made configurable. svn path=/nixos/trunk/; revision=14027
This commit is contained in:
parent
b25ee09ceb
commit
c83a185090
42
upstart-jobs/acpid.nix
Normal file
42
upstart-jobs/acpid.nix
Normal file
@ -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}
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
@ -342,6 +342,12 @@ let
|
|||||||
inherit (pkgs) alsaUtils;
|
inherit (pkgs) alsaUtils;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# ACPI daemon.
|
||||||
|
++ optional true /* !!! need some option */
|
||||||
|
(import ../upstart-jobs/acpid.nix {
|
||||||
|
inherit config pkgs;
|
||||||
|
})
|
||||||
|
|
||||||
# D-Bus system-wide daemon.
|
# D-Bus system-wide daemon.
|
||||||
++ optional config.services.dbus.enable
|
++ optional config.services.dbus.enable
|
||||||
(import ../upstart-jobs/dbus.nix {
|
(import ../upstart-jobs/dbus.nix {
|
||||||
|
Loading…
Reference in New Issue
Block a user