Author: shlevy
Date: Tue Mar 20 04:41:13 2012
New Revision: 33286
URL: https://nixos.org/websvn/nix/?rev=33286&sc=1

Log:
Add a module for the pommed tool for Apple laptop keyboards.

Added:
   nixos/trunk/modules/services/hardware/pommed.nix
   nixpkgs/trunk/pkgs/development/libraries/audiofile/
   nixpkgs/trunk/pkgs/development/libraries/audiofile/default.nix
   nixpkgs/trunk/pkgs/os-specific/linux/pommed/
   nixpkgs/trunk/pkgs/os-specific/linux/pommed/default.nix
Modified:
   nixos/trunk/modules/module-list.nix
   nixpkgs/trunk/pkgs/top-level/all-packages.nix

Modified: nixos/trunk/modules/module-list.nix
==============================================================================
--- nixos/trunk/modules/module-list.nix Tue Mar 20 01:56:39 2012        (r33285)
+++ nixos/trunk/modules/module-list.nix Tue Mar 20 04:41:13 2012        (r33286)
@@ -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

Added: nixos/trunk/modules/services/hardware/pommed.nix
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ nixos/trunk/modules/services/hardware/pommed.nix    Tue Mar 20 04:41:13 
2012        (r33286)
@@ -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";
+    };
+  };
+}

Added: nixpkgs/trunk/pkgs/development/libraries/audiofile/default.nix
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ nixpkgs/trunk/pkgs/development/libraries/audiofile/default.nix      Tue Mar 
20 04:41:13 2012        (r33286)
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, alsaLib }:
+
+stdenv.mkDerivation rec {
+  name = "audiofile-0.3.3";
+
+  buildInputs = [ alsaLib ];
+
+  src = fetchurl {
+    url = "http://audiofile.68k.org/${name}.tar.gz";;
+    sha256 = "1qm7z0g1d9rcxi1m87slgdi0rhl94g13dx3d2b05dilghwpgjjgq";
+  };
+
+  meta = {
+    description = "A library for reading and writing audio files in various 
formats";
+    homepage = http://www.68k.org/~michael/audiofile/; 
+    license = "lgpl";
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}

Added: nixpkgs/trunk/pkgs/os-specific/linux/pommed/default.nix
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ nixpkgs/trunk/pkgs/os-specific/linux/pommed/default.nix     Tue Mar 20 
04:41:13 2012        (r33286)
@@ -0,0 +1,82 @@
+{ 
+  stdenv
+, fetchurl
+, pciutils
+, confuse
+, dbus, dbus_glib
+, alsaLib
+, audiofile
+, eject
+, pkgconfig
+, gtk
+, gettext
+, libXpm
+}:
+
+let
+
+  build_flags_patch = fetchurl {
+    url = 
http://patch-tracker.debian.org/patch/series/dl/pommed/1.39~dfsg-2/build_flags.patch;
+    sha256 = "109n5v0m91fqf8vqnpqg1zw8mk8fi9pkzqsfrmlavalg4xz49x9j";
+  }; 
+
+in
+
+stdenv.mkDerivation rec {
+  name = "pommed-1.39";
+
+  src = fetchurl {
+    url = "http://alioth.debian.org/frs/download.php/3583/${name}.tar.gz";;
+    sha256 = "18lxywmikanjr5pk1jdqda88dxd2579fpyd332xn4njjhlgwy5fp";
+  };
+
+  patches = [ build_flags_patch ];
+
+  buildInputs = [
+    pciutils
+    confuse
+    dbus
+    alsaLib
+    audiofile
+    eject
+    dbus_glib
+    pkgconfig
+    gtk
+    gettext
+    libXpm
+  ];
+
+  installPhase = ''
+    mkdir -pv $out/bin $out/etc/init.d $out/etc/dbus-1/system.d \
+      $out/share/pommed $out/share/gpomme $out/share/applications \
+      $out/share/icons/hicolor/scalable/apps $out/share/pixmaps
+
+    install -v -m755 pommed/pommed wmpomme/wmpomme gpomme/gpomme $out/bin
+    install -v -m644 pommed/data/* $out/share/pommed
+    install -v -m644 pommed.conf.mactel $out/etc/pommed.conf
+    install -v -m644 pommed.init $out/etc/init.d
+    install -v -m644 dbus-policy.conf $out/etc/dbus-1/system.d/pommed.conf
+
+    cp -av gpomme/themes $out/share/gpomme
+    for lang in de es fr it ja; do
+      mkdir -pv $out/share/locale/"$lang"/LC_MESSAGES
+      install -v -m644 gpomme/po/"$lang".mo 
$out/share/locale/"$lang"/LC_MESSAGES/gpomme.mo
+    done
+    install -v -m644 gpomme/gpomme*.desktop $out/share/applications
+    for size in 128 16 192 22 24 32 36 48 64 72 96; do
+      mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
+      install -v -m644 icons/gpomme_"$size"x"$size".png \
+        $out/share/icons/hicolor/"$size"x"$size"/apps
+    done
+    install -v -m644 icons/gpomme.svg  $out/share/icons/hicolor/scalable/apps
+
+    install -v -m644 icons/gpomme_192x192.xpm $out/share/pixmaps/wmpomme.xpm
+  '';
+
+  meta = {
+    description = "A tool to handle hotkeys on Apple laptop keyboards";
+    homepage = http://www.technologeek.org/projects/pommed/index.html;
+    license = "gplv2";
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}

Modified: nixpkgs/trunk/pkgs/top-level/all-packages.nix
==============================================================================
--- nixpkgs/trunk/pkgs/top-level/all-packages.nix       Tue Mar 20 01:56:39 
2012        (r33285)
+++ nixpkgs/trunk/pkgs/top-level/all-packages.nix       Tue Mar 20 04:41:13 
2012        (r33286)
@@ -3223,6 +3223,8 @@
 
   aubio = callPackage ../development/libraries/aubio { };
 
+  audiofile = callPackage ../development/libraries/audiofile { };
+
   axis = callPackage ../development/libraries/axis { };
 
   babl = callPackage ../development/libraries/babl { };
@@ -7173,6 +7175,10 @@
     gtksharp = gtksharp2;
   };
 
+  pommed = callPackage ../os-specific/linux/pommed {
+    inherit (xorg) libXpm;
+  };
+
   pqiv = callPackage ../applications/graphics/pqiv { };
 
   # perhaps there are better apps for this task? It's how I had configured my 
preivous system.
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to