Difference between revisions of "Xinitrc (Español)"

From ArchWiki
Jump to: navigation, search
(Realizar la elección de un DE/WM)
(En la línea de comandos)
Line 145: Line 145:
 
===En la línea de comandos ===
 
===En la línea de comandos ===
  
Si usted tiene diseñado {{ic|~/.xinitrc}}, pero quiere probar otros  WM/DE, es posible mediante el uso de {{ic|xinit}}, seguido de la ruta de acceso al gestor de ventanas:
+
Si tiene diseñado {{ic|~/.xinitrc}}, pero quiere probar otros  WM/DE, es posible mediante el uso de {{ic|xinit}}, seguido de la ruta de acceso al gestor de ventanas:
  
 
  xinit /full/path/to/window-manager
 
  xinit /full/path/to/window-manager

Revision as of 23:53, 12 March 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

El archivo ~/.xinitrc es un script de shell leído por xinit y startx. Se utiliza principalmente para ejecutar entornos de escritorios, gestores de ventanas, y otros programas al iniciar el servidor X (por ejemplo, como los daemons y las configuraciones de las variables de entorno). Los programas xinit y startx se utilizan para iniciar X Window System y funcionan como un programa cliente, en primer lugar, en los sistemas en los que no se puede iniciar X directamente desde /etc/init, o en entornos que usan múltiples gestores de ventanas.

Una de las principales funciones de ~/.xinitrc es dictar al sistema X Window lo que se invoca desde el programa /usr/bin/startx y/o /usr/bin/xinit en función de lo especificado por cada usuario. Existe numerosas especificaciones adicionales y comandos que se pueden añadir a ~/.xinitrc con el fin de personalizar aún más su sistema.

Introducción

/etc/skel/ contiene los archivos y directorios necesarios para proporcionar los valores predeterminados para las cuentas recién creadas. (El nombre skel se deriva de la palabra skeleton (esqueleto), ya que los archivos que contiene forman la estructura básica del directorio home del usuario.) El paquete xorg-xinit porporcionará /etc/skel un archivo marco para .xinitrc.

Nota: ~/.xinitrc es del llamado archivo 'dot' (.). Los archivos en un sistema de archivos *nix que están precedidos por un punto son 'ocultos' y no se mostrarán, por lo general, con el comando ls, en aras de mantener la integridad de los directorios. Los archivos ocultos se pueden ver mediante la ejecución de ls -a. La terminación 'rc' denota que estamos ante un comando 'run' y simplemente indica que se trata de un archivo de configuración. Puesto que controla la forma en que un programa se inicia, se dice (aunque históricamente incorrecta) también que están para "Controlar su Ejecución".

Copie el archivo-modelo /etc/skel/.xinitrc en su directorio personal (/home):

$ cp /etc/skel/.xinitrc ~

Ahora, edite ~/.xinitrc y descomente la línea que corresponde a su DE/WM (entorno de escritorio/gestor de ventanas). Por ejemplo, si desea probar la configuración de X básico (ratón, teclado, resolución de los gráficos), puede simplemente usar xterm:

#!/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: Es importante que sólo un exec esté descomentado, pues, de lo contrario, sólo se ejecutará la primera línea no comentada

Después de editar correctamente ~/.xinitrc, es el momento de ejecutar X. Para ejecutar X como usuario no root, ejecute:

$ startx
$ xinit
$ xinit -- :1
Nota: xinit no manejar múltiples sesiones si ya ha iniciado sesión en algún otro vt. para lo cual se tiene que especificar sesión añadiendo -- :<session_no>. Si ya está ejecutando X, entonces debe comenzar con 1 o más.

El DE/WM de su elección debería haber comenzado. Puede probar el teclado y su distribución. Trate de mover el ratón para probarlo.

Realizar la elección de un DE/WM

Si no se usa un gestor de inicio gráfico o no se quiere usar uno, es posible que tenga que editar el archivo ~/.xinitrc frecuentemente. Esto se puede resolver fácilmente con la simple adición de una línea para cada caso, que permitirá cargar el DE/WM deseado en base a los argumentos que le vengan proporcionados.

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

# Here xfce is kept as default
case $1 in
    gnome) exec gnome-session;;
    kde) exec startkde;;
    xfce);;
    *) exec startxfce4;;
esac

Después de modificar el archivo ~/.xinitrc, puede ser iniciado el DE/WM deseado invocando el argumento apropiado.

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

Conservar la sesión

Necesita asegurarse de que X siempre se iniciará en la misma tty en la que ha iniciado sesión, para conservar su sessión de logind (o consolekit). Esto es manejado por /etc/X11/xinit/xserverrc de forma predeterminada. Véase también General Troubleshooting#Session permissions para temas relacionados.

Nota: En el pasado ck-launch-session se usaba para iniciar una sesión nueva en lugar de limitarse a no romper con la anterior. No hay una acción equivalente con logind, y necesitará un gestor de pantallas con varias cuentas de entrada para ejecutar X en una tty arbitraria.

Ejemplos de archivos

Lo que sigue es un simple ejemplo de archivo ~/.xinitrc, incluyendo algunos programas que se inician de forma automática:

~/.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         # update x resources db

xscreensaver -no-splash &         # starts screensaver daemon 
xsetroot -cursor_name left_ptr &  # sets the cursor icon
sh ~/.fehbg &                     # sets the background image

exec openbox-session              # starts the window manager

Es recomendable anteponer exec ya que sustituye el actual proceso con otro, por lo que el script terminará su ejecución y X seguirá activa, incluso si el proceso se bifurca en segundo plano.

Archivo de configuración

Cuando un gestor de ventanas no se utiliza, es importante tener en cuenta que la vida de la sesión X comienza y termina con la secuencia de comandos de ~/.xinitrc. Esto significa que una vez que la secuencia de comandos se cierra, X se cierra, con independencia de que todavía se estén ejecutando programas (incluyendo su gestor de ventanas). Por lo tanto, es importante que el gestor de ventanas y X cierren al mismo tiempo. Esto se logra fácilmente mediante la ejecución del gestor de ventanas como el último programa en el guión del script.

Tenga en cuenta que en el primer ejemplo de arriba, los programas como cairo-compmgr, xscreensaver, xsetroot y sh se ejecutan en segundo plano (al añadirle el sufijo &). De lo contrario, el script detiene y hace esperar cada programa y daemons hasta que se ejecute openbox-session. También tenga en cuenta que openbox-session no está en segundo plano. Ésto asegura que el script no se cerrará hasta que openbox lo haga.

En las secciones siguientes se explica cómo configurar ~/.xinitrc para múltiples Gestores de Ventanas y Entornos de Escritorios (WM y ED).

En la línea de comandos

Si tiene diseñado ~/.xinitrc, pero quiere probar otros WM/DE, es posible mediante el uso de xinit, seguido de la ruta de acceso al gestor de ventanas:

xinit /full/path/to/window-manager

Tenga en cuenta que la ruta completa es necesaria. Si lo desea, puede ajustar opciones del servidor de X después de añadir -- - por ejemplo:

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

El siguiente ejemplo del archivo ~/.xinitrc muestra cómo iniciar un gestor de ventanas en particular con un argumento:

~/.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

Con el uso de este ejemplo, usted puede iniciar fluxbox o spectrwm con el comando xinit fluxbox o xinit spectrwm.

En el arranque

Consulte Start X at Login (Español).