startx
se ejecuta, lo xinit
que inicia un servidor X y una sesión de cliente. La sesión del cliente es ~/.xinitrc
si está presente, y de lo contrario /etc/X11/xinit/xinitrc
(la ubicación puede variar entre las distribuciones). Lo que hace este script varía entre distribuciones. En Debian (incluidos derivados como Raspbian), se /etc/X11/xinit/xinitrc
ejecuta , /etc/X11/Xsession
que a su vez ejecuta scripts /etc/X11/Xsession.d
. Los scripts Debian buscan una sesión de usuario en otros archivos ( ~/.xsession
, ~/.xsessionrc
, ~/.Xsession
) y, si no hay ajuste de usuario es aplicable, carreras x-session-manager
(cayendo de nuevo a x-window-manager
si se ha instalado ningún [gestor de sesiones], cayendo de nuevo a x-terminal-emulator
en el caso poco probable de que ningún gestor de ventanas es instalado).
Si desea controlar lo que se ejecuta, puede crear uno de los archivos de usuario, ya sea ~/.xsession
o ~/.xinitrc
. El archivo ~/.xsession
también se usa si inicia sesión en un administrador de pantalla (es decir, si escribe su contraseña en una ventana GUI). El archivo ~/.xinitrc
es específico de xinit
y startx
. El uso ~/.xsession
pasa por /etc/X11/Xsession
lo que configura cosas como métodos de entrada, recursos, agentes de contraseña, etc. Si lo usa .xinitrc
, tendrá que hacer todo esto manualmente. Una vez más, estoy describiendo Debian aquí, otras variantes de Unix podrían configurar las cosas de manera diferente. El uso de ~/.xinitrc
para especificar qué se ejecuta cuando se ejecuta startx
o xinit
es universal.
Ya sea que use ~/.xinitrc
o ~/.xsession
, este archivo (generalmente un script de shell, pero no tiene que ser así si realmente quiere usar otra cosa) debe preparar lo que sea necesario (por ejemplo, configuración del teclado, recursos, applets que no se inician por el administrador de ventanas, etc.), y luego al final ejecute el programa que administra la sesión. Cuando finaliza el script, la sesión finaliza. Por lo general, se usaría exec
al final del script para reemplazar el script por el administrador de sesión o el administrador de ventana.
Es probable que su sistema tenga /usr/bin/startlxde
como administrador de sesión predeterminado en todo el sistema. En Debian y derivados, puede consultar los administradores de sesión disponibles con
update-alternatives --list x-session-manager
u obtener una descripción más detallada que indique cuál es actual con
update-alternatives --display x-session-manager
Si LXDE no era el valor predeterminado de todo el sistema y deseaba establecerlo como predeterminado para su cuenta, podría usar el siguiente ~/.xsession
archivo:
#!/bin/sh
exec startlxde
En algunas variantes de Unix, eso solo se ejecutaría para inicios de sesión gráficos, no para startx
, por lo que también necesitaría crear uno idéntico ~/.xinitrc
. (O no idéntico: en ~/.xsession
, es posible que desee hacer otras cosas, porque ese es el primer archivo que se ejecuta en una sesión gráfica; por ejemplo, puede colocar . ~/.profile
cerca de la parte superior, para establecer algunas variables de entorno).
Si desea probar otros entornos de forma única, puede especificar un programa diferente para ejecutar en la línea de comando de startx
sí mismo. El startx
programa tiene una peculiaridad: debe utilizar la ruta completa al programa.
startx /usr/bin/startkde
El startx
comando también le permite especificar argumentos para pasar al servidor. Por ejemplo, si desea ejecutar varias sesiones de GUI al mismo tiempo, puede pasar un número de pantalla diferente cada vez. Pase los argumentos del servidor después --
en la línea de comandos de startx
.
startx /usr/bin/startkde -- :1
startx
inicia la sesión Xfce4 predeterminada. Desde el inicio de sesión de usuario de mi esposa en tty1 o tty2. Sustartx
comando está configurado para ejecutar Cinnamon (especificado en~/.xsession
). Para el segundo servidor X no tengo que especificar lo$DISPLAY
que se indica en la última parte de su respuesta. Aunque eso ciertamente funciona. Lo convierte automáticamente en el segundo,$DISPLAY
etc. Sin embargo, la configuración es excelente. No hay que iniciar y cerrar sesión en una sesión gráfica, solo un atajo de teclado para cambiar los perfiles de usuario. ¡Gracias por esta útil respuesta!No:
startx
es configurable. Según la página del manual :startx
No es la única forma de iniciar X (como se ve desdestartlxde
). Lastartx
página del manual ayuda nuevamente:Por otro lado, si desea elegir una GUI (LXDE, KDE, etc.), entonces,
xdm
y similareskdm
,gdm
oLightDM
se utilizan para seleccionar diferentes tipos de escritorio. En Debian generalmente usokdm
, porque eso permite diferentes tipos de escritorio. Los empaquetadores paragdm
no permiten la mayoría de los tipos de escritorio, lo que lo hace inadecuado para mis necesidades.xdm
utiliza un conjunto diferente de secuencias de comandos para comenzar, por ejemplo, su~/.xsession
secuencia de comandos junto con las secuencias de comandos del sistema. Los que se parecen pueden ignorar esto y usar sus propios scripts. Pero es un punto de partida.fuente
.xinitrc
es un script que lo hace configurable. Podría ejecutar LXDE directamente si está codificado para hacer esto.startlxde
no es una interfaz para xinit, es un iniciador para el administrador de sesión LXDE. No es un reemplazostartx
, es algo en lo que puedes ejecutar~/.xinitrc
.