# <a name="Setup_XFree86_in_GNU"> </a> Setup XFree86 in GNU

This is a brief helper on how to setup X-Window on GNU.

### <a name="Mouse_amp_Keyboard"> Mouse &amp; Keyboard </a>

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

### <a name="Selecting_amp_Configuring_Packag"> Selecting &amp; Configuring Packages </a>

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.

### <a name="Edit_XF86Config_4"> Edit XF86Config-4 </a>

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"

### <a name="Starting_X"> Starting X </a>

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.

### <a name="Graphical_Environment"> Graphical Environment </a>

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