* initial checkin 0.3-12
authorMichael Prokop <mika@grml.org>
Wed, 25 Oct 2006 22:39:30 +0000 (22:39 +0000)
committerMichael Prokop <mika@grml.org>
Wed, 25 Oct 2006 22:39:30 +0000 (22:39 +0000)
14 files changed:
debian/README.Debian [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/dirs [new file with mode: 0644]
debian/docs [new file with mode: 0644]
debian/rules [new file with mode: 0755]
etc/X11/xorg.conf.example [new file with mode: 0644]
etc/X11/xorg.conf.vmware [new file with mode: 0644]
etc/init.d/xfree86-common [new file with mode: 0755]
etc/zsh/completion.d/grml-x [new file with mode: 0644]
grml-x [new file with mode: 0755]
grml-x.1 [new file with mode: 0644]

diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644 (file)
index 0000000..a4694a7
--- /dev/null
@@ -0,0 +1,10 @@
+grml-x
+------
+
+grml-x creates a configuration file for xserver. The package does
+not depend on xbase-clients and xserver-xorg because it should be
+possible to install and use grml-x without a (working) xserver.
+If you want to use a full functional grml-x you have to install
+the packages of course.
+
+ -- Michael Prokop <mika@grml.org>, Die Jul 19 15:06:00 CEST 2005
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..43d2db5
--- /dev/null
@@ -0,0 +1,379 @@
+grml-x (0.3-12) unstable; urgency=low
+
+  * Add gnome-session (but leave gnomesession as fallback option)
+    to /etc/zsh/completion.d/grml-x.
+
+ -- Michael Prokop <mika@grml.org>  Sat, 12 Aug 2006 10:26:22 +0200
+
+grml-x (0.3-11) unstable; urgency=low
+
+  * Take only one line from monitor parsed output. Thanks to Nico
+    for help investigating the problem.
+
+ -- Michael Prokop <mika@grml.org>  Sat,  5 Aug 2006 08:38:53 +0200
+
+grml-x (0.3-10) unstable; urgency=low
+
+  * Updated hsync/vsync documentation (thanks for hint, Martin
+    Würtele!) and improved usage information.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 27 Jul 2006 21:57:23 +0200
+
+grml-x (0.3-9) unstable; urgency=low
+
+  * Added dwm to /etc/zsh/completion.d/grml-x.
+
+ -- Michael Prokop <mika@grml.org>  Fri, 21 Jul 2006 00:42:53 +0200
+
+grml-x (0.3-8) unstable; urgency=low
+
+  * Fixed missing whitespace in manpage, thx for info - Manuel Fuhr.
+  * Updated header information of /etc/zsh/completion.d/grml-x.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 25 May 2006 13:09:52 +0200
+
+grml-x (0.3-7) unstable; urgency=low
+
+  * Removed old-grml-x.
+  * Updated zsh completion:
+    - adjusted module listing for new Xorg
+    - dynamically create list of available window managers
+
+ -- Michael Prokop <mika@grml.org>  Sun, 30 Apr 2006 13:35:18 +0200
+
+grml-x (0.3-6) unstable; urgency=low
+
+  * It's 1280x1024 and not 1200x1024, adjusted in usage example.
+    Thanks for reporting, Gebi!
+
+ -- Michael Prokop <mika@grml.org>  Fri, 21 Apr 2006 01:22:45 +0200
+
+grml-x (0.3-5) unstable; urgency=low
+
+  * Updated Xserver version recognition for Xorg 7.0.
+
+ -- Michael Prokop <mika@grml.org>  Sat, 15 Apr 2006 13:16:58 +0200
+
+grml-x (0.3-4) unstable; urgency=low
+
+  * Deactivate RgbPath "/usr/X11R6/lib/X11/rgb" and
+    ModulePath   "/usr/X11R6/lib/modules" for Xorg 7.0.
+  * Updated URLs to Xorg 7.0.
+  * Added (not activated) Option "MonitorLayout" "LVDS, CRT".
+  * Removed all the ModeLine stuff.
+  * Reworked list of modules which should be loaded.
+    See #346408 for details.
+  * Use FontPath /usr/share/fonts/X11/... instead of
+    /usr/X11R6/lib/X11/fonts/... if directory
+    /usr/share/fonts/X11 is present.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 13 Apr 2006 13:39:33 +0200
+
+grml-x (0.3-3) unstable; urgency=low
+
+  * Fixed typo in Suggests (xfonts-base-transcoded), thanks for
+    hint, Hecka!
+
+ -- Michael Prokop <mika@grml.org>  Mon, 10 Apr 2006 11:48:38 +0200
+
+grml-x (0.3-2) unstable; urgency=low
+
+  * Added deactivated 'Option "MonitorLayout" "LVDS"' to xorg.conf.
+
+ -- Michael Prokop <mika@grml.org>  Fri,  7 Apr 2006 19:06:43 +0200
+
+grml-x (0.3-1) unstable; urgency=low
+
+  * New grml version.
+
+ -- Michael Prokop <mika@grml.org>  Thu,  6 Apr 2006 16:22:49 +0200
+
+grml-x (0.2-14) unstable; urgency=low
+
+  * Updated /etc/X11/xorg.conf.vmware - don't use higher
+    resolutions than 1024x768.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 23 Feb 2006 14:05:30 +0100
+
+grml-x (0.2-13) unstable; urgency=low
+
+  * Added evilwm to zsh completion.
+  * Ship grml-x of grml 0.5 release as old-grml-x to be able to
+    compare reliability.
+
+ -- Michael Prokop <mika@grml.org>  Sun, 22 Jan 2006 00:50:21 +0100
+
+grml-x (0.2-12) unstable; urgency=low
+
+  * Mouse-detection requires root permissions. Fixed that.
+
+ -- Michael Prokop <mika@grml.org>  Mon, 16 Jan 2006 11:43:17 +0100
+
+grml-x (0.2-11) unstable; urgency=low
+
+  * Updated /etc/X11/xorg.conf.example and /etc/X11/xorg.conf.vmware.
+
+ -- Michael Prokop <mika@grml.org>  Sat, 14 Jan 2006 13:14:26 +0100
+
+grml-x (0.2-10) unstable; urgency=low
+
+  * Added several comments to xorg.conf.
+  * Deactivated loading of speedo module as it got deprecated upstream,
+    see http://wiki.x.org/wiki/DeprecatedInX11R7
+
+ -- Michael Prokop <mika@grml.org>  Fri, 13 Jan 2006 23:00:55 +0100
+
+grml-x (0.2-9) unstable; urgency=low
+
+  * Updated manpage (added some details about implementation).
+  * Added - not yet activated - '# Load evdev' to X config file.
+  * Updated URL for xorg in X config file.
+
+ -- Michael Prokop <mika@grml.org>  Fri, 13 Jan 2006 12:37:01 +0100
+
+grml-x (0.2-8) unstable; urgency=low
+
+  * Applied patch for "AlpsPS/2 ALPS GlidePoint" detection,
+    thanks Timo Boettcher!
+
+ -- Michael Prokop <mika@grml.org>  Tue, 10 Jan 2006 14:47:46 +0100
+
+grml-x (0.2-7) unstable; urgency=low
+
+  * Use vesa-module if hwinfo does not find anything and bootparam
+    xmodule isn't specified either.
+
+ -- Michael Prokop <mika@grml.org>  Sun,  1 Jan 2006 14:22:08 +0100
+
+grml-x (0.2-6) unstable; urgency=low
+
+  * Use new zsh completion mechanism via /etc/zsh/completion.d.
+
+ -- Michael Prokop <mika@grml.org>  Sat, 10 Dec 2005 12:09:42 +0100
+
+grml-x (0.2-5) unstable; urgency=low
+
+  * Adjusted zsh-completion.
+
+ -- Michael Prokop <mika@grml.org>  Tue,  6 Dec 2005 18:04:03 +0100
+
+grml-x (0.2-4) unstable; urgency=low
+
+  * Added options '-novref' and '-nohsync'.
+  * Modified infotext (let's use 'Warning' instead of 'Error' as
+    it does not fail).
+
+ -- Michael Prokop <mika@grml.org>  Tue,  6 Dec 2005 14:56:58 +0100
+
+grml-x (0.2-3) unstable; urgency=low
+
+  * Lets' drop:
+
+     InputDevice    "Synaptics" "CorePointer"
+
+    and use:
+
+     InputDevice    "Synaptics"  "AlwaysCore"
+
+    instead.
+
+ -- Michael Prokop <mika@grml.org>  Sat, 12 Nov 2005 22:59:16 +0100
+
+grml-x (0.2-2) unstable; urgency=low
+
+  * Updated zsh-completion (removed ion2).
+
+ -- Michael Prokop <mika@grml.org>  Fri, 11 Nov 2005 00:46:43 +0100
+
+grml-x (0.2-1) unstable; urgency=low
+
+  * grml-x seems to be quite stable.
+    Let's release version 0.2 for grml 0.5 therefore.
+
+ -- Michael Prokop <mika@grml.org>  Sun, 23 Oct 2005 19:14:52 +0200
+
+grml-x (0.1-24) unstable; urgency=low
+
+  * Updated zsh-completion: added jwm, w9wm and windowlab to list
+    of available window managers.
+
+ -- Michael Prokop <mika@grml.org>  Sun,  9 Oct 2005 13:06:13 +0200
+
+grml-x (0.1-23) unstable; urgency=low
+
+  * Options -nousb and -nosynaptics don't require arguments, fixed
+    zparseopts therefore.
+  * Added /etc/X11/xorg.conf.vmware and /etc/X11/xorg.conf.example.
+  * Added Options -nops2 (disable PS2/ mouse) and -genmouse (create
+    generic mouse entry).
+  * Added /etc/zsh/grml-x.completion and fixed some minor issues
+    with parameter parsing.
+
+ -- Michael Prokop <mika@grml.org>  Sat,  8 Oct 2005 23:07:18 +0200
+
+grml-x (0.1-22) unstable; urgency=low
+
+  * Added option '-nousb' so we can deactivate the default entry
+    for /dev/input/mice (useful for example for VMware).
+
+ -- Michael Prokop <mika@grml.org>  Wed,  5 Oct 2005 22:40:56 +0200
+
+grml-x (0.1-21) unstable; urgency=low
+
+  * Use /dev/input/mice instead of /dev/psaux for PS2-mouse.
+    Should work nowadays as expected.
+
+ -- Michael Prokop <mika@grml.org>  Wed,  5 Oct 2005 19:18:05 +0200
+
+grml-x (0.1-20) unstable; urgency=low
+
+  * Adjusted path for zsh.
+  * Let's point $HWINFO to /usr/sbin/hwinfo.
+  * Big update of debian/control: recommends, depends and suggests...
+
+ -- Michael Prokop <mika@grml.org>  Sat,  1 Oct 2005 00:57:13 +0200
+
+grml-x (0.1-19) unstable; urgency=low
+
+  * Added sudo to depends.
+
+ -- Michael Prokop <mika@grml.org>  Sat,  1 Oct 2005 00:37:18 +0200
+
+grml-x (0.1-18) unstable; urgency=low
+
+  * Do not set resolution modes by default. Let the X server
+    deside which resolutions fits best.
+
+ -- Michael Prokop <mika@grml.org>  Fri, 30 Sep 2005 16:47:37 +0200
+
+grml-x (0.1-17) unstable; urgency=low
+
+  * Improved ddc-handling and added option '-noddc':
+    - by default ddc probing is used
+    - if monitor does not support ddc, mode values are set
+    - if option -noddc' is set, mode values are set
+
+ -- Michael Prokop <mika@grml.org>  Fri, 30 Sep 2005 13:02:03 +0200
+
+grml-x (0.1-16) unstable; urgency=low
+
+  * Updated grml-x-manpage to fix mandb-parsing-problem:
+    mandb: warning: /usr/share/man/man1/grml-x.1.gz: whatis parse for grml-x(1) failed
+
+ -- Michael Prokop <mika@grml.org>  Sun, 25 Sep 2005 13:00:16 +0200
+
+grml-x (0.1-15) unstable; urgency=low
+
+  * Make sure the xconfig has the right permissions (root.root:644).
+
+ -- Michael Prokop <mika@grml.org>  Sat, 24 Sep 2005 18:28:11 +0200
+
+grml-x (0.1-14) unstable; urgency=low
+
+  * Ok, we definitely need hsync and vsync on some computer.
+    Therefore we now have a '-nosync'-option which deactivates
+    hsync and vsync values.
+  * Updated manpage (mention -nosync and -nosynaptics).
+
+ -- Michael Prokop <mika@grml.org>  Thu, 22 Sep 2005 16:11:14 +0200
+
+grml-x (0.1-13) unstable; urgency=low
+
+  * Upps, conflicts with grml-scripts 0.4-4 and not 0.4.4.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 22 Sep 2005 14:20:17 +0200
+
+grml-x (0.1-12) unstable; urgency=low
+
+  * Bumbed Standards-Version to 3.6.2.
+  * Added conflicts for grml-scripts <= 0.4.4.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 22 Sep 2005 14:10:28 +0200
+
+grml-x (0.1-11) unstable; urgency=low
+
+  * The "let's use X.org to detect present hardware support" release.
+  * Don't use hsync/vsync settings if not provided manually.
+  * Don't use Modes (1024x768 and so on) if not provided manually.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 22 Sep 2005 11:51:58 +0200
+
+grml-x (0.1-10) unstable; urgency=low
+
+  * Some fixes for being able to run 'grml-x' with root-permissions
+    on harddisk installation.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 15 Sep 2005 17:46:35 +0200
+
+grml-x (0.1-9) unstable; urgency=low
+
+  * Added option '-nosynaptics' for disabling synaptics touchpad (but
+    the touchpad itself should work anyway).
+  * Some small improvements regarding informational output, added
+    support for parsing '-h', -help' and '--help' as well.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 15 Sep 2005 12:57:54 +0200
+
+grml-x (0.1-8) unstable; urgency=low
+
+  * Removed /etc/X11/Xresources/ and /etc/X11/Xsession.d/.
+  * Improved cleanup of tmp-files in grml-x.
+
+ -- Michael Prokop <mika@grml.org>  Sun, 31 Jul 2005 11:42:56 +0200
+
+grml-x (0.1-7) unstable; urgency=low
+
+  * startx/xinit started with options like ':8' (set specific
+    display) cause strange side effects on setup of fonts. :-/
+    Therefore don't use $DISPLAY as default but use it only if
+    specified via '-display #'.
+
+ -- Michael Prokop <mika@grml.org>  Sat, 30 Jul 2005 12:05:51 +0200
+
+grml-x (0.1-6) unstable; urgency=low
+
+  * Updated manpage.
+  * Updated control-file (added Recommends:).
+  * Added README.Debian (provide info for Recommends:).
+
+ -- Michael Prokop <mika@grml.org>  Tue, 19 Jul 2005 15:08:47 +0200
+
+grml-x (0.1-5) unstable; urgency=low
+
+  * Removed /usr/X11R6/lib/X11/xkb, should be fixed
+    upstream now.
+
+ -- Michael Prokop <mika@grml.org>  Wed, 13 Jul 2005 20:51:12 +0200
+
+grml-x (0.1-4) unstable; urgency=low
+
+  * Fixed problem with synaptic touchpad.
+
+ -- Michael Prokop <mika@grml.org>  Sun, 10 Jul 2005 13:04:32 +0200
+
+grml-x (0.1-3) unstable; urgency=low
+
+  * Slightly improved copyright file.
+
+ -- Michael Prokop <mika@grml.org>  Sun,  3 Jul 2005 17:09:57 +0200
+
+grml-x (0.1-2) unstable; urgency=low
+
+  * Added '-nodpms'-option so we are able to disable 'Display Power Management
+    Signaling'.
+  * Added example entry for elo touchscreen.
+  * Fixed handling of '-xserver'-option.
+  * Update manpage.
+  * Don't ship /etc/init.d/xfree86-common anymore (let's trust on
+    xorg-common or xfree86-common that they ship a working version).
+  * Now we support startx-options via variable XOPTS, e.g.:
+      XOPTS='-depth 16' grml-x fluxbox
+
+ -- Michael Prokop <mika@grml.org>  Wed, 15 Jun 2005 12:58:37 +0200
+
+grml-x (0.1-1) unstable; urgency=low
+
+  * Initial release.
+
+ -- Michael Prokop <mika@grml.org>  Mon, 23 May 2005 23:39:39 +0200
+
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..b8626c4
--- /dev/null
@@ -0,0 +1 @@
+4
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..a4659e2
--- /dev/null
@@ -0,0 +1,16 @@
+Source: grml-x
+Section: grml
+Priority: optional
+Maintainer: Michael Prokop <mika@grml.org>
+Build-Depends: debhelper (>= 4.0.0)
+Standards-Version: 3.6.2
+
+Package: grml-x
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, xserver-xorg | xserver, hwinfo, grml-etc (>= 0.5-20), zsh, pciutils, sudo, xbase-clients
+Recommends: fluxbox | x-window-manager, xterm | x-terminal-emulator, xfonts-base
+Suggests: xfonts-100dpi, xfonts-75dpi, fonts-ttf-west-european, xfonts-base-transcoded
+Conflicts: grml-scripts (<= 0.4-4)
+Description: wrapper for startx for running X Window System
+ grml-x generates a configuration for X server, supporting
+ several options and using a hardware recognition system.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..952c2cc
--- /dev/null
@@ -0,0 +1,16 @@
+This package was debianized by Michael Prokop <mika@grml.org> on
+Mon, 23 May 2005 23:39:39 +0200.
+
+It was downloaded from http://grml.org/
+
+Copyright Holder: Michael Prokop <mika@grml.org>
+
+License:
+
+ This software is copyright (c) 2005 by Michael Prokop.                                                   
+
+ You are free to distribute this software under the terms of
+ the GNU General Public License.
+
+ On Debian GNU/Linux systems, the complete text of the GNU General                                                
+ Public License can be found in `/usr/share/common-licenses/GPL'.
diff --git a/debian/dirs b/debian/dirs
new file mode 100644 (file)
index 0000000..ac07f15
--- /dev/null
@@ -0,0 +1,3 @@
+etc/zsh
+etc/X11
+usr/bin
diff --git a/debian/docs b/debian/docs
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..37d047e
--- /dev/null
@@ -0,0 +1,71 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+configure: configure-stamp
+configure-stamp:
+       dh_testdir
+       # Add here commands to configure the package.
+
+       touch configure-stamp
+
+
+build: build-stamp
+
+build-stamp: configure-stamp
+       dh_testdir
+
+       # Add here commands to compile the package.
+       touch build-stamp
+
+clean:
+       dh_testdir
+       dh_testroot
+       rm -f build-stamp configure-stamp
+
+       # Add here commands to clean up after the build process.
+       dh_clean
+
+install: build
+       dh_testdir
+       dh_testroot
+       dh_clean -k
+       dh_installdirs etc/init.d usr/bin
+       # usr/X11R6/lib/X11/xkb/rules/
+
+       # Add here commands to install the package into debian/grml-x.
+       install -m 755 grml-x     debian/grml-x/usr/bin/grml-x
+       cp -r etc/X11/ debian/grml-x/etc/
+       cp -r etc/zsh/ debian/grml-x/etc/
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+       dh_testdir
+       dh_testroot
+       dh_installchangelogs
+       dh_installdocs
+       dh_installexamples
+       dh_installman grml-x.1
+       dh_link
+       dh_strip
+       dh_compress
+       dh_fixperms
+       dh_installdeb
+       dh_shlibdeps
+       dh_gencontrol
+       dh_md5sums
+       dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/etc/X11/xorg.conf.example b/etc/X11/xorg.conf.example
new file mode 100644 (file)
index 0000000..bc824b4
--- /dev/null
@@ -0,0 +1,238 @@
+################################################################################
+# Filename:      /etc/X11/xorg.conf
+# Purpose:       config file for xserver - generated by grml-x
+# Bug-Reports:   see http://grml.org/bugs/
+# Latest change: Sat Apr 15 10:39:38 CEST 2006 [mika]
+# See also:
+#   /usr/share/doc/xserver-xorg/   and
+#   http://wiki.x.org/wiki/Home    and
+#   http://ftp.x.org/pub/X11R7.0/doc/html/index.html for information on Xorg
+#   /usr/share/doc/xfree86-common/                   for information on XFree86
+# Refer to the xorg.conf man page and to
+# http://ftp.x.org/pub/X11R7.0/doc/html/xorg.conf.5.html
+# for details about the format of this file.
+# 
+# If you would like this file to be automatically reconfigured by debian,
+# run the following command:
+#   sudo dpkg-reconfigure -phigh xserver-xorg
+################################################################################
+
+Section "ServerLayout"
+        Identifier     "XServer Configured"
+        Screen      0  "Screen0" 0 0
+        InputDevice    "Keyboard0"  "CoreKeyboard"
+        InputDevice    "USB Mouse"  "CorePointer"
+        # InputDevice    "PS/2 Mouse" "CorePointer"
+EndSection
+
+Section "ServerFlags"
+        Option "AllowMouseOpenFail"  "true"  # allows the server to start up even if the mouse does not work
+        Option "DontVTSwitch"        "false" # allow switching between virtual terminal
+        # Option "DontZap"             "true"  # disable <Crtl><Alt><BS> (server abort)
+        # Option "DontZoom"            "true"  # disable <Crtl><Alt><KP_+>/<KP_-> (resolution switching)
+EndSection
+
+Section "Files"
+#        RgbPath      "/usr/X11R6/lib/X11/rgb"
+#        ModulePath   "/usr/X11R6/lib/modules"
+# More information:  http://ftp.x.org/pub/X11R7.0/doc/html/fonts.html
+        FontPath     "/usr/share/fonts/X11/misc"
+        FontPath     "/usr/share/fonts/X11/cyrillic"
+        FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
+        FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
+        FontPath     "/usr/share/fonts/X11/Type1"
+        FontPath     "/usr/share/fonts/X11/100dpi"
+        FontPath     "/usr/share/fonts/X11/75dpi"
+        FontPath     "/usr/X11R6/lib/X11/fonts/misc:unscaled"
+        FontPath     "/usr/X11R6/lib/X11/fonts/misc"
+        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
+        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi"
+        FontPath     "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
+        FontPath     "/usr/X11R6/lib/X11/fonts/100dpi"
+# True type and type1 fonts are also handled via xftlib, see /etc/X11/XftConfig!
+        FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
+        FontPath     "/usr/share/fonts/ttf/western"
+        FontPath     "/usr/share/fonts/ttf/decoratives"
+        FontPath     "/usr/share/fonts/truetype/ttf-bitstream-vera"
+        FontPath     "/usr/share/fonts/latex-ttf-fonts"
+        FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
+EndSection
+
+# Modules - see /usr/X11R6/lib/modules/fonts and /usr/X11R6/lib/modules/extensions
+Section "Module"
+        Load  "dbe"       # double buffer extension
+        Load  "dri"       # direct rendering
+        Load  "glx"       # 3D layer
+        Load  "type1"     # font module
+        Load  "freetype"  # font rendering
+        Load  "extmod"    # some commonly used server extensions (e.g. shape extension)
+        Load  "record"    # recording extension
+        # Load  "vbe"       # Vesa BIOS Extension
+        # Load  "ddc"       # ddc probing of monitor
+        # Load  "bitmap"    # bitmap fonts
+        # Load  "GLcore"    # render OpenGL in software
+        # Load  "i2c"       # I2C bus
+        # Load  "int10"     # initialize graphics cards via int10 call to the BIOS
+        # Load  "speedo"    # font module
+        # Load  "v4l"       # Video for Linux
+        # Load  "evdev"     # generic input handling driver on Linux
+# Valid entries - see /usr/lib/xorg/modules/[extensions/]
+# afb bitmap cfb cfb16 cfb24 cfb32 cw damage dbe ddc dri drm extmod fb
+# fbdevhw freetype GLcore glx i2c int10 int10 layer mfb pcidata rac ramdac
+# record scanpci shadow shadowfb type1 vbe vgahw xaa xf1bpp xf24_32bpp xf4bpp
+# xf8_16bpp xf8_32bpp xtrap
+EndSection
+
+# If you'd like to switch the positions of your capslock and control keys, use:
+# Option "XkbOptions" "ctrl:swapcaps"
+# Or if you just want both to be control, use:
+# Option "XkbOptions" "ctrl:nocaps"
+# More information: http://ftp.x.org/pub/X11R7.0/doc/html/XKB-Config.html
+Section "InputDevice"
+        Identifier  "Keyboard0"
+        Option      "CoreKeyboard"
+        Driver      "kbd"
+        #Option      "XkbRules"   "xfree86"
+        Option      "XkbRules"   "xorg"
+        Option      "XkbModel"   "pc105"
+        Option      "XkbLayout"  "us"
+        #Option      "XkbVariant" "nodeadkeys"
+EndSection
+
+# More information: http://ftp.x.org/pub/X11R6.9.0/doc/html/mouse.html
+
+
+Section "InputDevice"
+        Identifier      "USB Mouse"
+        Driver          "mouse"
+        Option          "Device"                "/dev/input/mice"
+        Option          "Protocol"              "auto"
+        Option          "ZAxisMapping"          "4 5"
+        Option          "Buttons"               "5"
+        Option          "SendCoreEvents"        "true"
+EndSection
+
+
+Section "InputDevice"
+        Identifier  "PS/2 Mouse"
+        Driver      "mouse"
+        Option      "Device" "/dev/input/mice"
+        # Option      "Device" "/dev/psaux"
+        Option      "Protocol" "PS/2"
+        Option      "Emulate3Buttons" "true"
+        Option      "Emulate3Timeout" "70"
+        Option      "SendCoreEvents"  "true"
+EndSection
+
+
+# Example for a Elo touchscreen:
+# Section "InputDevice"
+#     Identifier  "touchscreen"
+#     Driver "elographics"
+#     Option "Device" "/dev/ttyS0"
+#     Option "SendCoreEvents" "true"
+#     Option "MinX" "4070"
+#     Option "MaxX" "0"
+#     Option "MinY" "36"
+#     Option "MaxY" "3960"
+#     Option "ScreenNo" "1"
+#     Option "BaudRate" "9600"
+#     Option "StopBits" "1"
+#     Option "DataBits" "8"
+#     Option "Parity" "None"
+#     Option "Vmin" "10"
+#     Option "Vtime" "1"
+#     Option "FlowControl" "None"
+#     Option "PortraitMode" "Portrait"
+#     Option "PortraitMode" "PortraitCCW"
+#     Option "SwapXY" "true"
+#     Option "UntouchDelay" "3"
+#     Option "ReportDelay" "1"
+# EndSection
+
+Section "Monitor"
+        Identifier   "Monitor0"
+#       ModelName    "Old Monitor (no DDC)"
+        Option       "DPMS"      "true"
+#       HorizSync    28.0 - 78.0 # Warning: This may fry very old Monitors
+#       HorizSync    28.0 - 96.0 # Warning: This may fry old Monitors
+        HorizSync    31.0 - 61.0
+#       VertRefresh  50.0 - 76.0 # Very conservative. May flicker.
+#       VertRefresh  50.0 - 60.0 # Extreme conservative. Will flicker. TFT default.
+        VertRefresh  50.0 - 90.0
+# Need more information?
+#  http://xtiming.sourceforge.net/cgi-bin/xtiming.pl
+#  http://en.tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/
+EndSection
+
+Section "Device"
+        ### Available Driver options are:
+        ## sw_cursor is needed for some ati and radeon cards
+        # Option     "sw_cursor"
+        # Option     "hw_cursor"
+        # Option     "NoAccel"
+        # Option     "ShowCache"
+        # Option     "ShadowFB"
+        # Option     "UseFBDev"
+        # Option     "Rotate"
+        ## xorg + nvidia:
+        # Option "RenderAccel" "true"
+        # Option "AllowGLXWithComposite" "true"
+        Identifier  "Card0"
+# The following line is auto-generated by grml-x
+        Driver      "vesa"
+        VendorName  "All"
+        BoardName   "All"
+        ## Workaround for drivers which send output to wrong device:
+        # Option "MonitorLayout" "LVDS, AUTO"
+        # Option "MonitorLayout" "LVDS, CRT"
+        # Option "MonitorLayout" "NONE, STV"
+        # Option "MonitorLayout" "LVDS"
+        ## Specify BusID:
+        # BusID       "PCI:1:0:0"
+EndSection
+
+Section "Screen"
+        Identifier "Screen0"
+        Device     "Card0"
+        Monitor    "Monitor0"
+        DefaultColorDepth 16
+        SubSection "Display"
+                Depth     1
+                Modes "1024x768" "800x600" "640x480"  "1600x1200" "1280x1024" "1280x960"
+        EndSubSection
+        SubSection "Display"
+                Depth     4
+                Modes "1024x768" "800x600" "640x480"  "1600x1200" "1280x1024" "1280x960"
+        EndSubSection
+        SubSection "Display"
+                Depth     8
+                Modes "1024x768" "800x600" "640x480"  "1600x1200" "1280x1024" "1280x960"
+        EndSubSection
+        SubSection "Display"
+                Depth     15
+                Modes "1024x768" "800x600" "640x480"  "1600x1200" "1280x1024" "1280x960"
+        EndSubSection
+        SubSection "Display"
+                Depth     16
+                Modes "1024x768" "800x600" "640x480"  "1600x1200" "1280x1024" "1280x960"
+        EndSubSection
+        SubSection "Display"
+                Depth     24
+                Modes "1024x768" "800x600" "640x480"  "1600x1200" "1280x1024" "1280x960"
+        EndSubSection
+        SubSection "Display"
+                Depth     32
+                Modes "1024x768" "800x600" "640x480"  "1600x1200" "1280x1024" "1280x960"
+        EndSubSection
+EndSection
+
+Section "DRI"
+        Mode 0666
+EndSection
+
+#Section "Extensions"
+#    Option "Composite" "Enable"
+#EndSection
+
+## END OF FILE #################################################################
diff --git a/etc/X11/xorg.conf.vmware b/etc/X11/xorg.conf.vmware
new file mode 100644 (file)
index 0000000..28d47b9
--- /dev/null
@@ -0,0 +1,163 @@
+################################################################################
+# Filename:      /etc/X11/xorg.conf.vmware
+# Purpose:       config file for xserver - generated by grml-x
+# Bug-Reports:   see http://grml.org/bugs/
+# Latest change: Sat Apr 15 10:39:35 CEST 2006 [mika]
+# See also:
+#   /usr/share/doc/xserver-xorg/   and
+#   http://wiki.x.org/wiki/Home    and
+#   http://ftp.x.org/pub/X11R7.0/doc/html/index.html for information on Xorg
+#   /usr/share/doc/xfree86-common/                   for information on XFree86
+# Refer to the xorg.conf man page and to
+# http://ftp.x.org/pub/X11R7.0/doc/html/xorg.conf.5.html
+# for details about the format of this file.
+################################################################################
+
+Section "ServerLayout"
+        Identifier     "XServer Configured"
+        Screen      0  "Screen0" 0 0
+        InputDevice    "Keyboard0"  "CoreKeyboard"
+        InputDevice    "PS/2 Mouse" "CorePointer"
+EndSection
+
+Section "ServerFlags"
+        Option "AllowMouseOpenFail"  "true"  # allows the server to start up even if the mouse does not work
+        Option "DontVTSwitch"        "false" # allow switching between virtual terminal
+        # Option "DontZap"             "true"  # disable <Crtl><Alt><BS> (server abort)
+        # Option "DontZoom"            "true"  # disable <Crtl><Alt><KP_+>/<KP_-> (resolution switching)
+EndSection
+
+Section "Files"
+#        RgbPath      "/usr/X11R6/lib/X11/rgb"
+#        ModulePath   "/usr/X11R6/lib/modules"
+# More information:  http://ftp.x.org/pub/X11R7.0/doc/html/fonts.html
+        FontPath     "/usr/share/fonts/X11/misc"
+        FontPath     "/usr/share/fonts/X11/cyrillic"
+        FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
+        FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
+        FontPath     "/usr/share/fonts/X11/Type1"
+        FontPath     "/usr/share/fonts/X11/100dpi"
+        FontPath     "/usr/share/fonts/X11/75dpi"
+        FontPath     "/usr/X11R6/lib/X11/fonts/misc:unscaled"
+        FontPath     "/usr/X11R6/lib/X11/fonts/misc"
+        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
+        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi"
+        FontPath     "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
+        FontPath     "/usr/X11R6/lib/X11/fonts/100dpi"
+# True type and type1 fonts are also handled via xftlib, see /etc/X11/XftConfig!
+        FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
+        FontPath     "/usr/share/fonts/ttf/western"
+        FontPath     "/usr/share/fonts/ttf/decoratives"
+        FontPath     "/usr/share/fonts/truetype/ttf-bitstream-vera"
+        FontPath     "/usr/share/fonts/latex-ttf-fonts"
+        FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
+EndSection
+
+# Modules - see /usr/X11R6/lib/modules/fonts and /usr/X11R6/lib/modules/extensions
+Section "Module"
+        Load  "dbe"       # double buffer extension
+        Load  "dri"       # direct rendering
+        Load  "glx"       # 3D layer
+        Load  "type1"     # font module
+        Load  "freetype"  # font rendering
+        Load  "extmod"    # some commonly used server extensions (e.g. shape extension)
+        Load  "record"    # recording extension
+        # Load  "vbe"       # Vesa BIOS Extension
+        # Load  "ddc"       # ddc probing of monitor
+        # Load  "bitmap"    # bitmap fonts
+        # Load  "GLcore"    # render OpenGL in software
+        # Load  "i2c"       # I2C bus
+        # Load  "int10"     # initialize graphics cards via int10 call to the BIOS
+        # Load  "speedo"    # font module
+        # Load  "v4l"       # Video for Linux
+        # Load  "evdev"     # generic input handling driver on Linux
+# Valid entries - see /usr/lib/xorg/modules/[extensions/]
+# afb bitmap cfb cfb16 cfb24 cfb32 cw damage dbe ddc dri drm extmod fb
+# fbdevhw freetype GLcore glx i2c int10 int10 layer mfb pcidata rac ramdac
+# record scanpci shadow shadowfb type1 vbe vgahw xaa xf1bpp xf24_32bpp xf4bpp
+# xf8_16bpp xf8_32bpp xtrap
+EndSection
+
+# If you'd like to switch the positions of your capslock and control keys, use:
+# Option "XkbOptions" "ctrl:swapcaps"
+# Or if you just want both to be control, use:
+# Option "XkbOptions" "ctrl:nocaps"
+# More information: http://ftp.x.org/pub/X11R7.0/doc/html/XKB-Config.html
+Section "InputDevice"
+        Identifier  "Keyboard0"
+        Option      "CoreKeyboard"
+        Driver      "kbd"
+        #Option      "XkbRules"   "xfree86"
+        Option      "XkbRules"   "xorg"
+        Option      "XkbModel"   "pc105"
+        Option      "XkbLayout"  "us"
+        #Option      "XkbVariant" "nodeadkeys"
+EndSection
+
+# More information: http://ftp.x.org/pub/X11R6.9.0/doc/html/mouse.html
+
+Section "InputDevice"
+        Identifier  "PS/2 Mouse"
+        Driver      "mouse"
+        Option      "Device" "/dev/input/mice"
+        Option      "Protocol" "explorerps/2"
+        Option      "Buttons" "5"
+        Option      "ZAxisMapping" "4 5"
+EndSection
+
+Section "Monitor"
+        Identifier   "Monitor0"
+        Option       "DPMS"      "true"
+        HorizSync    31.0 - 61.0
+        VertRefresh  50.0 - 90.0
+EndSection
+
+Section "Device"
+        # Option      "RenderAccel" "true"
+        Identifier  "Card0"
+        Driver      "vmware"
+        VendorName  "All"
+        BoardName   "All"
+        # BusID       "PCI:1:0:0"
+EndSection
+
+Section "Screen"
+        Identifier "Screen0"
+        Device     "Card0"
+        Monitor    "Monitor0"
+        DefaultColorDepth 16
+        SubSection "Display"
+                Depth     1
+                Modes "1024x768" "800x600" "640x480"
+        EndSubSection
+        SubSection "Display"
+                Depth     4
+                Modes "1024x768" "800x600" "640x480"
+        EndSubSection
+        SubSection "Display"
+                Depth     8
+                Modes "1024x768" "800x600" "640x480"
+        EndSubSection
+        SubSection "Display"
+                Depth     15
+                Modes "1024x768" "800x600" "640x480"
+        EndSubSection
+        SubSection "Display"
+                Depth     16
+                Modes "1024x768" "800x600" "640x480"
+        EndSubSection
+        SubSection "Display"
+                Depth     24
+                Modes "1024x768" "800x600" "640x480"
+        EndSubSection
+        SubSection "Display"
+                Depth     32
+                Modes "1024x768" "800x600" "640x480"
+        EndSubSection
+EndSection
+
+Section "DRI"
+        Mode 0666
+EndSection
+
+## END OF FILE #################################################################
diff --git a/etc/init.d/xfree86-common b/etc/init.d/xfree86-common
new file mode 100755 (executable)
index 0000000..34310c6
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+# $Id: xfree86-common.init 2186 2005-02-11 07:11:05Z branden $
+
+# Copyright 2003, 2004 Branden Robinson <branden@debian.org>.
+#
+# This is free software; you may redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2,
+# or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License with
+# the Debian operating system, in /usr/share/common-licenses/GPL;  if
+# not, write to the Free Software Foundation, Inc., 59 Temple Place,
+# Suite 330, Boston, MA 02111-1307 USA
+
+set -e
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+SOCKET_DIR=/tmp/.X11-unix
+ICE_DIR=/tmp/.ICE-unix
+
+do_restorecon () {
+  # Restore file security context (SELinux).
+  if which restorecon >/dev/null 2>&1; then
+    restorecon "$1"
+  fi
+}
+
+set_up_socket_dir () {
+  echo -n "Setting up X server socket directory $SOCKET_DIR..."
+  if [ -e $SOCKET_DIR ] && ! [ -d $SOCKET_DIR ]; then
+    mv $SOCKET_DIR $SOCKET_DIR.$$
+  fi
+  mkdir -p $SOCKET_DIR
+  chown 0:0 $SOCKET_DIR
+  chmod 1777 $SOCKET_DIR
+  do_restorecon $SOCKET_DIR
+  echo "done."
+}
+
+set_up_ice_dir () {
+  echo -n "Setting up ICE socket directory $ICE_DIR..."
+  if [ -e $ICE_DIR ] && ! [ -d $ICE_DIR ]; then
+    mv $ICE_DIR $ICE_DIR.$$
+  fi
+  mkdir -p $ICE_DIR
+  chown 0:0 $ICE_DIR
+  chmod 1777 $ICE_DIR
+  do_restorecon $ICE_DIR
+  echo "done."
+}
+
+case "$1" in
+  start)
+    set_up_socket_dir
+    set_up_ice_dir
+  ;;
+
+  restart|reload|force-reload)
+    /etc/init.d/xfree86-common start
+  ;;
+
+  stop)
+   :
+  ;;
+
+  *)
+    echo "Usage: /etc/init.d/xfree86-common {start|stop|restart|reload|force-reload}"
+    exit 1
+    ;;
+esac
+
+exit 0
+
+# vim:set ai et sts=2 sw=2 tw=80:
diff --git a/etc/zsh/completion.d/grml-x b/etc/zsh/completion.d/grml-x
new file mode 100644 (file)
index 0000000..0bf58a5
--- /dev/null
@@ -0,0 +1,45 @@
+# Filename:      /etc/zsh/completion.d/grml-x
+# Purpose:       completion for command grml-x for zsh (z shell)
+# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports:   see http://grml.org/bugs/
+# License:       This file is licensed under the GPL v2.
+# Latest change: Sam Aug 12 10:26:16 CEST 2006 [mika]
+################################################################################
+
+#  compdef _grml-x grml-x
+
+  for wm in blackbox dwm evilwm fluxbox fvwm fvwm2 fvwm-crystal gnome-session  \
+            gnomesession icewm ion2 ion3 jwm pekwm pwm3 ratpoison startkde twm \
+            w9wm windowlab wmi wmii wm-ng xfce4 xfwm4 ; do
+    [ -x /usr/bin/$wm ] && LIST="$LIST $wm"
+  done
+
+  _grml-x() { local arguments wm
+   wm=(`echo $LIST`)
+   arguments=(
+   '-display:display for xserver:(7 8)'
+   '-force[force creation of xconfig file]'
+   '-help:[display help]'
+   '-genmouse[generate generic entry for mouse using /dev/input/mice and auto protocol]'
+   '-hsync:horizontal sync frequencies (<number>):(28 `seq 30 5 95` 96)'
+   '-mode:resolution-mode for xserver (<width>x<height> - e.g. 1024x768)]:(1920x1440 1600x1200 1400x1050 1280x1024 1280x960 1024x768 800x600 640x480)'
+   '-module:module for xserver :(`cd /usr/lib/xorg/modules/drivers/ && /bin/ls *.so | sed -e 's/_drv.so//' -e 's/.so//'`)'
+   '-nodpms[disable Display Power Management Signaling]'
+   '-noddc[use static resolution modes for monitors without support for ddc probing]'
+   '-nohsync[do not activate HorizSync-entry]'
+   '-nops2[deactivate entry for PS/2 mouse]'
+   '-nostart[do not start X server]'
+   '-nosynaptics[use a synaptics touchpad without synaptics driver/functions]'
+   '-nosync[do not use static horizontal and vertical sync frequencies but let it choose the X-server]'
+   '-nousb[deactivate default entry for usb mouse (/dev/input/mice)]'
+   '-novref[do not activate VertRefresh-entry]'
+   '-vsync:vertical sync frequencies (<number>):(43 `seq 45 5 70` 72)'
+   '-xserver:xserver used for creation of xconfig file:(XFree86 X.org)'
+   ':window manager:($wm)'
+   )
+    _arguments -s $arguments
+  }
+  compdef _grml-x grml-x
+
+## END OF FILE #################################################################
+# vim:foldmethod=marker
diff --git a/grml-x b/grml-x
new file mode 100755 (executable)
index 0000000..8a55123
--- /dev/null
+++ b/grml-x
@@ -0,0 +1,858 @@
+#!/usr/bin/zsh
+# Filename:      grml-x
+# Purpose:       wrapper for startx on grml [providing new xconfiguration tool]
+# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports:   see http://grml.org/bugs/
+# License:       This file is licensed under the GPL v2.
+# Latest change: Sam Aug 05 08:38:49 CEST 2006 [mika]
+################################################################################
+
+# some zsh-stuff {{{
+  if [[ $DEBUG -gt 0 ]]; then
+      setopt xtrace
+  fi
+  autoload colors ; colors
+  [ -r /etc/grml_colors ] && . /etc/grml_colors
+  [ -r /etc/grml/sh-lib ] && . /etc/grml/sh-lib
+  if [ -r /etc/sysconfig/keyboard ] ; then
+    source /etc/sysconfig/keyboard
+  else
+    XKEYBOARD='us'
+  fi
+# }}}
+
+# warn if running as user root {{{
+  if [[ $UID == 0 ]] ; then
+     print "$bg[black]$fg[red]${bold_color}Warning: Please do not run grml-x as user root.${reset_color}"
+     print "$bg[black]$fg[red]${bold_color}Running grml-x as user root is *not* supported!${reset_color}"
+     print "$bg[black]$fg[red]${bold_color}Switch to user grml or run su - grml -c 'grml-x ...' instead.${reset_color}"
+     # exit -1
+  fi
+  fstabuser=$(grep ':x:1000:' /etc/passwd)
+  export fstabuser=${fstabuser%%[:]*}
+# }}}
+
+# set variables  {{{
+  PROGRAMNAME=${0##*/}
+  HWINFO='/usr/sbin/hwinfo'
+  DATE=$(date)
+  (( ${+XINITRC} )) || XINITRC="$HOME/.xinitrc"
+# }}}
+
+# usage information {{{
+usage()
+{
+  if [[ $1 != '' ]] ; then echo 1>&2 "\n$1" ; fi
+  print "$bg[black]$fg[red]$bold_color"
+  print 1>&2 "
+Usage: $PROGRAMNAME
+       $PROGRAMNAME [-options] windowmanager
+
+Examples:
+  $PROGRAMNAME wmii
+  $PROGRAMNAME pekwm
+  $PROGRAMNAME fluxbox
+  $PROGRAMNAME -force -nostart fluxbox
+  $PROGRAMNAME -nosynaptics fluxbox
+  $PROGRAMNAME -nosync fluxbox
+  $PROGRAMNAME -noddc wmii
+  $PROGRAMNAME -nousb fluxbox
+  $PROGRAMNAME -module radeon -mode 1024x768 -vsync 60 wmi
+  XINITRC=~/.xinitrc $PROGRAMNAME ion
+  $PROGRAMNAME -display 8 wmii
+
+More information on grml-x can be found in the manual page: man grml-x
+
+Report bugs, send wishes and feedback to the grml team:
+http://grml.org/bugs/ - contact (at) grml.org
+"
+#  $PROGRAMNAME wmi -- :8
+  print "${reset_color}"
+  exit 2
+}
+# }}}
+
+# writehwinfo {{{
+writehwinfo()
+{
+   HWINFO_TMP="/tmp/hwinfo.$$"
+   if [[ $UID == 0 ]] ; then
+     su - $fstabuser -c "$HWINFO > $HWINFO_TMP"
+   else
+     $HWINFO > $HWINFO_TMP
+   fi
+}
+# }}}
+
+# monitor {{{
+monitor()
+{
+  MONITORINFO="/tmp/monitorinfo.$$"
+  sudo $HWINFO --monitor > $MONITORINFO
+}
+# }}}
+
+# mode {{{
+mode()
+{
+   modes=$(perl -e 'while (<STDIN>) {if (/  Resolution:/) { s/.*\s+(\d+x\d+).*/$1/; print} }' < $MONITORINFO |
+sort -nur | perl -ne 's/\s+/ /; s/(\d+x\d+)/"$1"/; print')
+   if [[ -n $NODDC ]] ; then
+     MODES='Modes "1024x768" "800x600" "640x480"  "1600x1200" "1280x1024" "1280x960"'
+   elif [[ "$modes" == "\"1024x768\" " || -z $modes ]] ; then
+     MODES='# Modes "1024x768" "800x600" "640x480"  "1600x1200" "1280x1024" "1280x960"'
+   else
+     MODES="# Modes $modes"
+   fi
+}
+# }}}
+
+# sync - get hsync/vsync settings {{{
+sync()
+{
+   monitor # get monitor settings
+   vsyncval=$(awk '/Vert. Sync Range:/{print $4}' $MONITORINFO | sed 's/-/.0 - / ; s/$/.0/' | head -1)
+   hsyncval=$(awk '/Hor. Sync Range:/{print $4}'  $MONITORINFO | sed 's/-/.0 - / ; s/$/.0/' | head -1)
+   if [ -z $vsyncval ] ; then
+     vsyncval='50.0 - 60.0'
+   fi
+   if [ -z $hsyncval ] ; then
+     hsyncval='28.0 - 96.0'
+   fi
+}
+sync
+# }}}
+
+# mouse {{{
+mouse()
+{
+   MOUSEINFO="/tmp/mouse.$$"
+#   if [[ $UID == 0 ]] ; then
+#     su - $fstabuser -c "$HWINFO --mouse > $MOUSEINFO"
+#   else
+     sudo $HWINFO --mouse > $MOUSEINFO
+#   fi
+
+   # SynPS/2 Synaptics TouchPad
+   if grep -q 'Device:.*Synaptics' "$MOUSEINFO" ; then
+    if [[ "$SYNAPTICS" == "yes" ]] ; then # check for '-nosynaptics'-option
+     MOUSEDRIVER='synaptics'
+     # SYNMOUSE='InputDevice    "Synaptics" "CorePointer"'
+     SYNMOUSE='InputDevice    "Synaptics"  "AlwaysCore"'
+     SYNMOUSEDETAIL="
+Section \"InputDevice\"
+  Driver        \"synaptics\"
+  Identifier    \"Synaptics\"
+  Option        \"Device\"        \"/dev/psaux\"
+  Option        \"Protocol\"      \"auto-dev\"
+  Option        \"LeftEdge\"      \"1700\"
+  Option        \"RightEdge\"     \"5300\"
+  Option        \"TopEdge\"       \"1700\"
+  Option        \"BottomEdge\"    \"4200\"
+  Option        \"FingerLow\"     \"25\"
+  Option        \"FingerHigh\"    \"30\"
+  Option        \"ZAxisMapping\"   \"4 5\"
+  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/ps2mouse\"
+EndSection
+"
+    else
+     MOUSEDRIVER='mouse'
+     SYNMOUSEDETAIL=""
+     SYNMOUSE='# No synaptics touchpad detected.'
+    fi
+   else
+
+    # AlpsPS/2 ALPS TouchPad (with Synapticsdriver)
+    if grep -q 'Device:.*ALPS' "$MOUSEINFO" ; then
+     if [[ "$SYNAPTICS" == "yes" ]] ; then # check for '-nosynaptics'-option
+      MOUSEDRIVER='synaptics'
+      # SYNMOUSE='InputDevice    "Synaptics" "CorePointer"'
+      SYNMOUSE='InputDevice    "Synaptics"  "AlwaysCore"'
+      SYNMOUSEDETAIL="
+Section \"InputDevice\"
+  Driver        \"synaptics\"
+  Identifier    \"Synaptics\"
+  Option        \"Device\"        \"/dev/psaux\"
+  Option        \"Protocol\"      \"auto-dev\"
+  Option        \"LeftEdge\"      \"120\"
+  Option        \"RightEdge\"     \"850\"
+  Option        \"TopEdge\"       \"120\"
+  Option        \"BottomEdge\"    \"650\"
+  Option        \"FingerLow\"     \"14\"
+  Option        \"FingerHigh\"    \"15\"
+  Option        \"ZAxisMapping\"   \"4 5\"
+  Option        \"MaxTapTime\"    \"180\"
+  Option        \"MaxTapMove\"    \"50\"
+  Option        \"MaxDoubleTapTime\"    \"100\"
+  Option        \"VertScrollDelta\" \"20\"
+  Option        \"HorizScrollDelta\" \"20\"
+  Option        \"MinSpeed\"      \"0.3\"
+  Option        \"MaxSpeed\"      \"2.00\"
+  Option        \"AccelFactor\" \"0.030\"
+  Option        \"UpDownScrolling\" \"1\"
+  Option        \"EmulateMiddleButtonTime\" \"75\"
+  Option        \"CircularScrolling\" \"1\"
+  Option        \"CircScrollDelta\" \"0.1\"
+  Option        \"CircScrollTrigger\" \"8\"
+#  Option       \"SHMConfig\"     \"on\"
+#  Option       \"Repeater\"      \"/dev/ps2mouse\"
+EndSection
+"
+     else
+      MOUSEDRIVER='mouse'
+      SYNMOUSEDETAIL=""
+      SYNMOUSE='# No alps touchpad detected.'
+     fi
+    else
+      SYNMOUSE='# No alps touchpad present.'
+    fi
+   fi
+
+   # USB-PS/2 Optical Mouse
+#   if grep -q 'Device:.*USB' "$MOUSEINFO" ; then
+   if ! [[ -n $NOUSB ]] ; then
+     USB='yes'
+     USBMOUSE='InputDevice    "USB Mouse"  "CorePointer"'
+     USBMOUSEDETAIL="
+Section \"InputDevice\"
+        Identifier      \"USB Mouse\"
+        Driver          \"mouse\"
+        Option          \"Device\"                \"/dev/input/mice\"
+        Option          \"Protocol\"              \"auto\"
+        Option          \"ZAxisMapping\"          \"4 5\"
+        Option          \"Buttons\"               \"5\"
+        Option          \"SendCoreEvents\"        \"true\"
+EndSection
+"
+   else
+     USBMOUSE='# Deactivated USB Mouse as requested.'
+   fi
+
+   if grep -q 'Device:.*Serial' "$MOUSEINFO" ; then
+     SERIAL='yes'
+     SERMOUSE='InputDevice    "Serial Mouse" "CorePointer"'
+     SERMOUSEDETAIL="
+Section \"InputDevice\"
+        Identifier  \"Serial Mouse\"
+        Driver      \"mouse\"
+        Option      \"Device\" \"/dev/ttyS0\"
+        Option      \"Protocol\" \"Microsoft\"
+        Option      \"Emulate3Buttons\" \"true\"
+        Option      \"Emulate3Timeout\" \"70\"
+        Option      \"SendCoreEvents\"  \"true\"
+EndSection
+"
+   else
+     SERMOUSE='# No serial mouse detected.'
+   fi
+
+   # ImExPS/2 Logitech Explorer Mouse
+   # "PS2++ Logitech MX Mouse"
+   if ! [[ -n $NOPS2 ]] ; then
+     if grep -qE 'Device:.*PS.?2' "$MOUSEINFO" ; then
+       PS2='yes'
+       PS2MOUSE='InputDevice    "PS/2 Mouse" "CorePointer"'
+       PS2MOUSEDETAIL="
+Section \"InputDevice\"
+        Identifier  \"PS/2 Mouse\"
+        Driver      \"mouse\"
+        Option      \"Device\" \"/dev/input/mice\"
+        # Option      \"Device\" \"/dev/psaux\"
+        Option      \"Protocol\" \"PS/2\"
+        Option      \"Emulate3Buttons\" \"true\"
+        Option      \"Emulate3Timeout\" \"70\"
+        Option      \"SendCoreEvents\"  \"true\"
+EndSection
+"
+     else
+       PS2MOUSE='# No PS/2 mouse detected.'
+       PS2MOUSEDETAIL=""
+     fi
+   else
+     PS2MOUSE='# Deactivated PS/2 Mouse as requested.'
+   fi
+
+   if [[ -n $GENERICMOUSE ]] ; then
+     GENERIC='yes'
+     GENERICMOUSE='InputDevice    "Generic Mouse" "CorePointer"'
+     GENERICMOUSEDETAIL="
+Section \"InputDevice\"
+        Identifier  \"Generic Mouse\"
+        Driver      \"mouse\"
+        Option      \"Device\" \"/dev/input/mice\"
+        Option      \"Protocol\" \"auto\"
+        Option      \"Buttons\" \"5\"
+        Option      \"ZAxisMapping\" \"4 5\"
+EndSection
+"
+   else
+     GENERICMOUSE='# No generic mouse configured.'
+   fi
+
+   MOUSE="        $USBMOUSE
+        $PS2MOUSE
+        $SYNMOUSE
+        $GENERICMOUSE
+        $SERMOUSE"
+}
+# }}}
+
+# commandline parsing {{{
+parse_options()
+{
+   # default values
+   #o_xserver=(-xserver XFree86)
+   #o_hsync=(-hsync '28.0 - 96.0')
+   #o_vsync=(-vsync '50.0 - 60.0')
+
+   zparseopts -K -- xserver:=o_xserver module:=o_module help=o_help noddc=o_noddc nosync=o_nosync \
+                    vsync:=o_vsync hsync:=o_hsync mode:=o_mode force=o_force display:=o_display   \
+                    nostart=o_nostart nodpms=o_nodpms nosynaptics=o_nosynaptics nousb=o_nousb \
+                    nops2=o_nops2 genmouse=o_genmouse novref=o_novref nohsync=o_nohsync
+
+   if [[ $# == 0 || "$o_help" != "" || "$1" == '-h' || "$1" == '--help' ]]; then
+      usage
+   fi
+
+   if [[ "$o_force" != "" ]]; then
+      FORCE="yes"
+   fi
+
+   if [[ "$o_nodpms" != "" ]]; then
+      DPMS='Option       "DPMS"      "false"'
+   else
+      DPMS='Option       "DPMS"      "true"'
+   fi
+
+   if [[ "$o_noddc" != "" ]]; then
+      NODDC="yes"
+   fi
+
+   if [[ "$o_vsync" != "" ]]; then
+      FORCE="yes"
+   fi
+
+   if [[ "$o_hsync" != "" ]]; then
+      FORCE="yes"
+   fi
+
+   if [[ "$o_xserver" != "" ]]; then
+      FORCE="yes"
+   fi
+
+   if [[ "$o_nousb" != "" ]]; then
+      NOUSB='yes'
+   fi
+
+   if [[ "$o_nops2" != "" ]]; then
+      NOPS2='yes'
+   fi
+
+   if [[ "$o_genmouse" != "" ]]; then
+      GENERICMOUSE='yes'
+   fi
+
+   if [[ "$o_nosynaptics" != "" ]]; then
+      SYNAPTICS='no'
+   else
+      SYNAPTICS='yes'
+   fi
+
+   if [[ "$o_nostart" != "" ]]; then
+      NOSTART="yes"
+   fi
+
+   DISPLAY=$o_display[2]
+   if [ -z $o_hsync ] ; then
+     o_hsync=(-hsync "$hsyncval")
+     HSYNC=$o_hsync[2]
+     HORIZSYNC="        HorizSync    $HSYNC"
+   else
+     o_hsync=(-hsync "$o_hsync[2]")
+     HSYNC=$o_hsync[2]
+     HORIZSYNC="        HorizSync    $HSYNC"
+   fi
+
+   if [ -z $o_vsync ] ; then
+     o_vsync=(-vsync "$vsyncval")
+     VSYNC=$o_vsync[2]
+     VERTISYNC="        VertRefresh  $VSYNC"
+   else
+     o_vsync=(-vsync "$o_vsync[2]")
+     VSYNC=$o_vsync[2]
+     VERTISYNC="        VertRefresh  $VSYNC"
+   fi
+
+   if [[ "$o_nosync" != "" ]]; then
+      HORIZSYNC="#       HorizSync   28.0 - 96.0  # deactivated via -nosync option of grml-x"
+      VERTISYNC="#       VertRefresh 50.0 - 60.0  # deactivated via -nosync option of grml-x"
+   fi
+   if [[ "$o_nohsync" != "" ]]; then
+      HORIZSYNC="#       HorizSync   28.0 - 96.0  # deactivated via -nohsync option of grml-x"
+   fi
+   if [[ "$o_novref" != "" ]]; then
+      VERTISYNC="#       VertRefresh 50.0 - 60.0  # deactivated via -novref option of grml-x"
+   fi
+
+   eval WINDOWMANAGER=\${$#}
+
+   XSERVER=$o_xserver[2]
+   if [[ -n $(X -version 2>&1| grep XFree86) || "$XSERVER" == XFree86 ]] ; then
+      XSERVER="XFree86"
+      XCONFIG='/etc/X11/XF86Config-4'
+      KEYBOARD="Driver      \"keyboard\"
+        Option      \"XkbRules\" \"xfree86\"
+        Option      \"XkbModel\" \"pc105\"
+        Option      \"XkbLayout\" \"${XKEYBOARD}\"
+        #Option      \"XkbVariant\" \"nodeadkeys\""
+   elif [[ -n $(X -version 2>&1 | grep -e 'X\.Org' -e 'Version 7\.') || "$XSERVER" == Xorg ]] ; then
+      XSERVER="Xorg"
+      XCONFIG='/etc/X11/xorg.conf'
+      KEYBOARD="Driver      \"kbd\"
+        #Option      \"XkbRules\"   \"xfree86\"
+        Option      \"XkbRules\"   \"xorg\"
+        Option      \"XkbModel\"   \"pc105\"
+        Option      \"XkbLayout\"  \"${XKEYBOARD}\"
+        #Option      \"XkbVariant\" \"nodeadkeys\""
+   fi
+
+   # check for font path
+   if [ -d /usr/share/fonts/X11 ] ; then
+      XFONTS="        FontPath     \"/usr/share/fonts/X11/misc\"
+        FontPath     \"/usr/share/fonts/X11/cyrillic\"
+        FontPath     \"/usr/share/fonts/X11/100dpi/:unscaled\"
+        FontPath     \"/usr/share/fonts/X11/75dpi/:unscaled\"
+        FontPath     \"/usr/share/fonts/X11/Type1\"
+        FontPath     \"/usr/share/fonts/X11/100dpi\"
+        FontPath     \"/usr/share/fonts/X11/75dpi\""
+   fi
+   if [ -d /usr/X11R6/lib/X11/fonts ] ; then
+       XFONTS="$XFONTS
+        FontPath     \"/usr/X11R6/lib/X11/fonts/misc:unscaled\"
+        FontPath     \"/usr/X11R6/lib/X11/fonts/misc\"
+        FontPath     \"/usr/X11R6/lib/X11/fonts/75dpi:unscaled\"
+        FontPath     \"/usr/X11R6/lib/X11/fonts/75dpi\"
+        FontPath     \"/usr/X11R6/lib/X11/fonts/100dpi:unscaled\"
+        FontPath     \"/usr/X11R6/lib/X11/fonts/100dpi\""
+   fi
+
+   if [[ "$XKEYBOARD" == de ]] ; then
+       KEYBOARD="$KEYBOARD
+       Option      \"XkbVariant\" \"nodeadkeys\""
+   fi
+
+   print -n "$bold_color$fg[blue]Gathering hardware information: $fg[red]"
+
+   writehwinfo
+   MONITOR=$(awk '/monitor.1:/{print $3}' $HWINFO_TMP)
+   if [[ $MONITOR != 'ddc' ]] ; then
+     NODDC=yes
+   fi
+   MODULE=$o_module[2]
+   if [ -z $MODULE ] ; then
+     MODULE="$(getBootParam xmodule 2>/dev/null)"
+     if [ -z "$MODULE" ] ; then
+       MODULE=$(grep 'XFree86 v4 Server Module:' "${HWINFO_TMP}" | head -1 | awk '{print $5}')
+       if [ -z  "$MODULE" ] ; then
+         MODULE='vesa'
+       fi
+     fi
+   else
+     FORCE="yes"
+   fi
+
+   mouse    # get mouse settings
+   VGA=$(lspci | grep VGA | sed 's/.*compatible controller: //' | head -1)
+
+   MODE=$o_mode[2]
+   if [ -z $MODE ] ; then
+     mode # get available modes
+   else
+     MODES="Modes \"$MODE\""
+     FORCE="yes"
+   fi
+
+   print "$fg[green]done$reset_color"
+
+
+   print "$bg[black]$fg[white]$bold_color"
+   print "$fg[green]Specified windowmanager is $fg[yellow]$WINDOWMANAGER"
+   print "$fg[green]Video is $fg[yellow]$VGA$fg[green] using $bg[black]$fg[yellow]${XSERVER}$fg[cyan](${MODULE})$fg[green] Server"
+   [[ -z $HSYNC ]] && [[ -z $VSYNC ]] && print "$fg[green]Monitor is $fg[yellow]$MONITOR"
+   [[ -z $HSYNC ]] && [[ -n $VSYNC ]] && print "$fg[green]Monitor is $fg[yellow]$MONITOR$fg[green], VSYNC: $fg[yellow]$VSYNC"
+   [[ -z $VSYNC ]] && [[ -n $HSYNC ]] && print "$fg[green]Monitor is $fg[yellow]$MONITOR$fg[green], HSYNC: $fg[yellow]$HSYNC"
+   [[ -n $VSYNC ]] && [[ -n $HSYNC ]] && print "$fg[green]Monitor is $fg[yellow]$MONITOR$fg[green], HSYNC: $fg[yellow]$HSYNC $fg[green]VSYNC: $fg[yellow]$VSYNC"
+   [[ -n $modes ]] && print "$fg[green]Using default X.org modes."
+   [[ -z $modes ]] && print "$fg[green]Using Mode: $fg[yellow]$MODE"
+#   [[ -n $MODE ]] && print "$fg[green]Using Mode: $fg[yellow]$MODE"
+#   [[ -z $MODE ]] && print "$fg[green]Using default modes."
+   print "${reset_color}"
+#   if [[ $module[1] != ./. ]]; then module="$PWD/$module"; fi
+}
+parse_options $*
+# }}}
+
+# check for requirements {{{
+requirements()
+{
+if ! [ -x $(which hwinfo) ] ; then
+  print "$bg[black]$fg[red]${bold_color}Error: hwinfo not found in path.${reset_color}
+Note:  run 'apt-get install hwinfo' on systems running debian.
+Exiting.${reset_color}"
+  exit -1
+fi
+
+if ! [[ -d /sys ]] ; then
+  print "$bg[black]$fg[red]${bold_color}Error: mounted /sys required (for hwinfo).${reset_color}
+You may want to add the following line to your /etc/fstab:
+
+  sysfs /sys sysfs defaults 0 0
+
+or just run 'mount /sys'. Exiting.${reset_color}"
+  exit -1
+fi
+}
+requirements
+# }}}
+
+# xconfig {{{
+xconfig() {
+cat << EOX
+################################################################################
+# Filename:      $XCONFIG
+# Purpose:       config file for xserver - generated by grml-x
+# Bug-Reports:   see http://grml.org/bugs/
+# Latest change: ${DATE}
+# See also:
+#   /usr/share/doc/xserver-xorg/   and
+#   http://wiki.x.org/wiki/Home    and
+#   http://ftp.x.org/pub/X11R7.0/doc/html/index.html for information on Xorg
+#   /usr/share/doc/xfree86-common/                   for information on XFree86
+# Refer to the xorg.conf man page and to
+# http://ftp.x.org/pub/X11R7.0/doc/html/xorg.conf.5.html
+# for details about the format of this file.
+# 
+# If you would like this file to be automatically reconfigured by debian,
+# run the following command:
+#   sudo dpkg-reconfigure -phigh xserver-xorg
+################################################################################
+
+Section "ServerLayout"
+        Identifier     "XServer Configured"
+        Screen      0  "Screen0" 0 0
+        InputDevice    "Keyboard0"  "CoreKeyboard"
+$MOUSE
+EndSection
+
+Section "ServerFlags"
+        Option "AllowMouseOpenFail"  "true"  # allows the server to start up even if the mouse does not work
+        Option "DontVTSwitch"        "false" # allow switching between virtual terminal
+        # Option "DontZap"             "true"  # disable <Crtl><Alt><BS> (server abort)
+        # Option "DontZoom"            "true"  # disable <Crtl><Alt><KP_+>/<KP_-> (resolution switching)
+EndSection
+
+Section "Files"
+#        RgbPath      "/usr/X11R6/lib/X11/rgb"
+#        ModulePath   "/usr/X11R6/lib/modules"
+# More information:  http://ftp.x.org/pub/X11R7.0/doc/html/fonts.html
+$XFONTS
+# check:
+#       FontPath     "/usr/X11R6/lib/X11/fonts/Speedo"
+#       FontPath     "/usr/X11R6/lib/X11/fonts/PEX"
+#       FontPath     "/usr/X11R6/lib/X11/fonts/encodings"
+#       FontPath     "/usr/X11R6/lib/X11/fonts/Type1
+#       FontPath     "/usr/X11R6/lib/X11/fonts/util
+# Additional fonts: Locale, Gimp, TTF...
+#       FontPath     "/usr/X11R6/lib/X11/fonts/cyrillic"
+#       FontPath     "/usr/X11R6/lib/X11/fonts/latin2/75dpi"
+#       FontPath     "/usr/X11R6/lib/X11/fonts/latin2/100dpi"
+# True type and type1 fonts are also handled via xftlib, see /etc/X11/XftConfig!
+        FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
+        FontPath     "/usr/share/fonts/ttf/western"
+        FontPath     "/usr/share/fonts/ttf/decoratives"
+#        FontPath     "/usr/share/fonts/truetype"
+#        FontPath     "/usr/share/fonts/truetype/openoffice"
+        FontPath     "/usr/share/fonts/truetype/ttf-bitstream-vera"
+#       FontPath     "/usr/share/fonts/truetype/latex-xft-fonts"
+        FontPath     "/usr/share/fonts/latex-ttf-fonts"
+        FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
+#       FontPath     "/usr/X11R6/lib/X11/fonts/defoma/TrueType"
+#       FontPath     "/usr/X11R6/lib/X11/fonts/defoma/CID"
+EndSection
+
+# Modules - see /usr/X11R6/lib/modules/fonts and /usr/X11R6/lib/modules/extensions
+Section "Module"
+        Load  "dbe"       # double buffer extension
+        Load  "dri"       # direct rendering
+        Load  "glx"       # 3D layer
+        Load  "type1"     # font module
+        Load  "freetype"  # font rendering
+        Load  "extmod"    # some commonly used server extensions (e.g. shape extension)
+        Load  "record"    # recording extension
+        # Load  "vbe"       # Vesa BIOS Extension
+        # Load  "ddc"       # ddc probing of monitor
+        # Load  "bitmap"    # bitmap fonts
+        # Load  "GLcore"    # render OpenGL in software
+        # Load  "i2c"       # I2C bus
+        # Load  "int10"     # initialize graphics cards via int10 call to the BIOS
+        # Load  "speedo"    # font module
+        # Load  "v4l"       # Video for Linux
+        # Load  "evdev"     # generic input handling driver on Linux
+# Valid entries - see /usr/lib/xorg/modules/[extensions/]
+# afb bitmap cfb cfb16 cfb24 cfb32 cw damage dbe ddc dri drm extmod fb
+# fbdevhw freetype GLcore glx i2c int10 int10 layer mfb pcidata rac ramdac
+# record scanpci shadow shadowfb type1 vbe vgahw xaa xf1bpp xf24_32bpp xf4bpp
+# xf8_16bpp xf8_32bpp xtrap
+EndSection
+
+# If you'd like to switch the positions of your capslock and control keys, use:
+# Option "XkbOptions" "ctrl:swapcaps"
+# Or if you just want both to be control, use:
+# Option "XkbOptions" "ctrl:nocaps"
+# More information: http://ftp.x.org/pub/X11R7.0/doc/html/XKB-Config.html
+Section "InputDevice"
+        Identifier  "Keyboard0"
+        Option      "CoreKeyboard"
+        $KEYBOARD
+EndSection
+
+# More information: http://ftp.x.org/pub/X11R7.0/doc/html/mouse.html
+$GENERICMOUSEDETAIL
+$USBMOUSEDETAIL
+$PS2MOUSEDETAIL
+$SERMOUSEDETAIL
+$SYNMOUSEDETAIL
+Section "Monitor"
+        Identifier   "Monitor0"
+#       ModelName    "Old Monitor (no DDC)"
+        $DPMS
+#       HorizSync    28.0 - 78.0 # Warning: This may fry very old Monitors
+#       HorizSync    28.0 - 96.0 # Warning: This may fry old Monitors
+$HORIZSYNC
+#       VertRefresh  50.0 - 76.0 # Very conservative. May flicker.
+#       VertRefresh  50.0 - 60.0 # Extreme conservative. Will flicker. TFT default.
+$VERTISYNC
+# Need more information?
+#  http://xtiming.sourceforge.net/cgi-bin/xtiming.pl
+#  http://en.tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/
+EndSection
+
+Section "Device"
+        ### Available Driver options are:
+        ## sw_cursor is needed for some ati and radeon cards
+        # Option     "sw_cursor"
+        # Option     "hw_cursor"
+        # Option     "NoAccel"
+        # Option     "ShowCache"
+        # Option     "ShadowFB"
+        # Option     "UseFBDev"
+        # Option     "Rotate"
+        ## xorg + nvidia:
+        # Option "RenderAccel" "true"
+        # Option "AllowGLXWithComposite" "true"
+        Identifier  "Card0"
+# The following line is auto-generated by grml-x
+        Driver      "$MODULE"
+        VendorName  "All"
+        BoardName   "All"
+        ## Workaround for drivers which send output to wrong device:
+        # Option "MonitorLayout" "LVDS, AUTO"
+        # Option "MonitorLayout" "LVDS, CRT"
+        # Option "MonitorLayout" "NONE, STV"
+        # Option "MonitorLayout" "LVDS"
+        ## Specify BusID:
+        # BusID       "PCI:1:0:0"
+EndSection
+
+Section "Screen"
+        Identifier "Screen0"
+        Device     "Card0"
+        Monitor    "Monitor0"
+        DefaultColorDepth 16
+        SubSection "Display"
+                Depth     1
+                $MODES
+        EndSubSection
+        SubSection "Display"
+                Depth     4
+                $MODES
+        EndSubSection
+        SubSection "Display"
+                Depth     8
+                $MODES
+        EndSubSection
+        SubSection "Display"
+                Depth     15
+                $MODES
+        EndSubSection
+        SubSection "Display"
+                Depth     16
+                $MODES
+        EndSubSection
+        SubSection "Display"
+                Depth     24
+                $MODES
+        EndSubSection
+        SubSection "Display"
+                Depth     32
+                $MODES
+        EndSubSection
+EndSection
+
+Section "DRI"
+        Mode 0666
+EndSection
+
+#Section "Extensions"
+#    Option "Composite" "Enable"
+#EndSection
+
+## END OF FILE #################################################################
+EOX
+}
+# }}}
+
+# writeit {{{
+writeit() {
+    XCONFTMP="/tmp/xconfig.$$"
+    xconfig > $XCONFTMP
+    [ -f $XCONFIG ] && sudo mv -f $XCONFIG $XCONFIG.old
+    sudo mv $XCONFTMP $XCONFIG
+    sudo chown root.root $XCONFIG
+    sudo chmod 644 $XCONFIG
+}
+# }}}
+
+# writeconfig {{{
+function writeconfig
+{
+  if [[ ! -f $XCONFIG ]] ; then
+    print -n "$bold_color$fg[blue]Creating $XCONFIG: $fg[red]"
+    writeit && print "$fg[green]done$reset_color"
+  else
+    print "$bold_color$fg[blue]Notice: $XCONFIG exists already.
+Use the force-option (-force) to force creation.
+$fg[red]"
+  fi
+  if [[ -n "$FORCE" ]] ; then
+    print "$bold_color$fg[blue]Force-switch or manual option(s) detected -"
+    print -n "moving eventual existing $XCONFIG to ${XCONFIG}.old: $fg[red]"
+    writeit && print "$fg[green]done$reset_color"
+  fi
+}
+# }}}
+
+# runit {{{
+function runit
+{
+  writeconfig
+  if [ -z $NOSTART ] ; then
+    print "$reset_color"
+    if [ -x /etc/init.d/xorg-common ] ; then
+      sudo /etc/init.d/xorg-common start
+    else
+      if [ -x /etc/init.d/xfree86-common ] ; then
+        sudo /etc/init.d/xfree86-common start
+      fi
+    fi
+    print ""
+    if [ -z $DISPLAY ] ; then
+      print "$bold_color$fg[green]Now trying to run startx.$reset_color"
+      startx ~/.xinitrc -- $XOPTS
+    else
+      print "$bold_color$fg[green]Now trying to run startx on display $DISPLAY.$reset_color"
+      startx ~/.xinitrc -- :$DISPLAY $XOPTS
+    fi
+  else
+    print "$bold_color$fg[blue]Not running startx as requested as option.$reset_color"
+  fi
+  return 1
+}
+# }}}
+
+# failed {{{
+function failed
+{
+  print "$fg[red]"
+  if [ $UID != 0 ] ; then
+    if [[ $(tty) == /dev/pts/* ]] ; then
+      print "It seems you are running $PROGRAMNAME from inside GNU screen.
+Notice that this might fail if running as user grml!
+Please exit screen and try to run $PROGRAMNAME again."
+    fi
+  fi
+  print "
+Problems? Run the following commands for getting information on your hardware:
+  hwinfo --gfxcard
+  discover -v --data-path=xfree86/server/device/driver display
+  xdebconfigurator -c -d -i -x
+  get-edid | parse-edid
+
+Do you want to go the debian way of life? Run:
+  apt-get install x-window-system-core read-edid mdetect hwinfo xdebconfigurator
+  dpkg-reconfigure x-window-system-core (or xserver-xfree86 or xserver-xorg depending on your system)
+
+Problems with the module used for X? Try to load another one or
+fall back to module vesa:
+  $PROGRAMNAME -module radeon ...
+  $PROGRAMNAME -module vesa  ...
+
+Do you want to deactivate a present synaptics touchpad? Run:
+  $PROGRAMNAME -nosynaptics ...
+
+Your monitor is very old and/or does not support DDC-probing?
+  $PROGRAMNAME -noddc ...
+
+Do you want to create a x configuration file but do not start X?
+  $PROGRAMNAME -nostart ...
+
+Monitor frequency too high or too low? Just specify hsync/vsync manually:
+  $PROGRAMNAME -hsync 30-65 ...
+  $PROGRAMNAME -hsync 30-65 -vsync 50-60 ...
+
+Want to adjust the resolution? Use the mode-switch:
+  $PROGRAMNAME -mode 1024x768 ...
+  $PROGRAMNAME -mode '1280x1024 1024x768' ...
+
+To adjust resolution while running X execute:
+  xrandr -s '1024x768'
+
+More information on grml-x can be found in the manual page: man grml-x
+
+Report bugs, send wishes and feedback to the grml team:
+http://grml.org/bugs/ - contact (at) grml.org
+"
+print -n "$reset_color"
+}
+# }}}
+
+# cleanup {{{
+cleanup()
+{
+  rm -f $HWINFO_TMP
+  rm -f $MONITORINFO
+  rm -f $MOUSEINFO
+  rm -f $XCONFTMP
+}
+cleanup
+# }}}
+
+# xinitrc {{{
+  if [ -w $XINITRC ] ; then
+    sed -i "s|^[^#]*exec.*|  exec $WINDOWMANAGER|g" $XINITRC
+    runit || failed
+  else
+    echo -e "#!/bin/sh\n  exec $WINDOWMANAGER" >> $XINITRC
+    runit || failed
+  fi
+# }}}
+
+## END OF FILE #################################################################
+# vim:foldmethod=marker
diff --git a/grml-x.1 b/grml-x.1
new file mode 100644 (file)
index 0000000..c107eff
--- /dev/null
+++ b/grml-x.1
@@ -0,0 +1,109 @@
+.TH GRML-X 1
+.SH NAME
+grml-x \- create xconfig file and start X window system on grml-system
+.SH SYNOPSIS
+.B grml-x
+.RI "[ OPTIONS ]" " windowmanager_you_want_to_use"
+.SH DESCRIPTION
+grml-x creates the configuration file for X server (X.org or XFree86)
+and starts up X server with specified window manager.
+.SH IMPLEMENTATION
+grml-x uses hwinfo for getting hardware related information.
+It creates the X config file /etc/X11/xorg.conf for X.org or /etc/X11/XF86Config-4 for
+XFree86 (needs root permissions therefore). If a X config file is present
+already, grml-x won't touch the file unless the '-force' option or another option
+which modifies content of the X config file is specified, the old config file gets backed up
+via adding the extension .old.
+Afterwards the 'exec' command in ~/.xinitrc gets adjusted to start the provided window manager
+and then startx is executed. If ~/.xinitrc does not exist a simple default one will be created.
+Notice that you do not have to use grml-x to start X server if you already have a working
+X config file. Adjust ~/.xinitrc to your needs and then run startx to start X server.
+.SH OPTIONS
+.TP
+.B XOPTS='...'
+Provide options for startx, see 'man 1 startx'.
+.TP
+.B \-display <number>
+Specifiy display for use with Xserver.
+.TP
+.B \-force
+Force creation of xconfig file. This option is also assumed when another
+option which needs to be write values to the X config file is provided. The old
+X config file (/etc/X11/xorg.conf or /etx/X11/XFree86Config-4) is renamed
+via adding the extension .old.
+.TP
+.B \-genmouse
+Generate generic entry for mouse using /dev/input/mice and auto protocol. This option
+is useful in combination with '-nousb -nops2' for example in VMWare.
+.TP
+.B \-help
+Display help.
+.TP
+.B \-hsync <number>
+Specify horizontal sync frequencies. Use a number like "30-65".
+.TP
+.B \-mode <width>x<height>
+Resolution-mode for xserver.
+.TP
+.B \-module <name>
+Module for xserver.
+.TP
+.B \-noddc
+Do not use ddc probing but use static entries for resolution modes.
+.TP
+.B \-nohsnc
+Do not activate HorizSync-entry in xconfig file.
+.TP
+.B \-nops2
+Deactivate entry for PS/2 mouse.
+.TP
+.B \-nostart
+Do not start X server.
+.TP
+.B \-nosynaptics
+Do not activate a present Synaptics touchpad but use it only with 'normal' touchpad
+functions.
+.TP
+.B \-nosync
+Do not activate horizontal and vertical sync frequencies. This option is useful
+on many modern computers using a LCD/TFT display. To avoid problems on very old
+monitors this option is not the default.
+.TP
+.B \-nousb
+Do not set an entry for USB mouse in the xconfig file.
+.TP
+.B \-novref
+Do not activate VertRefresh-entry in xconfig file.
+.TP
+.B \-vsync <number>
+Specify vertical sync frequencies. Use a number like "50-60".
+.TP
+.B \-xserver [XFree86|Xorg]
+Specify Xserver which should be used for creation of xconfig file.
+For XFree86 the file /etc/X11/XF86Config-4 is written, for Xorg the
+file /etc/X11/xorg.conf.
+.SH EXAMPLES
+.TP 
+.B grml-x -mode '1280x1024 1024x768' wmi
+Use resolutions 1280x1024 and 1024x768 and start windowmanager wmi.
+.TP
+.B grml-x -module vesa ion3
+Use vesa-module and start windowmanager ion3.
+.TP
+.B grml-x -hsync "30-65" fluxbox
+Use 30-65kHz for horizontal sync frequency and start windowmanager fluxbox.
+.TP 
+.B grml-x -display 8 ratpoison
+Use display 8 for Xserver and start windowmanager ratpoison.
+.TP 
+.B grml-x -nostart -f fluxbox
+Force writing of config file but do not start X server. Please do not forget to add a window manager as last option because
+grml-x changes the according exec-statement in $HOME/.xinitrc.
+.TP
+.B XOPTS='-depth 16' grml-x fluxbox
+Set color depth to 16 bit and start windowmanager fluxbox.
+.SH BUGS
+.TP
+Please report any problems to the grml-team! http://grml.org/bugs/
+.SH AUTHOR
+This manual page was written by the grml-team. http://grml.org/ (c)Michael Prokop <mika@grml.org>