How to install MPX and Metacity
Contents
First of all, you will need the MPX xserver, then you will need to apply a patch in gtk+, and finally you will be able to download and install metacity.
Warning: this really takes some time and requires a lot of free disk space.
Compiling MPX
If you've got Ubuntu, just download the .deb! See [6].
- I don't know if these .debs contains the latest versions of MPX. If you start getting compiler warnings or bugs, use the MPX from git.
- Download all the pre-requisites to compile X.org. You will need the git-core package, and if you're using a Debian-based distribution, you can use 'apt-get build-dep xserver-xorg-core'. If you're using another distribution, there might be an equivalent command. If something is still needed, you might want to take a look at the X.org wiki[0].
- Download the git_xorg.sh script[1].
- Edit it. Remove all the useless modules.
- Remove all the useless video drivers. You will probably only want to download your own video card driver, and maybe the VESA driver, in case the other doesn't work.
- Remove all the useless input drivers. You will probably only want to download the mouse, keyboard and evdev drivers. If you've got other odd input devices, download their modules too.
- Remove the applications. Compiling these takes a really big time, and if you need them, you probably have an already-compiled version that came with your distribution (and it works with MPX).
- Remove the fonts. They use a lot of space in your hard disk and the fonts already compiled in your computer work with MPX.
- Remove anything else you might consider useless.
- Run the git_xorg.sh script. It will download all the needed components in the current directory.
- Change to MPX. Use the install_mpx.sh script[2] or follow the instructions at the mpx website[3].
- Edit the util/modular/build.sh script (that you downloaded via git_xorg.sh). Remove all the modules that you removed from the git_xorg.sh script. You don't want to compile something you didn't download.
- Compile drm:
- cd drm
- LD_LIBRARY_PATH=/opt/mpx/lib PKG_CONFIG_PATH=/opt/mpx/lib/pkgconfig ./autogen.sh --prefix=/opt/mpx
- make
- make install
- cd ..
- Compile pixman:
- cd pixman
- LD_LIBRARY_PATH=/opt/mpx/lib PKG_CONFIG_PATH=/opt/mpx/lib/pkgconfig ./autogen.sh --prefix=/opt/mpx
- make
- make install
- cd ..
- Run the build.sh script using the command:
- PATH=/opt/mpx/bin:$PATH ./util/modular/build.sh /opt/mpx/
- Possible problems:
- If you want to debug stuff, use the command 'export CFLAGS="-O0 -g3"'. This makes the binaries a lot bigger.
- You might find a problem related to xcb (something undefined). If you get this, go to the libxcb directory you downloaded from the separate repository, and use these commands:
- LD_LIBRARY_PATH=/opt/mpx/lib PKG_CONFIG_PATH=/opt/mpx/lib/pkgconfig ./autogen.sh --prefix=/opt/mpx
- make
- make install
- Remember: most of the problems happen because of not-installed required packages.
If you find any other problems, you may write it here so I can write a solution, ask at the #xorg channel in irc.freenode.net, or talk to me, PauloZanoni.
- You've finally compiled xserver!
There are other techniques to reduce the xserver compiling time and the binary sizes. If you compile xserver with the options like "--disable-kdrive --disable-dmx --disable-xglx" and others, you'll save a lot of disk space and time, but you'll need to find out how to compile by yourself =)
Compiling GTK+
- You'll need to download the GTK+ source. I've used the 2.10.11 version, but you might use another. Use the command:
svn co http://svn.gnome.org/svn/gtk+/tags/GTK_2_10_11 gtk+2_10_11
- Get my patch[4], and apply it:
- Go to the gtk+ directory you just created, and do the command:
patch -p1 < gtkPatch.patch
- Now compile everything. Use the commands:
- LD_LIBRARY_PATH=/opt/mpx/lib PKG_CONFIG_PATH=/opt/mpx/lib/pkgconfig ./autogen.sh --prefix=/opt/mpx --with-xinput=yes
- make
- make install
Compiling Metacity
Finally, you'll just need to download metacity!
- Use the commands:
svn co http://svn.gnome.org/svn/metacity/branches/multiple_pointer_x metacity
- cd metacity
- LD_LIBRARY_PATH=/opt/mpx/lib PKG_CONFIG_PATH=/opt/mpx/lib/pkgconfig ./autogen.sh --prefix=/opt/mpx --enable-mpx
- make
- make install
Running everything
- First, add a few keyboards and mice to your computer.
- Then, create your xorg.conf. Make a copy of /etc/X11/xorg.conf and edit it. Use my example xorg.conf file[5].
- Now, use the command:
- export LD_LIBRARY_PATH=/opt/mpx/lib
- Run the xserver:
- Stop your gdm using:
- /etc/init.d/gdm stop
- Stop your gdm using:
- Now, run the xserver:
- /opt/mpx/bin/X -config /opt/mpx/xorg.conf :0
- Start your gnome-session:
- DISPLAY=:0 gnome-session
- Finally, start metacity:
- DISPLAY=:0 /opt/mpx/bin/metacity --replace
Have fun =)
If you have any questions, e-mail (PauloZanoni) me or ask me at IRC (it may take a few hours for me to answer on IRC, since I'm online even when sleeping).
If you have any feedback, bug reports or free beers, send me an e-mail too! I'd really like to know if someone is installing it =)