# Setup XFree86 in GNU
This is a brief helper on how to setup X-Window on GNU.
### Mouse & Keyboard
See [[console]] for more details.
First, set up the keyboard translator. Using `/hurd/kbd` and `/hurd/mouse` is not supported. You should instruct Hurd console to repeat keyboard events to `/dev/cons/kbd`, and mouse events to `/dev/cons/mouse`:
# console -d vga -d pc_kbd --repeat=kbd -d generic_speaker \
-d pc_mouse --repeat=mouse --protocol=ps/2 --console-node=/dev/cons /dev/vcs
Symbolic links to repeaters should be created too:
# ln -s /dev/cons/kbd /dev
# ln -s /dev/cons/mouse /dev
### Selecting & Configuring Packages
You will need several X packages. The `x-window-system-core` brings you most of what you need:
* `xserver-xfree86`
* `xfonts-base`
* `xfonts-100dpi`
* `xfonts-75dpi`
* `xfonts-scalable`
* `xbase-clients`
* `xutils`
* `rxvt`
* ... as well as your window manager of choice:
* WindowMaker, `wmaker`
* FVWM, `fvwm`
* Blackbox, `blackbox`
* TWM, `twm`
The recommended way of configuring X is using the `xserver-xfree86` debconf template, eg:
# dpkg-reconfigure xserver-xfree86
It may be easier to just copy a working configuration from another operation system on the same computer and place it in `/etc/X11/XF86Config-4`, but this is discouraged as you would have to remove some sections by hand.
**_IMPORTANT:_** when you configure X, make sure you do **NOT** enable the `speedo` and `dri` modules because they are currently broken.
### Edit XF86Config-4
Now you have to edit the file manually to ensure that the mouse sections look like this:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/mouse"
Option "Protocol" "osmouse"
EndSection
Section "InputDevice"
Identifier "Generic Mouse"
Driver "mouse"
Option "SendCoreEvents" "true"
Option "Device" "/dev/mouse"
Option "Protocol" "osmouse"
EndSection
You may also enable the Emulate3Buttons option, but nothing else will work.
Option "Emulate3Buttons" "true"
### Dynamic Linking
The Hurd does not use `ld.so.conf`, it is necessary to add the following to `/etc/profile` to be sure that the libraries are found:
LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH
"This is a linker issue. GNU/Hurd expects that \`RPATH' is used, however, Debian takes certain measures to avoid this. Note that this does not cut it for suid binaries because of security implications. We expect to rectify this by using \`RUNPATH', which is specified in the new ELF standard." -- [Why does X not work?](http://www.gnu.org/software/hurd/faq.en.html#q4-8)
### Starting X
Finally, run
`startx`
However, there are several caveats to be aware of:
* `xterm` does not work correctly; try `rxvt`.
* `update-menu` does not yet work. As such, there are no fine Debian menus.
* GNOME can now be ported with the new pthreads, but is still being worked on. [[WindowMaker]], [[TWM]], [[Blackbox]] and [[FVWM]] all work.
### Graphical Environment
See [[GNOME]] in Hurd . (?)
----
Created. -- [[Main/RobertMillan]] - 21 Nov 2002
Some text formatting. -- [[Main/OgnyanKulev]] - 05 Dec 2002
Dito. -- [[Main/JoachimNilsson]] - 12 Jan 2003
`/hurd/kbd` is no longer supported. -- [[Main/OgnyanKulev]] - 11 Aug 2004
`/hurd/mouse` is deprecated. -- [[Main/OgnyanKulev]] - 21 Sep 2004
-c /dev/cons is now --console-note=/dev/cons -- Sven 01 May 2005