startx
viene eseguito xinit
che avvia un server X e una sessione client. La sessione client è ~/.xinitrc
se presente e in caso contrario /etc/X11/xinit/xinitrc
(la posizione può variare tra le distribuzioni). Ciò che fa questo script varia tra le distribuzioni. Su Debian (compresi i derivati come Raspbian), /etc/X11/xinit/xinitrc
viene eseguito un programma /etc/X11/Xsession
che a sua volta esegue degli script /etc/X11/Xsession.d
. Gli script Debian cercano una sessione utente in altri file ( ~/.xsession
, ~/.xsessionrc
, ~/.Xsession
) e, se nessuna impostazione utente è applicabile, corre x-session-manager
(in calo di nuovo a x-window-manager
se non è installato [gestore di sessione], cadendo di nuovo a x-terminal-emulator
nel caso improbabile che nessun gestore di finestre è installato).
Se si desidera controllare ciò che viene eseguito, è possibile creare uno dei file utente, o ~/.xsession
o ~/.xinitrc
. Il file ~/.xsession
viene utilizzato anche se si accede a un display manager (ovvero se si digita la password in una finestra della GUI). Il file ~/.xinitrc
è specifico di xinit
e startx
. L'utilizzo ~/.xsession
passa attraverso /etc/X11/Xsession
così imposta cose come metodi di input, risorse, agenti password, ecc. Se lo usi .xinitrc
, dovrai fare tutto ciò manualmente. Ancora una volta, sto descrivendo Debian qui, altre varianti di Unix potrebbero impostare le cose in modo diverso. L'uso di ~/.xinitrc
per specificare ciò che viene eseguito quando si esegue startx
o xinit
è universale.
Sia che tu usi ~/.xinitrc
o ~/.xsession
, questo file (di solito uno script di shell, ma non deve essere se vuoi davvero usare qualcos'altro) deve preparare tutto ciò che deve essere preparato (ad es. Impostazioni della tastiera, risorse, applet che non sono stati avviati dal gestore delle finestre, ecc.), quindi alla fine eseguire il programma che gestisce la sessione. Al termine dello script, la sessione termina. In genere, si utilizza exec
alla fine dello script per sostituire lo script con il gestore sessioni o il gestore finestre.
Presumibilmente il tuo sistema ha /usr/bin/startlxde
come gestore sessioni predefinito a livello di sistema. Su Debian e derivati, puoi controllare i gestori di sessione disponibili con
update-alternatives --list x-session-manager
o ottenere una descrizione più dettagliata che indichi quale è attuale
update-alternatives --display x-session-manager
Se LXDE non era il valore predefinito a livello di sistema e si desidera renderlo predefinito per il proprio account, è possibile utilizzare il seguente ~/.xsession
file:
#!/bin/sh
exec startlxde
Su alcune varianti Unix, ciò verrebbe eseguito solo per accessi grafici, non per startx
, quindi dovresti anche crearne uno identico ~/.xinitrc
. (O non identico: in ~/.xsession
, potresti voler fare altre cose, perché quello è il primo file che viene eseguito in una sessione grafica; ad esempio potresti mettere . ~/.profile
vicino all'inizio, per impostare alcune variabili d'ambiente.)
Se si desidera provare altri ambienti come una tantum, è possibile specificare un programma diverso da eseguire sulla riga di comando di startx
se stesso. Il startx
programma ha una stranezza: è necessario utilizzare l'intero percorso del programma.
startx /usr/bin/startkde
Il startx
comando consente inoltre di specificare gli argomenti da passare al server. Ad esempio, se si desidera eseguire più sessioni GUI contemporaneamente, è possibile passare un numero di visualizzazione diverso ogni volta. Passare gli argomenti del server dopo --
sulla riga di comando di startx
.
startx /usr/bin/startkde -- :1
startx
inizia la sessione Xfce4 predefinita. Dall'accesso utente di mia moglie su tty1 o tty2. Il suostartx
comando è impostato per eseguire Cinnamon (specificato in~/.xsession
). Per il secondo server X non devo specificare$DISPLAY
come indicato nell'ultima parte della risposta. Anche se sicuramente funziona. Lo rende automaticamente il secondo$DISPLAY
ecc. L'impostazione è comunque ottima. Non è possibile accedere e disconnettersi da una sessione grafica, solo una scorciatoia da tastiera per cambiare i profili utente. Grazie per questa utile risposta!