Difference between revisions of "Xinitrc (Italiano)"

From ArchWiki
Jump to: navigation, search
m (add ja link; aligned)
(update interlanguage links)
(Tag: wiki-scripts)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{DISPLAYTITLE:xinitrc}}
 
[[Category:Desktop environments (Italiano)]]
 
[[Category:Desktop environments (Italiano)]]
[[Category:X Server (Italiano)]]
+
[[Category:X server (Italiano)]]
 
[[de:Xinitrc]]
 
[[de:Xinitrc]]
 
[[el:Xinitrc]]
 
[[el:Xinitrc]]
[[en:Xinitrc]]
+
[[en:Xinit]]
 
[[es:Xinitrc]]
 
[[es:Xinitrc]]
 
[[fr:Startx]]
 
[[fr:Startx]]
 
[[ja:Xinitrc]]
 
[[ja:Xinitrc]]
[[zh-CN:Xinitrc]]
+
[[ru:Xinitrc]]
{{Article summary start}}
+
[[zh-cn:Xinitrc]]
{{Article summary text|Una veduta d'insieme sulle configurazioni principali per il programma xinit (startx).}}
+
{{Related articles start (Italiano)}}
{{Article summary heading|Related}}
+
{{Related|Display Manager (Italiano)}}
{{Article summary wiki|Display Manager (Italiano)}}
+
{{Related|Start X at Login (Italiano)}}
{{Article summary wiki|Start X at Login (Italiano)}}
+
{{Related|Xorg (Italiano)}}
{{Article summary wiki|Xorg (Italiano)}}
+
{{Related|xprofile}}
{{Article summary wiki|xprofile}}
+
{{Related articles end}}
{{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}} è 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.
Line 29: Line 29:
 
  $ 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|#!/bin/sh
 
{{bc|#!/bin/sh
Line 57: Line 57:
 
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
 +
$ xinit
 +
$ xinit -- :1
  
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.
+
{{Nota|{{ic|xinit}} non può avviare sessioni multiple. Per questo può essere necessario l'uso di {{ic|-- :<session_no>}}. In pratica questo è necessario se si ha già un'altra sessione di X aperta sul proprio sistema.}}
 +
 
 +
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.
 +
 
 +
===Effettuare la scelta fra i DE/WM===
 +
Se non si usa un [[Display manager (Italiano)|display manager]] e non si vuole usarne uno, {{ic|~/.xinitrc}} è di fondamentale importanza.
 +
Questo è un esempio di {{ic|xinitrc}} pronto per lanciare sessioni diversi in base agli argomenti che gli vengono forniti sulla riga di comando.
 +
 
 +
{{bc|
 +
#!/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
 +
 
 +
# XFCE in questo caso è il default
 +
case $1 in
 +
    gnome) exec gnome-session;;
 +
    kde) exec startkde;;
 +
    xfce);;
 +
    *) exec startxfce4;;
 +
esac
 +
}}
 +
 
 +
Ora, {{ic|~/.xinitrc}} può essere invocato in questo modo.
 +
$ xinit
 +
$ xinit gnome
 +
$ xinit kde
 +
$ xinit xfce -- :1
  
 
===Preservare la sessione===
 
===Preservare la sessione===
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
+
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
  
 
== File d'esempio==
 
== File d'esempio==

Latest revision as of 08:59, 25 July 2016

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
$ xinit
$ xinit -- :1
Nota: xinit non può avviare sessioni multiple. Per questo può essere necessario l'uso di -- :<session_no>. In pratica questo è necessario se si ha già un'altra sessione di X aperta sul proprio sistema.

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.

Effettuare la scelta fra i DE/WM

Se non si usa un display manager e non si vuole usarne uno, ~/.xinitrc è di fondamentale importanza. Questo è un esempio di xinitrc pronto per lanciare sessioni diversi in base agli argomenti che gli vengono forniti sulla riga di comando.

#!/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

# XFCE in questo caso è il default
case $1 in
    gnome) exec gnome-session;;
    kde) exec startkde;;
    xfce);;
    *) exec startxfce4;;
esac

Ora, ~/.xinitrc può essere invocato in questo modo.

$ xinit
$ xinit gnome
$ xinit kde
$ xinit xfce -- :1

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