From 916fbfa0709731dfaaf2b9f129a96d0909120fea Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Thu, 15 Apr 2010 15:46:38 +0000 Subject: [PATCH] Add xf86-linux-wacom. Mostly reverts my previous commit. svn path=/nixos/trunk/; revision=21099 --- modules/module-list.nix | 1 + modules/services/x11/hardware/wacom.nix | 88 +++++++++++++++++++++++++ modules/services/x11/xserver.nix | 2 +- 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 modules/services/x11/hardware/wacom.nix diff --git a/modules/module-list.nix b/modules/module-list.nix index 0d48e71aa9e..0788e6b31b9 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -121,6 +121,7 @@ ./services/x11/display-managers/kdm.nix ./services/x11/display-managers/slim.nix ./services/x11/hardware/synaptics.nix + ./services/x11/hardware/wacom.nix ./services/x11/window-managers/compiz.nix ./services/x11/window-managers/default.nix ./services/x11/window-managers/icewm.nix diff --git a/modules/services/x11/hardware/wacom.nix b/modules/services/x11/hardware/wacom.nix new file mode 100644 index 00000000000..98717ce5a5b --- /dev/null +++ b/modules/services/x11/hardware/wacom.nix @@ -0,0 +1,88 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + + cfg = config.services.xserver.wacom; + +in + +{ + + options = { + + services.xserver.wacom = { + + enable = mkOption { + default = false; + description = "Whether to enable the Wacom touchscreen/digitizer."; + }; + + device = mkOption { + default = "/dev/ttyS0"; + description = "Device to use."; + }; + + forceDeviceType = mkOption { + default = "ISDV4"; + example = null; + description = "Some models (think touchscreen) require the device type to be specified."; + }; + + }; + + }; + + + config = mkIf cfg.enable { + + services.xserver.modules = [ pkgs.xf86_input_wacom ]; + + services.udev.packages = [ pkgs.xf86_input_wacom ]; + + services.xserver.serverLayoutSection = + '' + InputDevice "Wacom_stylus" + InputDevice "Wacom_cursor" + InputDevice "Wacom_eraser" + ''; + + services.xserver.config = + '' + Section "InputDevice" + Driver "wacom" + Identifier "Wacom_stylus" + Option "Device" "${cfg.device}" + Option "Type" "stylus" + ${optionalString (cfg.forceDeviceType != null) '' + Option "ForceDevice" "${cfg.forceDeviceType}" + ''} + Option "Button2" "3" + EndSection + + Section "InputDevice" + Driver "wacom" + Identifier "Wacom_eraser" + Option "Device" "${cfg.device}" + Option "Type" "eraser" + ${optionalString (cfg.forceDeviceType != null) '' + Option "ForceDevice" "${cfg.forceDeviceType}" + ''} + Option "Button1" "2" + EndSection + + Section "InputDevice" + Driver "wacom" + Identifier "Wacom_cursor" + Option "Device" "${cfg.device}" + Option "Type" "cursor" + ${optionalString (cfg.forceDeviceType != null) '' + Option "ForceDevice" "${cfg.forceDeviceType}" + ''} + EndSection + ''; + + }; + +} diff --git a/modules/services/x11/xserver.nix b/modules/services/x11/xserver.nix index e1f62f89c11..c96e7041f35 100644 --- a/modules/services/x11/xserver.nix +++ b/modules/services/x11/xserver.nix @@ -155,7 +155,7 @@ in modules = mkOption { default = []; - example = [ pkgs.synaptics ]; + example = [ pkgs.xf86_input_wacom ]; description = "Packages to be added to the module search path of the X server."; };