nixpkgs/pkgs/tools/misc/xdummy/default.nix
aszlig feeb5bae23
Add new package xdummy, a dummy X server.
This is actually a small script which just starts an X server without
any real display. Right now only needed for running the test suite of
the i3 window manager within the Nix chroot, but might be useful for
running other tests needing a DISPLAY.

Usage is just like a regular X server, so in order to start an instance
for display :666, you just run it like this:

xdummy :666

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-08-01 05:49:14 +02:00

84 lines
2.3 KiB
Nix

{ stdenv, writeText, writeScriptBin, xorg, xkeyboard_config }:
let
xorgConfig = writeText "dummy-xorg.conf" ''
Section "ServerLayout"
Identifier "dummy_layout"
Screen 0 "dummy_screen"
InputDevice "dummy_keyboard" "CoreKeyboard"
InputDevice "dummy_mouse" "CorePointer"
EndSection
Section "ServerFlags"
Option "DontVTSwitch" "true"
Option "AllowMouseOpenFail" "true"
Option "PciForceNone" "true"
Option "AutoEnableDevices" "false"
Option "AutoAddDevices" "false"
EndSection
Section "Files"
ModulePath "${xorg.xorgserver}/lib/xorg/modules"
ModulePath "${xorg.xf86videodummy}/lib/xorg/modules"
XkbDir "${xkeyboard_config}/share/X11/xkb"
FontPath "${xorg.fontadobe75dpi}/lib/X11/fonts/75dpi"
FontPath "${xorg.fontadobe100dpi}/lib/X11/fonts/100dpi"
FontPath "${xorg.fontbhlucidatypewriter75dpi}/lib/X11/fonts/75dpi"
FontPath "${xorg.fontbhlucidatypewriter100dpi}/lib/X11/fonts/100dpi"
FontPath "${xorg.fontbh100dpi}/lib/X11/fonts/100dpi"
FontPath "${xorg.fontmiscmisc}/lib/X11/fonts/misc"
FontPath "${xorg.fontcursormisc}/lib/X11/fonts/misc"
EndSection
Section "Module"
Load "dbe"
Load "extmod"
Load "freetype"
Load "glx"
EndSection
Section "InputDevice"
Identifier "dummy_mouse"
Driver "void"
EndSection
Section "InputDevice"
Identifier "dummy_keyboard"
Driver "void"
EndSection
Section "Monitor"
Identifier "dummy_monitor"
HorizSync 30.0 - 130.0
VertRefresh 50.0 - 250.0
Option "DPMS"
EndSection
Section "Device"
Identifier "dummy_device"
Driver "dummy"
VideoRam 192000
EndSection
Section "Screen"
Identifier "dummy_screen"
Device "dummy_device"
Monitor "dummy_monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
EndSection
'';
in writeScriptBin "xdummy" ''
#!${stdenv.shell}
export XKB_BINDIR="${xorg.xkbcomp}/bin"
exec ${xorg.xorgserver}/bin/Xorg \
-noreset \
-logfile /dev/null \
"$@" \
-config "${xorgConfig}"
''