Running 3 X Servers Listening on UNIX and TCP sockets + nvidia-settings command

My Goal:
To start 3 X servers corresponding to 3 monitors: 1st X is for local seat (1 monitor, keyboard, mouse), 2nd & 3rd X servers listening on TCP sockets/connections and they don’t need to attach to local mouse and keyboard.

  1. This is similar to multiseat set up but not quite in that 2nd & 3rd monitors are listening on TCP sockets, not UNIX domain sockets

How does nvidia-settings (command that generates xorg.conf) relate to KDE startup? In other words, KDE display manager starts up X server (correct me if wrong) and which KDE config file contains the command line that starts X? In more details, nvidia-settings will modify that KDE config file so that 3 Xorg servers start up upon boot

Question - Alternative:
Inferior to main question above but I can live with it. Here nvidia-settings is taken out of the picture. How would I configure KDE so that it starts up 3 X servers described in Goal section above? This is more of getting assurance from you experts

  2. In the url, the guy explains exactly just that but it is a bit outdated back in 2011
  3. I have OpenSuSE 12.3 and I just want to know if his config will work for me. Please comment with additional advice


I spent about 2 days looking for that KDE config file where nvidia-settings went and edited (or created) the settings. My eyes red and my mind pissed off, wishing nvidia to go to hell.

Much appreciated!

You want to set up remote access right?

This has nothing to do with video drivers or even type of desktop. So I’m a it confused. How are you connecting SSL?

VNC is often used but is not the only way

No, I wasn’t setting up remote access. I want to set up something close to multi-seat except only the 1st monitor has keyboard and mouse attached, aka 1st seat.

Ok, I ended up solving the problem (but my final goal isn’t, not yet). In case somebody looking, here are the answers/corrections for my questions (I used OpenSuSE 12.3):

  1. You can’t make X server listen on arbitrary port. But you can make it listened on its builtin port 6000 + n, where n is display number. When you spawn X server, it will listen on UNIX socket. What you can do is you can write a program that listen on the port you desire and have your program connected to running X through UNIX socket (and pass the data). To make it listen with KDM, look at /etc/sysconfig/displaymanager and a parameter DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN or take out ‘-nolisten tcp’ on X command line.

  2. nvidia-settings does not relate to KDM directly. All it does is to generate 2 files: xorg.conf and ~/.nvidia-settings-rc. It is the xorg.conf that KDM read. Note I said KDM, not KDE. The former is display manager, the latter is the superset, the environment

2.5 nvidia-settings separate X means separate X screen, not separate X server. There is a huge difference. It can only configure separate X screens

  1. Here is KDM startup path in general, omitting detail programs:
    system determine run level => if runlevel 5, starts multi-user X login => /etc/sysconfig/displaymanager specifies KDM =>
    KDM reads its master config /usr/share/kde4/config/kdm/kdmrc => KDM also reads XDM (X Display Manager, trivial DM provided from config files (Xsetup, Xsession, Xstartup, Xreset) and absorb them => somewhere along here .xinitrc and xinitrc-common are read =>
    finally, it executes /usr/bin/startkde => startkde (note it is ‘e’, not ‘m’) run more programs (you can google what it runs or read that script)

  2. The links I specified in my 1st post are pretty good. I got those links from other forum members like oldcpu, etc. Thank you!

  3. To visualize the difference between separate X screen and separate X server, see

Good luck!