El script startx es un wrapper para xinit, con más funcionalidades. Por ejemplo, arranca el window manager por defecto en el "sistema de alternativas", en concreto el enlace:
/etc/alternatives/x-session-manager
Si no existe ese enlace, arrancará:
/etc/alternatives/x-window-manager
Si existe el archivo ~/.xinitrc lo ejecutará. Si contiene una línea similar a:
exec /usr/bin/fluxbox |
será ese window manager el que se ejecute. Si queremos lanzar un programa al iniciar la sesión añadiremos a este archivo una línea similar a (por ejemplo):
idesk & |
Para iniciar una sesión X (con el window manager por defecto) ejecutaremos el comando:
$ startx |
Si queremos arrancar un window manager concreto, ejecutaremos:
$ startx <ejecutable_window_manager> |
Por ejemplo, para arrancar Xfce:
$ startx startxfce4 |
¿Cómo sabemos cuál es el ejecutable de un window manager? Para saber cuál es el ejecutable que lanza un window manager consultaremos el archivo:
/usr/share/xsessions/<window_manager>.desktop
Hay uno para cada window manager que tengamos instalado en nuestra máquina. Algunos ejecutables de window manager son:
- KDE: startkde
- GNOME: gnome-session
- Xfce: startxfce4
- IceWM: icewm-session
- FluxBox: startfluxbox
- WindowMaker: wmaker
- Enlightenment: starte16
Los procesos que tendremos activos serán:
$ pstree init-+- |-login---bash---startx---xinit-+-Xorg |-x-session-manager-+-icewm |
Para iniciar una segunda sesión haremos:
$ startx -- :1 |
Los procesos que tendremos activos serán:
$ pstree init-+- |-login---bash---startx---xinit-+-Xorg | |-x-session-manager-+-icewm |-login---bash---startx---xinit-+-Xorg |-x-session-manager-+-icewm |