Universal Wayland Session Manager (Español)
El Gestor de Sesiones Universal para wayland (uwsm) actua como una capa sobre compositores Wayland a través de un conjunto de unidades de systemd al vuelo. Esto provee una gestion robusta de la sesión incluyendo un soporte bidireccional al entorno XDG Autostart, vinculandose con la sesión inciada, y proporcionando un apagado limpio.
loginctl cease-user ""
.Instalación
Instale el paquete uwsm (o uwsm-gitAUR para la última versión en la rama master).
Configuración
Notificación de inicio de servicio y variables establecidas por el compositor
WAYLAND_DISPLAY
(y otras variables de entorno utiles) en el entorno de activación de systemd, entonces puedes omitir esta seccion y no necesitas usar uwsm finalize
.En orden de encontrar el compositor actual, una aplicación Wayland que corre como un servicio de systemd necesita la variable de entorno WAYLAND_DISPLAY
(o DISPLAY
si esperan ejecutarse a través de Xwayland). Por lo tanto esta y otras variables de entorno utiles deberían ser puestas en el entorno de activación de systemd/dbus una vez el compositor ha establecido sus valores.
El comando uwsm finalize
pone las variables WAYLAND_DISPLAY
, DISPLAY
listadas en la lista {ic|UWSM_FINALIZE_VARNAMES}} mediante espacios en blanco, en el entorno de activación. Es recomendado ejecutar este comando despues de que el compositor esta listo.
Si otras variables establecidas por los compositories son necesarias en el entorno de activación, pueden ser pasadas como argumentos a uwsm finalize
o ser puestas en una lista separada por espacios en blanco UWSM_FINALIZE_VARNAMES
. Mirar los ejemplos abajo:
exec uwsm finalize VAR1 VAR2 ... export UWSM_FINALIZE_VARNAMES=VAR1 VAR2 ...
Variables de entorno
Todas las variables establecidas en ${XDG_CONFIG_HOME}/uwsm/env
son obtenidas por uwsm y están disponibles para todos los compositores y las aplicaciones gráficas que se ejecuten dentro de dicha sesión.
Si necesitas que ciertas variables de entorno sean establecidas solo para un compositor (y aplicaciones gráficas en esa sesión gráfica) especifico, entonces ponlas en ${XDG_CONFIG_HOME}/uwsm/env-compositor
en su lugar.
Un ejemplo de como se puede ver dicho archivo está abajo:
~/.config/uwsm/env
export KEY1=VAR1 export KEY2=VAR2 export KEY3=VAR3 ...
Uso
Inicio
uwsm start
fue usado con exito.uwsm puede ser usado desde una TTY o un gestor de pantalla.
TTY
Añade en tu archivo ~/.profile
:
if uwsm check may-start && uwsm select; then exec uwsm start default fi
Si siempre quieres usar el mismo compositor, entonces puedes usar un archivo ~/.profile
en su lugar:
if uwsm check may-start; then exec uwsm start compositor.desktop fi
Display manager
Puedes crear un entrada de escritorio personalizada de sesion la cual inicia tu compositor a través uwsm:
/usr/share/wayland-sessions/my-compositor-uwsm.desktop
[Desktop Entry] Name=My compositor (with UWSM) Comment=My cool compositor, UWSM session # ya sea una linea completa de comando con metadatos y ejecutables Exec=uwsm start -N "My compositor" -D mycompositor:mylib -C "My cool compositor" -- my-compositor # o incluso una referencia a otra entrada Exec=uwsm start -- my-compositor.desktop DesktopNames=mycompositor;mylib Type=Application
Finalización de Sesión
Si quieres acabar la actual sesión de uwsm, entonces deberías usar ya sea loginctl terminate-user ""
(finaliza la sesión de usuario de forma total) o uwsm stop
(ejecuta código después de uwsm start
o finaliza la sesión de usuario, si reemplaza la interfaz de incio de sesion).
Consejos y trucos
Aplicaciones y autoinicio
Por defecto uwsm lanza los compositores a través de un servicio personalizado de systemd en session.slice
. Muchos compositores Wayland te permiten iniciar otras aplicaciones que luego se lanzarian dentro del servicio del compositor, lo que consumiria inutilmente recursos del compositor o incluso interferiria con los sockets de notificaciones.
Para iniciar aplicaciones como unidades de ambito de systemd separadas puedes usar el comando uwsm app
, el cual puede lanzar tanto ejecutables
uwsm app -- /my/program/path
como desktop entries
uwsm app -- myprogram.desktop
Por defecto uwsm pone el ambito de las unidades del slice app-graphical.slice
. Si quieres ponerlas en background-graphical.slice
o en session-graphical.slice
,entonces deberias usar las opciones -s b
, -s s
respectivamente:
uwsm app -s b -- background-app.desktop
Alternativas
En lugar de uwsm app
(que ejecuta un script de python), puedes usar alternativas más rapidas:
- El script
uwsm-app
de uwsm el cual se comunica con el demonio de aplicaciones de uwsm. - app2unit-gitAUR, el cual es un script de shell. Puedes usarlo como reemplazo directo de
uwsm app
estableciendo la variable de entornoAPP2UNIT_SLICES
como se describe a continuacion:APP2UNIT_SLICES='a=app-graphical.slice b=background-graphical.slice s=session-graphical.slice'
- runappAUR, el cual esta escrito en C++, pero careciendo de algunas funcionalidades.