xinelama

xinelama connects to all given X displays on multiple computers and places them virtually next to each other. You can then cross the screen border with the mouse. You can control any display with any mouse or keyboard connected to any computer. num/caps lock and the clipboard are syncronized to enable copy and paste between all displays. The displays are given in the X notation and ordered as given, but the local display can be given with a -. You need to be able to see the other displays to see what you're doing.

finelama

finelama is a fltk gui frontend for xinelama. it depends on libxl installed by xinelama and fltk.
 

xinelama mini howto

it doesn't matter on which computer xinelama is running. xinelama connects to all given displays and moves around their mouse pointer when you leave the screen on the left or right border. therefor xinelama must be allowed to connect to the displays via tcp. this is only possible when the X servers are listening for tcp connections and access was granted using xhost.
it depends on your distribution weather the x server is listening for tcp connections by default. with gentoo the default is not to listen for tcp connections, so you have to enable this feature. with xdm check /etc/X11/xdm/Xservers, that there is no "-nolisten tcp" added to the X command line. with kdm check /usr/kde/3.*/share/config/kdm/kdmrc if remote connections are allowed. with gdm you can configure this behaviour in it's config program. when you're just using startx check the startx script for "-nolisten tcp".
then, to allow the connection from the server where xinelama will be running, open a xterm on the clients and call xhost:

myclient $ xhost +myserver
or by passing the server ip:
myclient $ xhost +192.168.0.1
after you've done that for each client, you can start xinelama on the server. xinelama takes x display names as arguments.
myserver $ xinelama myclient:0 - 192.168.0.2:0
this would place the display of myclient left of local display (indicated by -) and the display of 192.168.0.2 right of the server. you can specify as many displays you like, in any order.
you can also have a look at the manpage wich describes the same procedure or just type xinelama without options to get a short help.

command line options

Usage: xinelama [OPTIONS...] [DISPLAYS...]

Options:
  -l, --loop         Loop the displays
  -c, --center       Center cursor upon activity
  -b, --border <ms>  Border delay for switching displays
  -n, --nonum        Don't sync num- and capslock
  -r, --norelease    Don't release pressed keys
  -p, --nopaste      Don't sync clipboard
  -d, --daemon       Fork into background (~/.xinelama.pid)
  -s, --stop         Stops an instance running in background
  -V, --version      Display version
  -h, --help         Display this help

Displays:
  Displays are given in the X notation like 'host:0'.
  The local display can be given with a '-'.

download

this project is hosted by

SourceForge.net Logo

xinelama and finelama can be downloaded at the projects page.

compatibility

xinelama uses XGrabPointer() and XGrabKeyboard() so is might not work when another program also tries to grab the keyboard or mouse. There were some problems with previous versions of kde when a menu was opened, but with current versions it seems to work fine. clipboard sharing should work with x, qt/kde and gtk/gnome. i don't know how it behaves with other window managers, graphical toolkits and desktop environments. reports about success or failure are welcome.
some window managers switch desktops after a given delay when touching the border. then try to set the border delay higher.

contact

My name is Bernhard Kepplinger and you can reach me at gcc4fun@gcc4fun.com.

similar projects

well ... they're more advanced (mostly ;) ...
x2x, synergy2, dmx and xremote (which inspired me)