Differenza tra .xinitrc, .xsession e .xsessionrc


55

Ho trovato tre file di configurazione.

  1. .xinitrc
  2. .xsession
  3. .xsessionrc

So che il primo è per l'utilizzo startxe il secondo e il terzo sono utilizzati quando si utilizza un display manager. Ma qual è la differenza tra gli ultimi due?

Risposte:


65

~/.xinitrcviene eseguito da xinit, che di solito viene invocato tramite startx. Questo programma viene eseguito dopo l'accesso: prima si accede a una console di testo, quindi si avvia la GUI con startx. Il ruolo di .xinitrcè quello di avviare la parte della GUI della sessione, in genere impostando alcune impostazioni relative alla GUI come le associazioni di tasti (con xmodmapo xkbcomp), risorse X (con xrdb), ecc., E per avviare un gestore di sessioni o un gestore di finestre ( possibilmente come parte di un ambiente desktop).

~/.xsessionviene eseguito quando si accede in modalità grafica (su un display manager ) e il display manager richiama il tipo di sessione "personalizzata". (Con lo storico display manager xdm, .xsessionviene sempre eseguito, ma con i moderni display manager che offrono all'utente una scelta del tipo di sessione, di solito è necessario selezionare "personalizzato" per .xsessionl'esecuzione.) Il suo ruolo è sia quello di impostare i parametri del tempo di accesso (come le variabili di ambiente) e per avviare la sessione della GUI. Un tipico .xsessionè

#!/bin/sh
. ~/.profile
. ~/.xinitrc

~/.xsessionrcviene eseguito su Debian (e derivati ​​come Ubuntu, Linux Mint, ecc.) dagli script di avvio X su un login GUI, per tutti i tipi di sessione e (penso) da tutti i gestori di display. Viene anche eseguito startxse l'utente non ha un .xinitrc, perché in tal caso startxricade sugli stessi script di avvio della sessione utilizzati per l'accesso alla GUI. Viene eseguito relativamente presto, dopo aver caricato le risorse ma prima di avviare qualsiasi programma come un key agent, un demone D-Bus, ecc. In genere imposta variabili che possono essere utilizzate dagli script di avvio successivi. Non ha alcuna documentazione ufficiale che io conosca, devi scavare nella fonte per vedere cosa funziona.

.xinitrce .xsessionsono caratteristiche storiche del sistema X11 Window, quindi dovrebbero essere disponibili e avere un comportamento simile su tutti i sistemi Unix. D'altra parte, .xsessionrcc'è una funzione Debian e le distribuzioni che non sono basate su Debian non ce l'hanno a meno che non abbiano implementato qualcosa di simile.

.xprofileè molto simile a .xsessionrc, ma fa parte dello script di avvio della sessione di GDM (il display manager GNOME), quindi viene letto solo se si accede con GDM.


5

Secondo un'altra discussione, startx + ~ / .xsession e no ~ / .xinitrc, si traducono in funzionalità ridotte (xfce4, sid)

Innanzitutto: .xsessionrcserve per contenere le variabili di ambiente globali . L'enfasi è mia.

In secondo luogo: 40x11-common_xsessionrcin /etc/X11/Xsession.dè di provenienza precedente 50x11-common_determine-startup. Quindi .xsessionrcviene letto prima .xsessione tutte le variabili d'ambiente impostate saranno disponibili per le applicazioni eseguite dai comandi in .xsession.

Ulteriori letture:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.