startxviene eseguito xinitche avvia un server X e una sessione client. La sessione client è ~/.xinitrcse 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/xinitrcviene eseguito un programma /etc/X11/Xsessionche 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-managerse non è installato [gestore di sessione], cadendo di nuovo a x-terminal-emulatornel caso improbabile che nessun gestore di finestre è installato).
Se si desidera controllare ciò che viene eseguito, è possibile creare uno dei file utente, o ~/.xsessiono ~/.xinitrc. Il file ~/.xsessionviene 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 xinite startx. L'utilizzo ~/.xsessionpassa attraverso /etc/X11/Xsessioncosì 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 ~/.xinitrcper specificare ciò che viene eseguito quando si esegue startxo xinitè universale.
Sia che tu usi ~/.xinitrco ~/.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 execalla fine dello script per sostituire lo script con il gestore sessioni o il gestore finestre.
Presumibilmente il tuo sistema ha /usr/bin/startlxdecome 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 ~/.xsessionfile:
#!/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 . ~/.profilevicino 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 startxse stesso. Il startxprogramma ha una stranezza: è necessario utilizzare l'intero percorso del programma.
startx /usr/bin/startkde
Il startxcomando 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
startxinizia la sessione Xfce4 predefinita. Dall'accesso utente di mia moglie su tty1 o tty2. Il suostartxcomando è impostato per eseguire Cinnamon (specificato in~/.xsession). Per il secondo server X non devo specificare$DISPLAYcome indicato nell'ultima parte della risposta. Anche se sicuramente funziona. Lo rende automaticamente il secondo$DISPLAYecc. 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!