Jump to content

# Universal Wayland Session Manager (Español)

From ArchWiki
Esta traducción de Universal Wayland Session Manager fue revisada el 2025-10-02. Si existen cambios puede actualizarla o avisar al equipo de traducción.

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.

Nota Se recomienda encarecidamente dbus-broker como implementación del demonio D-Bus. Entre otros beneficios, reutiliza el entorno de activación de systemd en lugar de tener uno separado. Esto simplifica la gestión del entorno y permite hacer una limpieza apropiada. La implementación de referencia de D-Bus también está soportada, pero no permite restablecer variables, Por lo tanto, se realiza una limpieza óptima estableciéndolos en una cadena vacía. La única manera de limpiar correctamente el entorno independiente del demonio D-Bus de referencia es ejecutar `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

Nota Si los compositores ya establecen `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

Nota El precargador de entorno ya no usa de fuente el archivo profile de una shell POSIX si el entorno desde el contexto de `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).

Nota No uses el mecanismo nativo de salida del compositor o lo mates directamente. Esto forzara la finalización del compositor de forma abrupta para todos los clientes e interferirá con la secuencia de activación ordenada por unidades.

## 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 entorno `APP2UNIT_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.

## Ver también

- uwsm(1)

Category:

- Wayland (Español)

Universal Wayland Session Manager (Español)
Add topic