From a34885af7e27ab1829f09b3cef95b856b7af8c15 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Mon, 24 Sep 2007 09:02:43 +0000 Subject: [PATCH] Added synaptics support to xserver upstart-job. svn path=/nixos/trunk/; revision=9366 --- system/options.nix | 18 ++++++++++++++++++ upstart-jobs/default.nix | 2 +- upstart-jobs/xserver.conf | 3 ++- upstart-jobs/xserver.nix | 36 +++++++++++++++++++++++++++++++++--- 4 files changed, 54 insertions(+), 5 deletions(-) diff --git a/system/options.nix b/system/options.nix index faf171d5866..ae4c30c9c06 100644 --- a/system/options.nix +++ b/system/options.nix @@ -686,6 +686,24 @@ } + { + name = ["services" "xserver" "isSynaptics"]; + default = false; + example = true; + description = " + Whether to replace mouse with touchpad. + "; + } + + { + name = ["services" "xserver" "devSynaptics"]; + default = "/dev/input/event0"; + description = " + Event device for Synaptics touchpad. + "; + } + + { name = ["services" "httpd" "enable"]; diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index 2c509c69885..0793b4e07b7 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -158,7 +158,7 @@ import ../upstart-jobs/gather.nix { inherit config; inherit (pkgs) stdenv writeText lib xterm slim xorg mesa gnome compiz feh kdebase kdelibs xkeyboard_config - openssh x11_ssh_askpass nvidiaDrivers; + openssh x11_ssh_askpass nvidiaDrivers synaptics; libX11 = pkgs.xlibs.libX11; libXext = pkgs.xlibs.libXext; fontDirectories = import ../system/fonts.nix {inherit pkgs;}; diff --git a/upstart-jobs/xserver.conf b/upstart-jobs/xserver.conf index dea1ed7c12b..58618a8fd9e 100644 --- a/upstart-jobs/xserver.conf +++ b/upstart-jobs/xserver.conf @@ -39,6 +39,7 @@ Section "InputDevice" Option "Device" "/dev/input/mice" EndSection +@synapticsInputDevice@ Section "Monitor" Identifier "Monitor[0]" @@ -83,7 +84,7 @@ EndSection Section "ServerLayout" Identifier "Layout[all]" InputDevice "Keyboard[0]" "CoreKeyboard" - InputDevice "Mouse[0]" "CorePointer" + InputDevice "@corePointer@" "CorePointer" Screen "Screen[0]" EndSection diff --git a/upstart-jobs/xserver.nix b/upstart-jobs/xserver.nix index c76957601c3..ff4532b778f 100644 --- a/upstart-jobs/xserver.nix +++ b/upstart-jobs/xserver.nix @@ -4,6 +4,7 @@ , xkeyboard_config , openssh, x11_ssh_askpass , nvidiaDrivers, libX11, libXext +, synaptics , config @@ -64,13 +65,42 @@ let ++ optional (videoDriver == "vesa") xorg.xf86videovesa ++ optional (videoDriver == "sis") xorg.xf86videosis ++ optional (videoDriver == "i810") xorg.xf86videoi810 - ++ optional (videoDriver == "intel") xorg.xf86videointel; - + ++ optional (videoDriver == "intel") xorg.xf86videointel + ++ (optional (getCfg "isSynaptics") [(synaptics+"/"+xorg.xorgserver) xorg.xf86inputevdev]); configFile = stdenv.mkDerivation { name = "xserver.conf"; src = ./xserver.conf; - inherit fontDirectories videoDriver resolutions isClone; + inherit fontDirectories videoDriver resolutions isClone synaptics; + + synapticsInputDevice = (if getCfg "isSynaptics" then " + Section \"InputDevice\" + Identifier \"Touchpad[0]\" + Driver \"synaptics\" + Option \"Device\" \""+(getCfg "devSynaptics")+"\" + Option \"Protocol\" \"PS/2\" + Option \"LeftEdge\" \"1700\" + Option \"RightEdge\" \"5300\" + Option \"TopEdge\" \"1700\" + Option \"BottomEdge\" \"4200\" + Option \"FingerLow\" \"25\" + Option \"FingerHigh\" \"30\" + Option \"MaxTapTime\" \"180\" + Option \"MaxTapMove\" \"220\" + Option \"VertScrollDelta\" \"100\" + Option \"MinSpeed\" \"0.06\" + Option \"MaxSpeed\" \"0.12\" + Option \"AccelFactor\" \"0.0010\" + Option \"SHMConfig\" \"on\" + Option \"Repeater\" \"/dev/input/mice\" + Option \"TapButton1\" \"1\" + Option \"TapButton2\" \"2\" + Option \"TapButton3\" \"3\" + EndSection " else ""); + + corePointer = (if getCfg "isSynaptics" then "Touchpad[0]" else "Mouse[0]"); + + buildCommand = " buildCommand= # urgh, don't substitute this