xinit (Español)

Esta traducción de
Xinit
fue revisada el
2022-09-28
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
Artículos relacionados
Gestor de pantalla
Xorg
xprofile
Xresources
De
Wikipedia
:
El programa
xinit
permite a un usuario iniciar manualmente un servidor de pantalla
Xorg
. El script
startx(1)
es un front-end para
xinit(1)
.
xinit
se utiliza normalmente para iniciar
gestores de ventanas
o
entornos de escritorio
. Aunque también puede utilizar
xinit
para ejecutar aplicaciones gráficas sin un gestor de ventanas, muchas aplicaciones gráficas esperan un gestor de ventanas compatible con
Wikipedia:Extended Window Manager Hints
. Los
gestores de pantalla
inician
Xorg
y, generalmente,
xprofile
.
Instalación
Instale
el paquete
xorg-xinit
.
Configuración
xinit
y
startx
toman un argumento opcional de la aplicación cliente, véase
#Sobrescribir xinitrc
. Si no proporciona uno, buscarán
~/.xinitrc
para ejecutarse como un script del intérprete de línea de órdenes para iniciar las aplicaciones cliente.
xinitrc
.xinitrc
es útil para ejecutar programas que dependen de X y establecer variables de entorno en el inicio del servidor X. Si está presente en el directorio personal del usuario,
startx
y
xinit
lo ejecutan. De lo contrario,
startx
ejecutará el
/etc/X11/xinit/xinitrc
predeterminado.
Nota
Xinit
tiene su propio comportamiento predeterminado en lugar de ejecutar el archivo. Véase
xinit(1)
para más detalles.
Este xinitrc predeterminado iniciará un entorno básico con
Twm
,
xorg-xclock
y
Xterm
(asumiendo que los paquetes necesarios estén instalados). Por lo tanto, para iniciar un gestor de ventanas o un entorno de escritorio diferente, primero cree una copia del
xinitrc
predeterminado en su directorio personal:
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc
Luego
edite
el archivo y reemplace los programas predeterminados con las órdenes deseadas. Recuerde que las líneas que siguen a una orden utilizando
exec
serían ignoradas. Por ejemplo, para iniciar
xscreensaver
en segundo plano y luego iniciar
openbox
, utilice lo siguiente:
~/.xinitrc
...
xscreensaver &
exec openbox-session
Nota
Por lo menos, asegúrese de que el último bloque
if
en
/etc/X11/xinit/xinitrc
esté presente en su archivo
~/.xinitrc
para asegurarse de que los scripts en
/etc/X11/xinit/xinitrc.d
son ejecutados.
Los programas de ejecución prolongada que se inician antes que el gestor de ventanas, como un salvapantallas y una aplicación de fondo de pantalla, deben bifurcarse (
fork
) o ejecutarse en segundo plano añadiendo un signo
&
. De lo contrario, el script se detendría y esperaría a que cada programa terminase antes de ejecutar el gestor de ventanas o el entorno de escritorio. Tenga en cuenta que algunos programas no deben ser bifurcados, para evitar errores de secuencia (
race bugs
), como es el caso de
xrdb
. Antes de pasar
exec
se reemplazará el proceso del script con el proceso del gestor de ventanas, de modo que X no salga incluso si este proceso se bifurca en segundo plano.
xserverrc
El archivo
xserverrc
es un script del intérprete de línea de órdenes responsable de iniciar el servidor X. Tanto
startx
como
xinit
ejecutan
~/.xserverrc
si existe, de lo contrario
startx
utilizará
/etc/X11/xinit/xserverrc
.
Para mantener un
sesión autenticada
con
logind
y para evitar eludir el bloqueo de pantalla al cambiar de terminal,
Xorg
debe iniciarse en el mismo terminal virtual donde se produjo el inicio de sesión
[1]
. Por lo tanto, se recomienda especificar
vt$XDG_VTNR
en el archivo
~/.xserverrc
:
~/.xserverrc
#!/bin/sh

exec /usr/bin/Xorg -nolisten tcp "$@" vt$XDG_VTNR
Véase
Xserver(1)
para obtener un listado de todas las opciones de la línea de órdenes.
Sugerencia
-nolisten local
puede añadirse después de
-nolisten tcp
para deshabilitar la abstracción de sockets de X11 para ayudar con el aislamiento. Hay un
breve resumen
sobre cómo puede afectar esto a la seguridad de X11.
Alternativamente, si desea que X se muestre en una consola separada de la que se invoca al servidor, puede hacerlo utilizando el wrapper del servidor X proporcionado por
/usr/lib/systemd/systemd-multi-seat-x
. Para mayor comodidad,
xinit
y
startx
pueden configurarse para utilizar este contenedor modificando su
~/.xserverrc
.
Nota
Para volver a habilitar la redirección de la salida de la sesión X en el archivo de registro de Xorg, añada la opción
-keeptty
. Véase
Xorg#Session log redirection
para más detalles.
Utilización
Para ejecutar Xorg como un usuario normal, introduzca:
$ startx
O si está configurado
#xserverrc
:
$ xinit -- :1
Nota
xinit
no soporta múltiples pantallas cuando ya se ha iniciado otro servidor X. Para ello debe especificar la pantalla añadiendo
-- :
número_de_pantalla
, donde
número_de_pantalla
es 1 o más.
Su gestor de ventanas (o entorno de escritorio) elegido debería comenzar ahora correctamente.
Para salir de X, ejecute la función de salida de su gestor de ventanas (asumiendo que tiene una). Si carece de dicha funcionalidad, ejecute:
$ pkill -15 Xorg
Nota
pkill
eliminará todas las instancias de X en ejecución. Para terminar específicamente el gestor de ventanas en el terminal virtual actual, ejecute:
$ pkill -15 -t tty"$XDG_VTNR" Xorg
Véase también
signal(7)
.
Consejos y trucos
Sobrescribir xinitrc
Si tiene un
~/.xinitrc
en funcionamiento pero solo desea probar otro gestor de ventanas o entorno de escritorio, puede ejecutarlo introduciendo
startx
seguido de la ruta al gestor de ventanas:
$ startx /usr/bin/i3
Si el binario tiene argumentos, deben citarse para ser reconocidos como parte del primer parámetro de
startx
:
$ startx "/usr/bin/
gestor-de-ventanas
--
key value
"
Tenga en cuenta que se
requiere
la ruta completa. También puede especificar opciones personalizadas para el script
#xserverrc
añadiéndolas después del signo de guión doble
--
:
$ startx /usr/bin/enlightenment -- -br +bs -dpi 96
Véase también
startx(1)
.
Nota
Dado que los scripts en
/etc/X11/xinit/xinitrc.d/
se omiten, es posible que sea necesario configurar la variable de entorno
DISPLAY
. Puede probar
i3
en la pantalla deseada ejecutando
DISPLAY=:
número_pantalla
startx /usr/bin/i3
.
Sugerencia
Esto se puede utilizar para iniciar programas gráficos normales pero sin ninguna de las funciones del gestor de ventanas básico. Véase también
#Iniciar aplicaciones sin un gestor de ventanas
y
Ejecutando programa en una pantalla X separada
Inicio automático de X al inicio de sesión
Asegúrese de que
startx
esté
configurado
correctamente.
Coloque lo siguiente en su archivo de inicialización del
login shell
(por ejemplo
~/.bash_profile
para
Bash
o
~/.zprofile
para
Zsh
):
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
  exec startx
fi
Puede reemplazar la comparación
-eq
con una como
-le 3
(para vt1 a vt3) si desea usar inicios de sesión gráficos en más de un terminal virtual.
Las condiciones alternativas para detectar el terminal virtual incluyen
"$(tty)" = "/dev/tty1"
, que no permite la comparación con
-le
, y
"$(fgconsole 2>/dev/null || echo -1)" -eq 1
, que no funciona en
consolas en serie
.
La orden
exec
garantiza que el usuario finalice la sesión cuando el servidor X se cierre, se bloquee o lo mate un atacante. Si desea correr el riesgo y permanecer conectado cuando finalice la sesión X, elimine
exec
.
Véase también
Fish#Start X at login
e
inicio de sesión automático en Xorg sin gestor de pantallas
[
enlace roto
: sección no válida]
.
Sugerencia
Este método se puede combinar con el
inicio de sesión automático a la consola virtual
.
Cambio entre entornos de escritorio/gestores de ventanas
Si está cambiando con frecuencia entre diferentes entornos de escritorio o gestores de ventanas, es conveniente utilizar un
gestor de pantalla
o expandir
~/.xinitrc
para hacer posible el cambio.
El siguiente ejemplo muestra como iniciar un entorno de escritorio o gestor de ventanas en particular con un argumento:
~/.xinitrc
...

# Aquí Xfce se mantiene por defecto
session=${1:-xfce}

case $session in
    i3|i3wm           ) exec i3;;
    kde               ) exec startplasma-x11;;
    xfce|xfce4        ) exec startxfce4;;
    # No hay sesión conocida, intento ejecutarlo como orden
    *                 ) exec $1;;
esac
Para pasar el argumento
session
:
$ xinit
session
o
$ startx ~/.xinitrc
session
Iniciar aplicaciones sin un gestor de ventanas
Es posible iniciar solo aplicaciones específicas sin un gestor de ventanas, aunque lo más probable es que esto solo sea útil con una sola aplicación que se muestre en modo de pantalla completa. Por ejemplo:
~/.xinitrc
...

exec chromium
Alternativamente, se puede llamar al binario directamente desde el símbolo del sistema como se describe en
#Sobrescribir xinitrc
.
Con este método, debe establecer la geometría de cada ventana de la aplicación a través de sus propios archivos de configuración, si es posible.
Sugerencia
Esto puede ser útil para lanzar juegos gráficos, donde excluir la sobrecarga de un compositor puede ayudar a mejorar el rendimiento del juego.
Véase también
Display manager#Starting applications without a window manager
.
Redirección de salida utilizando startx.
Véase
Xorg#Session log redirection
para más detalles.