Difference between revisions of "Xinitrc (Italiano)"

From ArchWiki
Jump to: navigation, search
m (link GRUB -> GRUB Legacy)
m (allineata. rimosso ogni riferimento a consolekit)
Line 1: Line 1:
 
 
[[Category:Desktop environments (Italiano)]]
 
[[Category:Desktop environments (Italiano)]]
 
[[Category:X Server (Italiano)]]
 
[[Category:X Server (Italiano)]]
 +
[[de:Xinitrc]]
 
[[el:Xinitrc]]
 
[[el:Xinitrc]]
 
[[en:Xinitrc]]
 
[[en:Xinitrc]]
Line 11: Line 11:
 
{{Article summary heading|Related}}
 
{{Article summary heading|Related}}
 
{{Article summary wiki|Display Manager (Italiano)}}
 
{{Article summary wiki|Display Manager (Italiano)}}
{{Article summary wiki|Start X at boot (Italiano)}}
+
{{Article summary wiki|Start X at Login (Italiano)}}
 
{{Article summary wiki|Xorg (Italiano)}}
 
{{Article summary wiki|Xorg (Italiano)}}
 
{{Article summary wiki|xprofile}}
 
{{Article summary wiki|xprofile}}
 
{{Article summary end}} {{DISPLAYTITLE:xinitrc}}
 
{{Article summary end}} {{DISPLAYTITLE:xinitrc}}
  
Il file {{ic|~/.xinitrc}} è uno shell script letto da {{Ic|xinit}} e {{Ic|startx}}. Viene tipicamente utilizzato per eseguire i [[Window Manager (Italiano)|window manager]] e altri programmi all'avvio di X, ad esempio demoni e configurazioni delle variabili d'ambiente. Il programma {{Ic|xinit}} viene utilizzato per avviare l'[[Xorg (Italiano)|X Window System]] e funziona come un primo programma client su sistemi che non possono avviare direttamente X da {{ic|/etc/init}}, o in ambienti che usano vari window manager. Il file {{ic|~/.xinitrc}} è quindi un modo semplice per avviare X, di solito in parallelo con [[Start X at boot (Italiano)#Metodo /etc/inittab|l'avvio dello script startx direttamente da inittab]].
+
Il file {{ic|~/.xinitrc}} è uno shell script letto da {{Ic|xinit}} e {{Ic|startx}}. Viene tipicamente utilizzato per eseguire i [[Window Manager (Italiano)|window manager]] e altri programmi all'avvio di X, ad esempio demoni e configurazioni delle variabili d'ambiente. Il programma {{Ic|xinit}} viene utilizzato per avviare l'[[Xorg (Italiano)|X Window System]] e funziona come un primo programma client su sistemi che non possono avviare direttamente X da {{ic|/etc/init}}, o in ambienti che usano vari window manager.  
  
 
Una delle funzioni principali di {{ic|~/.xinitrc}} è quello di dettare quale client per il sistema X Window sarà invocato da {{ic|/usr/bin/startx}} e/o il programma {{ic|/usr/bin/xinit}} ''a utente singolo''. Ci sono molte altre configurazioni e comandi che possono essere aggiunti a {{ic|~/.xinitrc}} al fine di personalizzare ulteriormente il proprio sistema.
 
Una delle funzioni principali di {{ic|~/.xinitrc}} è quello di dettare quale client per il sistema X Window sarà invocato da {{ic|/usr/bin/startx}} e/o il programma {{ic|/usr/bin/xinit}} ''a utente singolo''. Ci sono molte altre configurazioni e comandi che possono essere aggiunti a {{ic|~/.xinitrc}} al fine di personalizzare ulteriormente il proprio sistema.
  
 
==Per iniziare==
 
==Per iniziare==
 
 
{{ic|/etc/skel/}} contiene i file e le directory necessari a fornire valori predefiniti per gli account appena creati. (Il nome ''skel'' è derivato dalla parola ''skeleton'', perché i file contenuti costituiscono la struttura di base per le home directory degli utenti.) Il pacchetto {{pkg|xorg-xinit}} provvederà a salvare in {{ic|/etc/skel}} uno {{ic|.xinitrc}} di esempio.
 
{{ic|/etc/skel/}} contiene i file e le directory necessari a fornire valori predefiniti per gli account appena creati. (Il nome ''skel'' è derivato dalla parola ''skeleton'', perché i file contenuti costituiscono la struttura di base per le home directory degli utenti.) Il pacchetto {{pkg|xorg-xinit}} provvederà a salvare in {{ic|/etc/skel}} uno {{ic|.xinitrc}} di esempio.
  
Line 27: Line 26:
  
 
Copiare il file d'esempio {{ic|/etc/skel/.xinitrc}} nella home directory:
 
Copiare il file d'esempio {{ic|/etc/skel/.xinitrc}} nella home directory:
  $ cp /etc/skel/.xinitrc ~/
+
  $ cp /etc/skel/.xinitrc ~
  
 
Quindi editare {{ic|~/.xinitrc}} e decommentare la riga corrispondente al proprio [[Desktop_Environment (Italiano)|ambiente desktop]]. Per esempio, se si utilizza [[Xterm]], sarà simile a questo:
 
Quindi editare {{ic|~/.xinitrc}} e decommentare la riga corrispondente al proprio [[Desktop_Environment (Italiano)|ambiente desktop]]. Per esempio, se si utilizza [[Xterm]], sarà simile a questo:
  
{{bc|
+
{{bc|#!/bin/sh
#!/bin/sh
+
 
#
 
#
 
# ~/.xinitrc
 
# ~/.xinitrc
 
#
 
#
 
# Executed by startx (run your window manager from here)
 
# Executed by startx (run your window manager from here)
 +
 +
if [ -d /etc/X11/xinit/xinitrc.d ]; then
 +
  for f in /etc/X11/xinit/xinitrc.d/*; do
 +
    [ -x "$f" ] && . "$f"
 +
  done
 +
  unset f
 +
fi
  
 
# exec gnome-session
 
# exec gnome-session
Line 47: Line 52:
 
# exec openbox-session
 
# exec openbox-session
 
# ...or the Window Manager of your choice
 
# ...or the Window Manager of your choice
exec xterm
+
exec xterm}}
}}
+
{{Nota|Assicurarsi di aver decommentato solo ''una'' riga {{ic|exec}} in {{ic|~/.xinitrc}}.}}
 
+
{{Note|Assicurarsi di aver decommentato solo ''una'' riga {{ic|exec}} in {{ic|~/.xinitrc}}.}}
+
 
+
 
Dopo aver editato {{ic|.xinitrc}} si è pronti a lanciare X. Avviarlo da utente ''normale, non-root'' con:
 
Dopo aver editato {{ic|.xinitrc}} si è pronti a lanciare X. Avviarlo da utente ''normale, non-root'' con:
 
  $ startx
 
  $ startx
 
o
 
$ xinit
 
  
 
Il [[Desktop Environment (Italiano)|DE]] o [[Window Manager (Italiano)|WM]] scelto dovrebbe essersi avviato. È possibile provare la tastiera e la sua configurazione. Provare a spostare il mouse intorno per verificarne il funzionamento.
 
Il [[Desktop Environment (Italiano)|DE]] o [[Window Manager (Italiano)|WM]] scelto dovrebbe essersi avviato. È possibile provare la tastiera e la sua configurazione. Provare a spostare il mouse intorno per verificarne il funzionamento.
  
In caso di problemi con l'automount, provare ad utilizzare il seguente comando in {{ic|~/.xinitrc}}. Sostituire {{ic|startxfce4}} con il comando appropriato al [[Window_Manager (Italiano)|window manager]] o [[Desktop_Environment (Italiano)|desktop environment]] corrispondente.
+
===Preservare la sessione===
exec ck-launch-session startxfce4
+
X deve essere avviato nella stessa tty in cui viene effettuato il login per preservare la sessione di {{ic|logind}}. Questo aspetto è gestito di default da {{ic|/etc/X11/xinit/xserverrc}}. Vedere anche [[General Troubleshooting#Session permissions]] per i relativi problemi
 
+
{{Note|Verificare di aver installato il pacchetto {{Pkg|consolekit}}.}}
+
 
+
Il {{ic|ck-launch-session}} garantirà che le variabili d'ambiente siano impostate correttamente avviando una sessione [[ConsoleKit (Italiano)|ConsoleKit]] pulita. ConsoleKit è un framework per tenere traccia dei vari utenti e sessioni presenti sul sistema. Fornisce un meccanismo con il quale i software reagiscono ai cambiamenti di uno qualsiasi di questi elementi o di uno qualsiasi dei metadati ad essi associati. Funziona in combinazione con [[D-Bus]] e altri strumenti.
+
  
 
== File d'esempio==
 
== File d'esempio==
Line 72: Line 67:
 
|<nowiki>
 
|<nowiki>
 
#!/bin/sh
 
#!/bin/sh
 +
 +
if [ -d /etc/X11/xinit/xinitrc.d ]; then
 +
  for f in /etc/X11/xinit/xinitrc.d/*; do
 +
    [ -x "$f" ] && . "$f"
 +
  done
 +
  unset f
 +
fi
  
 
xrdb -merge ~/.Xresources        # aggiorna x resources db
 
xrdb -merge ~/.Xresources        # aggiorna x resources db
Line 79: Line 81:
 
sh ~/.fehbg &                    # setta lo sfondo con feh
 
sh ~/.fehbg &                    # setta lo sfondo con feh
  
exec openbox-session              # avvia il window manager
+
exec openbox-session              # avvia il window manager</nowiki>}}
 
+
Anteporre {{ic|exec}} è raccomandato in quanto sostituisce il processo corrente con il gestore, in tal modo nessun processo viene forkato in background.  
</nowiki>}}
+
 
+
L'esempio che segue può essere utilizzato come modello per l'esecuzione di vari window manager, decommentando quello da utilizzare, ad es. [[Openbox (Italiano)|Openbox]]:
+
 
+
{{hc|~/.xinitrc
+
|<nowiki>
+
#!/bin/sh
+
#
+
# ~/.xinitrc
+
#
+
# Executed by startx (run your window manager from here)
+
#
+
# exec ion
+
# exec jwm
+
# exec wmaker
+
# exec startkde
+
# exec icewm
+
# exec pekwm
+
# exec blackbox
+
# exec /usr/bin/ratpoison
+
# exec gnome-session
+
# exec startfluxbox
+
# exec startxfce4
+
# exec xfce4-session
+
exec openbox-session
+
# exec startlxde
+
</nowiki>}}
+
 
+
Anteporre {{Ic|exec}} è raccomandato in quanto sostituisce il processo corrente con il gestore, ma non è necessario se tutti i desktop/window manager aggiuntivi sono commentati come nell'esempio di cui sopra. Usare il percorso completo per il window manager o l'ambiente desktop quando possibile. È possibile ottenere il relativo percorso utilizzando {{Ic|type}}, ad es. {{Ic|type startkde}}.
+
 
+
Oltre agli esempi qui forniti, si può trovare un file standard in {{ic|/etc/skel/.xinitrc}} fornito da {{Pkg|xorg-xinit}}. Per utilizzarlo, è sufficiente copiarlo nella cartella home:
+
$ cp /etc/skel/.xinitrc ~/
+
  
 
== Configurazione del file ==
 
== Configurazione del file ==
 
 
Quando non viene utilizzato un display manager, è importante ricordare che la vita della sessione di X inizia e finisce con lo script {{ic|.xinitrc}}. Ciò significa che una volta terminato lo script, X termina indipendentemente dai programmi che stanno ancora girando (compreso il gestore delle finestre). È importante perciò che la chiusura del gestore delle finestre e di X coincidano. Ciò può essere facilmente realizzato lanciando il gestore finestre come ultimo programma nello script.
 
Quando non viene utilizzato un display manager, è importante ricordare che la vita della sessione di X inizia e finisce con lo script {{ic|.xinitrc}}. Ciò significa che una volta terminato lo script, X termina indipendentemente dai programmi che stanno ancora girando (compreso il gestore delle finestre). È importante perciò che la chiusura del gestore delle finestre e di X coincidano. Ciò può essere facilmente realizzato lanciando il gestore finestre come ultimo programma nello script.
  
Si noti che nel primo esempio di cui sopra, programmi come {{Ic|cairo-compmgr}}, {{Ic|xscreensaver}}, {{Ic|xsetroot}} e {{Ic|sh}} vengono eseguiti in background (con aggiunto il suffisso {{Ic|&}}). Altrimenti, lo script potrebbe fermarsi e attendere che ogni programma e demone termini prima di eseguire {{Ic|openbox-session}}. Notare inotre che {{Ic|openbox-session}} non è in background. Questo garantisce che lo script non si chiuderà prima di openbox stesso. Se si esegue lo script {{Ic|startx}} manualmente, terminare lo script significa terminare anche X e lascierà solo le console virtuali {{ic|/etc/inittab}} che erano avviate.
+
Si noti che nel primo esempio di cui sopra, programmi come {{Ic|cairo-compmgr}}, {{Ic|xscreensaver}}, {{Ic|xsetroot}} e {{Ic|sh}} vengono eseguiti in background (con aggiunto il suffisso {{Ic|&}}). Altrimenti, lo script potrebbe fermarsi e attendere che ogni programma e demone termini prima di eseguire {{Ic|openbox-session}}. Notare inotre che {{Ic|openbox-session}} non è in background. Questo garantisce che lo script non si chiuderà prima di openbox stesso.  
 
+
Se si esegue il file da {{ic|/etc/inittab}} e la riga è configurata su {{Ic|respawn}} invece di {{Ic|once}}, {{ic|~/.xinitrc}} verrà riavviato. In questo modo X può essere riavviato senza dover riavviare il computer.
+
  
 
Nelle sezioni seguenti verrà spiegato come configurare {{ic|~/.xinitrc}} per De e WM multipli.
 
Nelle sezioni seguenti verrà spiegato come configurare {{ic|~/.xinitrc}} per De e WM multipli.
  
 
=== Dalla riga di comando ===
 
=== Dalla riga di comando ===
 
 
Se si dispone di un {{ic|~/.xinitrc}} funzionante, ma si desidera provare altri WM/DE, è possibile farlo mediante l'esecuzione di {{Ic|xinit}} seguito dal percorso del window manager:
 
Se si dispone di un {{ic|~/.xinitrc}} funzionante, ma si desidera provare altri WM/DE, è possibile farlo mediante l'esecuzione di {{Ic|xinit}} seguito dal percorso del window manager:
  
Line 143: Line 109:
 
#
 
#
 
# Executed by startx (run your window manager from here)
 
# Executed by startx (run your window manager from here)
 +
 +
if [ -d /etc/X11/xinit/xinitrc.d ]; then
 +
  for f in /etc/X11/xinit/xinitrc.d/*; do
 +
    [ -x "$f" ] && . "$f"
 +
  done
 +
  unset f
 +
fi
  
 
if [[ $1 == "fluxbox" ]]
 
if [[ $1 == "fluxbox" ]]
 
then
 
then
 
   exec startfluxbox
 
   exec startfluxbox
elif [[ $1 == "scrotwm" ]]
+
elif [[ $1 == "spectrwm" ]]
 
then
 
then
   exec startscrotwm
+
   exec spectrwm
 
else
 
else
 
   echo "Choose a window manager"
 
   echo "Choose a window manager"
Line 155: Line 128:
 
</nowiki>}}
 
</nowiki>}}
  
Utilizzando questo esempio è possibile avviare fluxbox o scrotwm con il comando {{Ic|xinit fluxbox}} o {{Ic|xinit scrotwm}}.
+
Utilizzando questo esempio è possibile avviare fluxbox o spectrwm con il comando {{Ic|xinit fluxbox}} o {{Ic|xinit spectrwm}}.
  
 
=== All'avvio ===
 
=== All'avvio ===
 
+
Vedere [[Start X at Login (Italiano)|Avviare X al Login]]
È possibile avere anche una scelta di gestori di finestre e di ambienti desktop all'avvio, usando solo {{ic|.xinitrc}} e [[GRUB Legacy (Italiano)|GRUB Legacy]] e nessun display manager. L'idea è quella di prendere vantaggio dal fatto che Arch non fa alcun uso particolare del sistema di runlevel. Il seguente {{ic|.xinitrc}} testerà il runlevel corrente e avvierà [[Openbox (Italiano)|Openbox]] e [[GNOME (Italiano)|GNOME]] rispettivamente sui runlevel 5 e 4:
+
 
+
rl=$(runlevel | grep -o [0-6])
+
+
case $rl in
+
4) exec gnome-session;;
+
5) exec openbox-session;;
+
esac
+
 
+
Scegliere tra diversi runlevel è semplicemente una questione di clonazione delle entrate di GRUB e di aggiunta all'argomento kernel del runlevel desiderato. Inserendo il runlevel alla fine della linea "kernel" si indica che l'{{ic|inittab}} di base sul runlevel 5 dovrà essere ignorato e sostituito con il runlevel desiderato, 4 in questo caso:
+
 
+
title  Arch Linux GNOME
+
root  (hd0,2)
+
kernel /boot/vmlinuz-linux root=/dev/sda1 ro 4
+
initrd /boot/initramfs-linux.img
+
 
+
Alla fine, bisogna assicurarsi che il file {{ic|.xinitrc}} sia avviato effettivamente sul runlevel scelto. Usando i consigli da [[Start X at boot (Italiano)#Metodo /etc/inittab|Start X at boot]], si può editare il file {{ic|inittab}} semplicemente lanciando {{Ic|startx}} sul runlevel desiderato che in cambio userà il proprio script {{ic|.xinitrc}}:
+
 
+
x:45:once:/bin/su PREFERED_USER -l -c "/bin/bash --login -c startx >/dev/null 2>&1"
+
 
+
Da notare che "45" significa che ciò accade sia sul runlevel 4 che 5. La differenziazione finale tra 4 e 5 arrivera poi nel file {{ic|.xinitrc}} come descritto sopra. Questo è preferibile rispetto al tentativo di differenziazione nel file {{ic|inittab}} dal momento che ci atteniamo abbastanza vicino a utilizzare i vari file di configurazione così come erano destinati in principio.
+
 
+
==Suggerimenti==
+
 
+
=== Policykit e ConsoleKit ===
+
Svariate applicazioni di vari ambienti desktop richiedono che le [[PolicyKit]] e [[ConsoleKit (Italiano)|ConsoleKit]] siano attive, e produrranno degli errori in caso contrario. Un errore comune è l'impossibilità di accedere alle opzioni di spegnimento o riavvio dalle finestre del proprio ambiente desktop, come anche eventuali errori al montaggio di dispositivi usb o cd-rom senza permessi di root.  I login manager più moderni avvieranno [[PolicyKit]] automaticamente, ma quando si usa solamente {{ic|~/.xinitrc}} con il comando {{ic|startx}} lo si dovrebbe avviare in questa maniera:
+
 
+
exec ck-launch-session gnome-session
+
 
+
{{Nota|Assicurarsi di avere installato {{pkg|polkit}} e {{pkg|consolekit}} sul proprio sistema.}}
+
 
+
{{Nota|Se il proprio {{ic|~/.xinitrc}} arriva da {{ic|/etc/skel/.xinitrc}}) si noterà che il frammento iniziale in {{ic|/etc/X11/xinit/xinitrc.d}} include {{ic|/etc/X11/xinit/xinitrc.d/30-bus}} che lancia dbus prima che che sia eseguito {{ic|ck-launch-session}}. Questo causa un bug: {{bug|25031}}.
+
 
+
Un workaround temporaneo è modificare così il proprio {{ic|~/.xinitrc}}:
+
if [ -d /etc/X11/xinit/xinitrc.d ]; then
+
  for f in /etc/X11/xinit/xinitrc.d/*; do
+
    # Do not launch dbus before ConsoleKit (FS#25031)
+
    #[ -x "$f" ] && . "$f"
+
    [ "$f" -ne "/etc/X11/xinit/xinitrc.d/30-dbus" ] && [ -x "$f" ] && .  "$f"
+
  done
+
  unset f
+
fi
+
 
+
Questo lancerà dbus dopo Consolekit aggirando completamente il bug. Per maggiori informazioni fare riferimento alle pagine wiki: [[Window Manager (Italiano)|Window Manager]] e [[Desktop Environment (Italiano)|Desktop Environment]].}}
+
 
+
=== Avviare per primo il WM ===
+
 
+
Se è necessario avviare il window manager ''prima'' del lancio di applicazioni aggiuntive, utilizzare il seguente metodo:
+
 
+
#!/bin/bash
+
+
openbox & wmpid=$!
+
+
urxvtd -q -f -o &
+
xscreensaver -no-splash &
+
fbpanel &
+
+
wait $wmpid
+
 
+
Con la prima riga openbox viene eseguito come un processo in background e memorizza immediatamente l'id del processo ({{Ic|$!}}) nella variabile {{Ic|wmpid}}. Nell'ultima riga, l'incorporazione di "wait" è utilizzata per attendere che termini il processo specificato da {{Ic|wmpid}}.
+
 
+
== Link esterni ==
+
* [http://www.slackbook.org/html/x-window-system-xinitrc.html slackbook.org]
+
* [http://fluxbox-wiki.org/index.php?title=.xinitrc .xinitrc @ Fluxbox-wiki]
+

Revision as of 19:15, 16 December 2012

Summary help replacing me
Una veduta d'insieme sulle configurazioni principali per il programma xinit (startx).
Related
Display Manager (Italiano)
Start X at Login (Italiano)
Xorg (Italiano)
xprofile

Il file ~/.xinitrc è uno shell script letto da xinit e startx. Viene tipicamente utilizzato per eseguire i window manager e altri programmi all'avvio di X, ad esempio demoni e configurazioni delle variabili d'ambiente. Il programma xinit viene utilizzato per avviare l'X Window System e funziona come un primo programma client su sistemi che non possono avviare direttamente X da /etc/init, o in ambienti che usano vari window manager.

Una delle funzioni principali di ~/.xinitrc è quello di dettare quale client per il sistema X Window sarà invocato da /usr/bin/startx e/o il programma /usr/bin/xinit a utente singolo. Ci sono molte altre configurazioni e comandi che possono essere aggiunti a ~/.xinitrc al fine di personalizzare ulteriormente il proprio sistema.

Per iniziare

/etc/skel/ contiene i file e le directory necessari a fornire valori predefiniti per gli account appena creati. (Il nome skel è derivato dalla parola skeleton, perché i file contenuti costituiscono la struttura di base per le home directory degli utenti.) Il pacchetto xorg-xinit provvederà a salvare in /etc/skel uno .xinitrc di esempio.

Note: ~/.xinitrc è un cosiddetto "dot" (.) file. Nei sistemi *nix, i file che sono preceduti da un punto (.) sono "nascosti" e non compaiono con un normale comando ls, di solito allo scopo di tenere ordinate le directory. I file nascosti possono essere visualizzati con ls -a. Il suffisso "rc" significa Run Commands e indica semplicemente che è un file di configurazione. Dal momento che controlla il modo in cui un programma viene eseguito, può inoltre (anche se storicamente inesatto) essere interpretato come "Run Control".

Copiare il file d'esempio /etc/skel/.xinitrc nella home directory:

$ cp /etc/skel/.xinitrc ~

Quindi editare ~/.xinitrc e decommentare la riga corrispondente al proprio ambiente desktop. Per esempio, se si utilizza Xterm, sarà simile a questo:

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

# exec gnome-session
# exec startkde
# exec startxfce4
# exec wmaker
# exec icewm
# exec blackbox
# exec fluxbox
# exec openbox-session
# ...or the Window Manager of your choice
exec xterm
Nota: Assicurarsi di aver decommentato solo una riga exec in ~/.xinitrc.

Dopo aver editato .xinitrc si è pronti a lanciare X. Avviarlo da utente normale, non-root con:

$ startx

Il DE o WM scelto dovrebbe essersi avviato. È possibile provare la tastiera e la sua configurazione. Provare a spostare il mouse intorno per verificarne il funzionamento.

Preservare la sessione

X deve essere avviato nella stessa tty in cui viene effettuato il login per preservare la sessione di logind. Questo aspetto è gestito di default da /etc/X11/xinit/xserverrc. Vedere anche General Troubleshooting#Session permissions per i relativi problemi

File d'esempio

Quello che segue è un semplice file ~/.xinitrc d'esempio, compresi alcuni programmi in avvio automatico:

~/.xinitrc
#!/bin/sh

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

xrdb -merge ~/.Xresources         # aggiorna x resources db

xscreensaver -no-splash &         # avvia il demone di xscreensaver
xsetroot -cursor_name left_ptr &  # setta il cursore di X
sh ~/.fehbg &                     # setta lo sfondo con feh

exec openbox-session              # avvia il window manager

Anteporre exec è raccomandato in quanto sostituisce il processo corrente con il gestore, in tal modo nessun processo viene forkato in background.

Configurazione del file

Quando non viene utilizzato un display manager, è importante ricordare che la vita della sessione di X inizia e finisce con lo script .xinitrc. Ciò significa che una volta terminato lo script, X termina indipendentemente dai programmi che stanno ancora girando (compreso il gestore delle finestre). È importante perciò che la chiusura del gestore delle finestre e di X coincidano. Ciò può essere facilmente realizzato lanciando il gestore finestre come ultimo programma nello script.

Si noti che nel primo esempio di cui sopra, programmi come cairo-compmgr, xscreensaver, xsetroot e sh vengono eseguiti in background (con aggiunto il suffisso &). Altrimenti, lo script potrebbe fermarsi e attendere che ogni programma e demone termini prima di eseguire openbox-session. Notare inotre che openbox-session non è in background. Questo garantisce che lo script non si chiuderà prima di openbox stesso.

Nelle sezioni seguenti verrà spiegato come configurare ~/.xinitrc per De e WM multipli.

Dalla riga di comando

Se si dispone di un ~/.xinitrc funzionante, ma si desidera provare altri WM/DE, è possibile farlo mediante l'esecuzione di xinit seguito dal percorso del window manager:

xinit /full/path/to/window-manager

Si noti che il percorso completo è richiesto. Opzionalmente, è possibile passare delle opzioni al server X con l'aggiunta di --, ad es.:

xinit /usr/bin/enlightenment -- -br +bs -dpi 96

Il file ~/.xinitrc seguente, mostra come avviare un particolare window manager con un argomento:

~/.xinitrc
#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

if [[ $1 == "fluxbox" ]]
then
  exec startfluxbox
elif [[ $1 == "spectrwm" ]]
then
  exec spectrwm
else
  echo "Choose a window manager"
fi

Utilizzando questo esempio è possibile avviare fluxbox o spectrwm con il comando xinit fluxbox o xinit spectrwm.

All'avvio

Vedere Avviare X al Login