summary refs log tree commit diff
path: root/upstart-jobs/acpid.nix
diff options
context:
space:
mode:
authorNicolas Pierron <nicolas.b.pierron@gmail.com>2009-02-22 16:08:22 +0000
committerNicolas Pierron <nicolas.b.pierron@gmail.com>2009-02-22 16:08:22 +0000
commit128699688a1fb6812d9a22c7f9f95902a8e03d1d (patch)
tree6585537908f9b82db40bbf402631ab37d2b2006d /upstart-jobs/acpid.nix
parentf28c8ca553895aeca6ba6bc23e6bec321d39fdd9 (diff)
downloadnixpkgs-128699688a1fb6812d9a22c7f9f95902a8e03d1d.tar
nixpkgs-128699688a1fb6812d9a22c7f9f95902a8e03d1d.tar.gz
nixpkgs-128699688a1fb6812d9a22c7f9f95902a8e03d1d.tar.bz2
nixpkgs-128699688a1fb6812d9a22c7f9f95902a8e03d1d.tar.lz
nixpkgs-128699688a1fb6812d9a22c7f9f95902a8e03d1d.tar.xz
nixpkgs-128699688a1fb6812d9a22c7f9f95902a8e03d1d.tar.zst
nixpkgs-128699688a1fb6812d9a22c7f9f95902a8e03d1d.zip
* 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/branches/fix-style/; revision=14180
Diffstat (limited to 'upstart-jobs/acpid.nix')
-rw-r--r--upstart-jobs/acpid.nix42
1 files changed, 42 insertions, 0 deletions
diff --git a/upstart-jobs/acpid.nix b/upstart-jobs/acpid.nix
new file mode 100644
index 00000000000..5bd1fa63590
--- /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}
+  '';
+  
+}