Wayland (Español)

From ArchWiki

Wayland es un nuevo protocolo para gestionar ventanas para Linux. La utilización de Wayland requiere cambios y reinstalación de partes del software del sistema. Para obtener más información sobre Wayland vea esta página.

Advertencia: Wayland está en fuerte desarrollo. La ayuda técnica no se puede garantizar y puede que no funcione como se esperaba.

Requisitos

Actualmente Wayland solo funciona en sistemas que utilizan KMS.

Instalación

Wayland es muy posible que ya se encuentre instalado en su sistema dado que es una dependencia indirecta de gtk2 y gtk3. Si no está instalado, busque el paquete wayland en los repositorios oficiales.

Utilización

Como Wayland es solo una biblioteca, es inoperativo por sí mismo. Para usarlo, necesita un compositor (como Weston), aplicaciones demo de Weston, QT5 con complementos de Wayland y/o GTK+ con soporte para Wayland.

Weston

Instalación

Necesita instalar weston disponible en los repositorios oficiales.

Utilización

Atajos del teclado
Nota:
  • super = tecla windows - se puede cambiar, ver weston.ini Ctrl-b
  • LMB (left mouse buton)=botón secundario ratón; MMB (mid mouse buton)=botón central ratón; RMB (right mouse buton)=botón principal ratón
Combinación Acción
Ctrl + Alt + Retroceso Salir de Weston
Super + Bloq Despl (o RePág/AvPág ) Zoom del escritorio
Super + Tab Cambiar entre ventanas
Super + LMB Mover la ventana
Super + MMB Redimensionar la ventana
Super + RMB ¡Girar la ventana!
Super + Tab Cambiar entre ventanas
Super + K Forzar el cierre de la ventana activa
Super + KeyUp/KeyDown Cambiar entre el anterior/siguiente espacio de trabajo
Super + Mayús + KeyUp/KeyDown Grab Current Window and Switch Workspace
Super + Fn Cambiar entre espacios de trabajo n

Ahora que Wayland se ha instalado con sus requisitos, se está listo para probarlo.

Nota:

El usuario necesita estar en el grupo de vídeo para iniciar Weston; esta orden se supone que no se ejecuta como root y ¡si lo hace puede congelar su VT!

Es posible ejecutar Weston dentro de una sesión X en ejecución:

$ weston

Por otra parte, para poner en marcha de forma nativa Weston, pruebe cambiando de terminal y ejecutar:

$ weston-launch

Luego, en una TTY dentro de Weston, puede ejecutar las demos.

Para ejecutar un emulador de terminal :

$ weston-terminal

Para mover flores alrededor de la pantalla :

$ weston-flower 

Para poner a prueba el protocolo frame (se ejecuta glxgears):

$ weston-gears

Para visualizar imágenes:

$ weston-image image1.jpg image2.jpg...

Para visualizar archivos PDF :

$ weston-view doc1.pdf doc2.pdf...

Configuración

He aquí un archivo de configuración de ejemplo para la distribución del teclado, la selección de módulos y modificaciones de la interfaz de usuario. Vea weston.ini(5) para obtener los detalles completos:

~/.config/weston.ini
[core]
### Descomentar esta línea para dar soporte a «xwayland» ###
#modules=desktop-shell.so,xwayland.so

[shell]
background-image=/usr/share/backgrounds/gnome/Aqua.jpg
background-color=0xff002244
panel-color=0x90ff0000
locking=true
animation=zoom
#binding-modifier=ctrl
#num-workspaces=6
### Para los temas del cursor instale el paquete «xcursor-themes» desde Extra ###
#cursor-theme=whiteglass
#cursor-size=24

### Opciones de tablet ###
#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png
#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg
#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg
#animation=fade

[keyboard]
keymap_rules=evdev
#keymap_layout=es
#keymap_options=caps:ctrl_modifier,shift:both_capslock_cancel
### keymap_options obtenidas desde /usr/share/X11/xkb/rules/base.lst ###

[terminal]
#font=DroidSansMono
#font-size=14

[launcher]
icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png
path=/usr/bin/gnome-terminal

[launcher]
icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png
path=/usr/bin/weston-terminal

[launcher]
icon=/usr/share/icons/hicolor/24x24/apps/firefox.png
path=/usr/bin/firefox

[launcher]
icon=/usr/share/icons/gnome/24x24/apps/arts.png
path=./clients/flower

[screensaver]
# Descomentar path para desactivar el salvapantallas
path=/usr/libexec/weston-screensaver
duration=600

[input-method]
path=/usr/libexec/weston-keyboard

###  Para pantallas de portátiles  ###
#[output]
#name=LVDS1
#mode=1680x1050
#transform=90

#[output]
#name=VGA1
# Lo siguiente establece la modalidad con un modeline, puede obtener modeline para sus resoluciones preferidas mediante la utilidad cvt
#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
#transform=flipped

#[output]
#name=X1
#mode=1024x768
#transform=flipped-270

Configuración mínima de weston.ini :

~/.config/weston.ini
[core]
modules=desktop-shell.so,xwayland.so

[keyboard]
keymap_layout=es

[launcher]
icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png
path=/usr/bin/weston-terminal

[launcher]
icon=/usr/share/icons/hicolor/24x24/apps/firefox.png
path=/usr/bin/firefox

[output]
name=LVDS1
mode=1680x1050
transform=90

XWayland

XWayland es un servidor XOrg y se compila igual que al que sustituye. La única diferencia es que se obtiene de la rama Wayland del repositorio xorg-server y como tal tiene las extensiones de Wayland. Estas extensiones permiten que se ejecute como un cliente de Weston.

Cuando se quiere ejecutar una aplicación X desde Weston, se gira hacia el servidor X modificado para atender la solicitud.

Advertencia: Los pasos de esta sección se dirigen a reemplazar su entramado de gráficos. Una instalación incompleta puede dar lugar a un entorno gráfico roto.

Si piensa ejecutar aplicaciones nativas de X dentro de Wayland, entonce tiene que instalar xorg-server-devAUR. Después de eso, cree o modifique el siguiente archivo de configuración:

~/.config/weston.ini
[core]
modules=xwayland.so,desktop-shell.so

A partir de ahora se podrían también ejecutar aplicaciones X en una especie de «modo de compatibilidad». El apoyo definitivo a XWayland debería estar disponible con la liberación de la versión 1.16 del servidor X, que no verá la luz hasta mediados de 2014.

Los paquetes de AUR pueden requerir algunas modificaciones con el fin de compilar correctamente, para lo cual (mire este hilo).

Bibliotecas GUI

(Veánse los detalles en la página oficial)

GTK+

Se necesita instalar gtk3 disponible en los repositorios oficiales, que ahora tiene el backend Wayland activado.

Con GTK+ 3.0, GTK+ proporciona apoyo para multiples backends ejecutables en tiempo real que pueden cambiar entre sí, de la misma manera que Qt puede hacerlo con lighthouse.

Cuando ambos backends, Wayland y X, están activados, GTK+ de forma predeterminada utiliza el backend X11, pero esto puede ser anulado por la modificación de una variable de entorno: GDK_BACKEND=wayland.

Qt5

Tiene que hacerse o bien recompilando qt5-base con -opengl es2 (actualmente no funciona, véase https://lists.qt-project.org/pipermail/development/2013-December/014789.html ) o bien utilizando {{AUR|qt5-base-git}. Después compile el complemento qt5-wayland-gitAUR de wayland.

Para ejecutar una aplicación Qt5 con el complemento de Wayland, establezca QT_QPA_PLATFORM=wayland-egl.

Clutter

El conjunto de herramientas de Clutter tiene un backend Wayland que permite que se ejecute como cliente de Wayland. El backend está activado en el paquete oficial disponible en Extra.

Para ejecutar una aplicación de Clutter en Wayland, establezca CLUTTER_BACKEND=wayland.

SDL

El apoyo experimental a Wayland se encuentra ahora en SDL 2.0.2 y está activado por defecto en Arch Linux.

Para ejecutar una aplicación de SDL en Wayland, establezca SDL_VIDEODRIVER=wayland.

EFL

EFL tiene soporte completo para Wayland.

Para ejecutar una aplicación de EFL en Wayland, vea la página del proyecto de Wayland.

Gestores de ventanas y shells de escritorios

KDE

KDE 4.11 beta permite iniciar KWin bajo el compositor del sistema Wayland. Actualmente no existe soporte para el uso de KWin como compositor de sesión.

GNOME

Desde la versión 3.10, Gnome tiene soporte experimental Wayland. Para iniciar una sesión en Wayland se debe seleccionar 'GNOME como método de sesión, este debería ser el valor predeterminado al instalar Gnome el cual utiliza Wayland.

Si es necesario ejecutar aplicaciones que requieren un servidor X, el paquete xorg-xwayland puede solventar esta necesidad al ejecutar una sesión en Wayland.

i3

Algunos desarrolladores de i3 han esbozado un proyecto completamente nuevo para implementar un complemento de shell para Weston a fin de conservar las mismas características y estilo de i3.

Wayland puro

Advertencia: He aquí algunas notas breves sobre cómo instalar Wayland puro (sin X11) en un sistema Arch Linux. Este es obtenido desde su fuente e instalado en /usr/local. Puede romper el sistema. Considérese advertido.

Primero instale un sistema base de Arch Linux con base y base-devel. No instale xorg o cualquiera de sus bibliotecas.

Wayland, DRM, Pixman, libxkbcommon

Instale wayland libdrm pixman libxkbcommon

Mesa

Instale python2 libxml2 llvm

$ git clone git://anongit.freedesktop.org/mesa/mesa
$ cd mesa
$ CFLAGS=-DMESA_EGL_NO_X11_HEADERS ./autogen.sh --prefix=/usr/local --enable-gles2 --disable-gallium-egl --with-egl-platforms=wayland,drm --enable-gbm --enable-shared-glapi --with-gallium-drivers=r300,r600,swrast,nouveau --disable-glx --disable-xlib
$ make
# make install

cairo

Nota: Sin glx/gl o xcb. Únicamente EGL.

Instale libpng

$ git clone git://anongit.freedesktop.org/cairo
$ cd cairo
$ CFLAGS=-DMESA_EGL_NO_X11_HEADERS ./autogen.sh --prefix=/usr/local/  --disable-xcb  --enable-glesv2 
$ make
# make install

weston

Instale gegl mtdev

(selecciones mesa-gl en options para libgl)
$ git clone git://anongit.freedesktop.org/wayland/weston
$ cd weston/
$ CFLAGS="-DMESA_EGL_NO_X11_HEADERS" ./autogen.sh --prefix=/usr/local/ --with-cairo-glesv2 --disable-xwayland --disable-x11-compositor --disable-xwayland-test
$ make
# make install

Solución de problemas

LLVM assertion failure

Si obtiene un error de «LLVM assertion failure», necesita recompilar mesa sin Gallium LLVM hasta que se solucione este problema.

Esto puede implicar la desactivación de algunos controladores que requiere LLVM. También puede tratar de exportar lo siguiente, si tiene problemas con los controladores del hardware:

$ export EGL_DRIVER=/usr/lib/egl/egl_gallium.so

Véase también