---
description: 'Эта глава описывает, как установить и настроить Wayland и композиторы на FreeBSD, что обеспечивает графическую пользовательскую среду'
next: books/handbook/network
params:
  path: /books/handbook/wayland/
part: 'В начале'
prev: books/handbook/x11
showBookMenu: 'true'
tags: ["Wayland", "XWayland", "KDE", "Plasma", "Xfce", "Gnome", "Intel", "AMD", "NVIDIA", "Wayfire", "Sway", "Hikari"]
title: 'Глава 6. Wayland'
weight: 8
---

[[wayland]]
= Wayland на FreeBSD
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 6
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/wayland/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[wayland-synopsis]]
== Обзор

Установка FreeBSD с помощью bsdinstall не включает автоматически графический интерфейс пользователя. В этой главе описано, как выбрать, установить и настроить композитор Wayland, который предоставляет графическую среду.

Прежде чем читать эту главу, необходимо:

* Знать, как установить crossref:ports[ports,дополнительное стороннее программное обеспечение].

* Знать, как определить и настроить crossref:x11[x-graphic-card-drivers,драйверы для вашего графического оборудования].

Прочтите эту главу, чтобы узнать:

* Как настроить FreeBSD для размещения графической среды Wayland.

* Как установить и настроить композитор Wayland.

* Как запускать программы, предназначенные для старой версии X Window System.

* Как настроить удаленный доступ к графической среде Wayland.

[[wayland-overview]]
== Обзор Wayland
Wayland — это коммуникационный протокол, который может заменить сервер дисплеев, такой как X.org. Он отличается от X.org несколькими важными способами. Во-первых, Wayland — это только протокол, который выступает в роли посредника между клиентами, используя механизм, который устраняет зависимость от X-сервера. X.org включает в себя как протокол X11, используемый для работы с удалёнными дисплеями, так и X-сервер, который принимает соединения и отображает окна. В случае с Wayland, композитор или оконный менеджер предоставляет сервер дисплеев вместо традиционного X-сервера.

Поскольку Wayland не является X-сервером, для удалённого управления рабочим столом традиционные соединения с экраном X потребуют использования других методов, таких как VNC или RDP. Во-вторых, Wayland может управлять композитными взаимодействиями между клиентами и композитором как отдельная сущность, которой не требуется поддержка протоколов X.

Wayland относительно нов, и не все программы были обновлены для нативной работы без поддержки `Xwayland`. Поскольку Wayland не предоставляет X-сервер, а ожидает, что композиторы обеспечат эту поддержку, оконные менеджеры X11, которые ещё не поддерживают Wayland, потребуют, чтобы `Xwayland` не запускался с параметром `-rootless`. Удаление параметра `-rootless` восстановит поддержку оконных менеджеров X11.

[NOTE]
====
Текущий драйвер NVIDIA(R) должен работать с большинством композиторов wlroots, но может быть немного нестабильным и не поддерживать все функции на данный момент. Требуются добровольцы для помощи в работе над NVIDIA(R) DRM.
====

В настоящее время множество программного обеспечения, включая Firefox, работает с минимальными проблемами в Wayland. Также доступны несколько окружений рабочего стола, например, замена Compiz Fusion под названием Wayfire и замена менеджера окон i3 — Sway.

[NOTE]
====
По состоянию на май 2021 года plasma5-kwin поддерживает Wayland в FreeBSD. Для использования Plasma под Wayland используйте параметр `startplasma-wayland` с `ck-launch-session` и подключите dbus следующим образом: `dbus-launch --exit-with-x11 ck-launch-session startplasma-wayland`, чтобы заставить это работать.
====

Для композиторов необходимо наличие ядра с поддержкой драйвера man:evdev[4] для использования функциональности привязки клавиш. Он включён по умолчанию в ядро [.filename]#GENERIC#; однако, если ядро было изменено и поддержка man:evdev[4] была удалена, потребуется загрузить модуль man:evdev[4]. Кроме того, пользователям `Wayland` необходимо быть членами группы `video`. Чтобы быстро внести это изменение, используйте команду `pw`:

[source, shell]
----
pw groupmod video -m user
----

Установка Wayland проста; сам протокол не требует значительной настройки. Большая часть композиции будет зависеть от выбранного композитора. Установив `seatd` сейчас, можно пропустить один шаг в процессе установки и настройки композитора, так как `seatd` необходим для предоставления непривилегированного доступа к некоторым устройствам.

Все описанные здесь композиторы должны работать с драйверами с открытым исходным кодом package:graphics/drm-kmod[]; однако видеокарты NVIDIA(R) могут иметь проблемы при использовании проприетарных драйверов. Для начала установите следующие пакеты:

[source, shell]
----
# pkg install wayland seatd
----

После установки протокола и необходимых пакетов, композитор должен создать пользовательский интерфейс. В следующих разделах будут рассмотрены несколько композиторов. Все композиторы, использующие Wayland, требуют наличия runtime-каталога, определённого в окружении. Начиная с FreeBSD 14.1, он создаётся и определяется автоматически. Для более ранних версий это можно сделать с помощью следующей команды в оболочке bourne:

[source, shell]
----
% export XDG_RUNTIME_DIR=/var/run/user/`id -u`
----

Важно отметить, что большинство композиторов ищут файлы конфигурации в каталоге `XDG_RUNTIME_DIR`. В приведённых здесь примерах будет использоваться параметр для указания файла конфигурации в [.filename]#~/.config#, чтобы разделить временные файлы и файлы конфигурации. Рекомендуется настроить псевдоним для каждого композитора, чтобы загружать указанный файл конфигурации.

[WARNING]
====
Сообщается, что пользователи ZFS могут столкнуться с проблемами при работе с некоторыми клиентами Wayland, так как им требуется доступ к `posix_fallocate()` в runtime-каталоге. Хотя автор не смог воспроизвести эту проблему на своей системе с ZFS, рекомендуемым решением является отказ от использования ZFS для runtime-каталога и использование `tmpfs` для [.filename]#/var/run#. В этом случае файловая система `tmpfs` используется для [.filename]#/var/run# и монтируется командой `mount -t tmpfs tmpfs /var/run`, после чего это изменение можно сделать постоянным после перезагрузок через [.filename]#/etc/fstab#. Переменная окружения XDG_RUNTIME_DIR может быть настроена на использование [.filename]#/var/run/user/$UID#, чтобы избежать потенциальных проблем с ZFS. Учитывайте этот сценарий при изучении примеров конфигурации в следующих разделах.
====

Демон seatd помогает управлять доступом к общим системным устройствам для непривилегированных пользователей в композиторах; это включает графические карты. Для традиционных менеджеров X11, таких как Plasma и GNOME, `seatd` не требуется, но для обсуждаемых здесь композиторов Wayland он должен быть включён в системе и работать перед запуском окружения композитора. Чтобы включить и запустить демон `seatd` сейчас и при инициализации системы:

[source, shell]
----
# sysrc seatd_enable="YES"
# service seatd start
----

После этого необходимо установить композитор, который аналогичен рабочему столу X11, для графической среды. Здесь рассматриваются три варианта, включая базовые настройки, настройку блокировки экрана и рекомендации для получения дополнительной информации.

[[wayland-wayfire]]
== Композитор Wayfire

Wayfire — это композитор, который стремится быть легковесным и настраиваемым. Доступно несколько функций, и он возвращает некоторые элементы из ранее выпущенного рабочего стола Compiz Fusion. Все части выглядят красиво на современном оборудовании. Чтобы запустить Wayfire, начните с установки необходимых пакетов:

[source, shell]
----
# pkg install wayfire wf-shell alacritty swaylock-effects swayidle wlogout kanshi mako wlsunset
----

Пакет `alacritty` предоставляет эмулятор терминала. Однако он не является строго обязательным, так как другие эмуляторы терминалов, такие как `kitty` и `Terminal` XFCE-4, были протестированы и подтверждены для работы под композитором Wayfire. Конфигурация Wayfire относительно проста; она использует файл, который следует изучить перед внесением любых изменений. Для начала скопируйте пример файла в каталог конфигурации среды выполнения, а затем отредактируйте файл:

[source, shell]
----
% mkdir ~/.config/wayfire
% cp /usr/local/share/examples/wayfire/wayfire.ini ~/.config/wayfire
----

Настройки по умолчанию подойдут большинству пользователей. В файле конфигурации уже предустановлены параметры, такие как известный `cube`, а также приведены инструкции по доступным настройкам. Вот несколько основных параметров, на которые стоит обратить внимание:

[.programlisting]
....
[output]
mode = 1920x1080@60000
position = 0,0
transform = normal
scale = 1.000000
....

В этом примере из файла конфигурации вывод на экран должен соответствовать указанному режиму с указанной частотой. Например, параметр mode должен быть установлен как `ширинаxвысота@частота_обновления`. Параметр position размещает вывод в указанной позиции (в пикселях). Значение по умолчанию подходит для большинства пользователей. Наконец, transform задаёт фоновое преобразование, а scale масштабирует вывод до указанного коэффициента. Значения по умолчанию для этих параметров обычно приемлемы; дополнительную информацию см. в документации.

Как уже упоминалось, Wayland — это новая технология, и не все приложения пока работают с этим протоколом. На данный момент `sddm` не поддерживает запуск и управление композиторами в Wayland. В этих примерах вместо него использовалась утилита `swaylock`. Файл конфигурации содержит параметры для запуска `swayidle` и `swaylock` для управления простоем и блокировкой экрана.

Эта опция для определения действия при простое системы указана как:

[.programlisting]
....
idle = swaylock
....

И таймаут блокировки настраивается с помощью следующих строк:

[.programlisting]
....
[idle]
toggle = <super> KEY_Z
screensaver_timeout = 300
dpms_timeout = 600
....

Первый вариант заблокирует экран через 300 секунд, а через следующие 300 секунд экран выключится с помощью опции `dpms_timeout`.

Последнее, на что стоит обратить внимание, — это клавиша <super>. В большинстве конфигураций упоминается эта клавиша, и она соответствует традиционной клавише `Windows` на клавиатуре. На большинстве клавиатур эта клавиша super доступна; однако, если её нет, её следует переназначить в этом конфигурационном файле. Например, чтобы заблокировать экран, зажмите клавишу super, клавишу kbd:[shift] и нажмите клавишу kbd:[escape]. Если сопоставления не изменены, это запустит приложение swaylock. Конфигурация по умолчанию для `swaylock` отображает серый экран; однако приложение легко настраивается и хорошо документировано. Кроме того, поскольку была установлена версия swaylock-effects, доступно несколько дополнительных возможностей, таких как эффект размытия, который можно увидеть, используя следующую команду:

[source, shell]
----
% swaylock --effect-blur 7x5
----

Также есть параметр `--clock`, который отображает часы с датой и временем на экране блокировки. При установке пакета package:x11/swaylock-effects[] включается конфигурация [.filename]#pam.d# по умолчанию. Она предоставляет стандартные настройки, которые подойдут большинству пользователей. Доступны и более расширенные варианты; дополнительную информацию можно найти в документации PAM.

На этом этапе пришло время протестировать Wayfire и проверить, сможет ли он запуститься в системе. Просто введите следующую команду:

[source, shell]
----
% wayfire -c ~/.config/wayfire/wayfire.ini
----

Теперь композитор должен запуститься и отобразить фоновое изображение вместе с панелью меню в верхней части экрана. Wayfire попытается перечислить установленные совместимые приложения для рабочего стола и отобразит их в этом выпадающем меню; например, если установлен файловый менеджер XFCE-4, он появится в этом меню. Если конкретное приложение совместимо и достаточно важно для назначения горячей клавиши, его можно привязать к комбинации клавиш с помощью конфигурационного файла [.filename]#wayfire.ini#. Wayfire также имеет инструмент настройки под названием Wayfire Config Manager. Он доступен в выпадающем меню, но его также можно запустить через терминал, выполнив следующую команду:

[source, shell]
----
% wcm
----

Различные параметры конфигурации Wayfire, включая специальные эффекты композитора, могут быть включены, отключены или настроены через это приложение. Кроме того, для более удобного взаимодействия, в конфигурационном файле могут быть активированы менеджер фона, панель и док-приложение:

[.programlisting]
....
panel = wf-panel
dock = wf-dock
background = wf-background
....

[WARNING]
====
Изменения, внесенные через `wcm`, перезапишут пользовательские настройки в конфигурационном файле [.filename]#wayfire.ini#. Настоятельно рекомендуется создать резервную копию файла [.filename]#wayfire.ini#, чтобы можно было восстановить важные изменения.
====

Наконец, стандартный лаунчер, указанный в [.filename]#wayfire.ini#, — это package:x11/wf-shell[], который может быть заменён другими панелями по желанию пользователя.

[[wayland-hikari]]
== Композитор Hikari

Композитор Hikari использует несколько концепций, ориентированных на продуктивность, такие как листы (sheets), рабочие пространства (workspaces) и другие. В этом отношении он напоминает тайловый оконный менеджер. Если разбирать подробнее, композитор начинается с одного рабочего пространства, которое аналогично виртуальным рабочим столам. Hikari использует одно рабочее пространство (или виртуальный рабочий стол) для взаимодействия с пользователем. Рабочее пространство состоит из нескольких представлений (views) — это рабочие окна в композиторе, сгруппированные либо в листы (sheets), либо в группы (groups). И листы, и группы состоят из набора представлений — то есть окон, объединённых вместе. При переключении между листами или группами активный лист или группа становятся рабочим пространством. В руководстве (man-странице) эти функции описаны более подробно, но в данном документе достаточно рассматривать одно рабочее пространство с одним листом. Установка Hikari включает один пакет package:x11-wm/hikari[] и терминальный эмулятор `alacritty`:

[source, shell]
----
# pkg install hikari alacritty
----

[NOTE]
====
Другие оболочки, такие как `kitty` или `Terminal` в Plasma, будут работать под Wayland. Пользователям стоит поэкспериментировать с предпочитаемым терминальным редактором, чтобы проверить совместимость.
====

Hikari использует файл конфигурации [.filename]#hikari.conf#, который может быть размещен либо в XDG_RUNTIME_DIR, либо указан при запуске с помощью параметра `-c`. Файл конфигурации автозапуска не обязателен, но может немного упростить переход на этот композитор. Начало настройки заключается в создании каталога конфигурации Hikari и копировании файла конфигурации для редактирования:

[source, shell]
----
% mkdir ~/.config/hikari
% cp /usr/local/etc/hikari/hikari.conf ~/.config/hikari
----

Конфигурация разбита на различные разделы, такие как `ui`, `outputs`, `layouts` и другие. Для большинства пользователей значений по умолчанию будет достаточно, однако некоторые важные изменения всё же стоит внести. Например, переменная `$TERMINAL` обычно не установлена в окружении пользователя. Измените эту переменную или отредактируйте файл [.filename]#hikari.conf#, указав:

[.programlisting]
....
terminal = "/usr/local/bin/alacritty"
....

Запустит терминал `alacritty` при нажатии связанной клавиши. При изучении конфигурационного файла следует обратить внимание, что заглавные буквы используются для сопоставления клавиш пользователю. Например, клавиша kbd:[L] для запуска терминала kbd:[L+Return] на самом деле является ранее упомянутой клавишей super или клавишей с логотипом Windows. Таким образом, удерживая kbd:[L/super/Windows] и нажимая kbd:[Enter], вы откроете указанный эмулятор терминала с конфигурацией по умолчанию. Для сопоставления других клавиш приложениям необходимо создать определение действия. Для этого пункт действия должен быть указан в разделе actions, например:

[.programlisting]
....
actions {
  terminal = "/usr/local/bin/alacritty"
  browser = "/usr/local/bin/firefox"
}
....

Затем действие может быть отображено в разделе `keyboard`, который определен внутри раздела `bindings`:

[.programlisting]
....
bindings {
  keyboard {
SNIP
    "L+Return" = action-terminal
    "L+b" = action-browser
SNIP
....

После перезапуска Hikari удержание кнопки с логотипом Windows и нажатие клавиши kbd:[b] на клавиатуре запустит веб-браузер. Композитор не имеет строки меню, и рекомендуется настроить, как минимум, терминальный эмулятор перед миграцией. Руководство содержит множество документации, его следует прочитать перед полной миграцией. Ещё один положительный аспект Hikari заключается в том, что при переходе на этот композитор его можно запускать в средах рабочего стола Plasma и GNOME, что позволяет опробовать его перед полной миграцией.

Заблокировать экран в Hikari просто, так как пакет включает файл
конфигурации [.filename]#pam.d# и утилиту разблокировки. Сочетание клавиш
для блокировки экрана — kbd:[L] (клавиша с логотипом Windows)+ kbd:[Shift] +
kbd:[Backspace]. Следует отметить, что все представления, не помеченные как
публичные, будут скрыты. Эти представления не будут принимать ввод, когда
экран заблокирован, но будьте осторожны с отображением конфиденциальной
информации. Некоторым пользователям может быть проще перейти на другую
утилиту блокировки экрана, например swaylock-effects, которая обсуждается в
этом разделе. Чтобы запустить Hikari, используйте следующую команду:

[source, shell]
----
% hikari -c ~/.config/hikari/hikari.conf
----

[[wayland-sway]]
== Композитор Sway

Композитор Sway — это тайловый композитор, предназначенный для замены оконного менеджера i3. Он должен работать с текущей конфигурацией i3 пользователя, однако для использования новых функций может потребоваться дополнительная настройка.

Перед установкой Sway убедитесь, что графическая карта (GPU) установлена и настроена правильно. Обратитесь к разделу crossref:x11[x-graphic-card-drivers,Драйверы видеокарт] для получения инструкций. Этот шаг необходим для корректной работы композитора Sway.

В следующих примерах предполагается новая установка без переноса каких-либо конфигураций i3. Для установки Sway и полезных компонентов выполните следующую команду от имени пользователя root:

[source, shell]
----
# pkg install sway swayidle swaylock-effects alacritty dmenu-wayland dmenu
----

Для базового файла конфигурации выполните следующие команды, а затем отредактируйте файл конфигурации после его копирования:

[source, shell]
----
% mkdir ~/.config/sway
% cp /usr/local/etc/sway/config ~/.config/sway
----

Базовый файл конфигурации содержит множество настроек по умолчанию, которые подойдут большинству пользователей. Однако следует внести несколько важных изменений, таких как:

[.programlisting]
....
# Logo key. Use Mod1 for Alt.
input * xkb_rules evdev
set $mod Mod4
# The preferred terminal emulator
set $term alacritty
set $lock swaylock -f -c 000000
output "My Workstation" mode 1366x768@60Hz position 1366 0
output * bg ~/wallpapers/mywallpaper.png stretch
### Idle configuration
exec swayidle -w \
          timeout 300 'swaylock -f -c 000000' \
          timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
          before-sleep 'swaylock -f -c 000000'
....

В предыдущем примере загружаются правила `xkb` для событий man:evdev[4], а клавиша $mod устанавливается в значении логотипа Windows для привязки клавиш. Далее эмулятор терминала был установлен как `alacritty`, и определена команда блокировки экрана; подробнее об этом позже. Ключевое слово `output`, режим, позиция, фоновое изображение, а также Sway указано растягивать это изображение для заполнения экрана. Наконец, `swayidle` настроен на работу в режиме демона и блокировку экрана после таймаута в 300 секунд, переводя экран или монитор в режим сна после 600 секунд. Здесь также определён цвет заблокированного фона 000000, что соответствует чёрному. С использованием swaylock-effects можно также отображать часы с параметром `--clock`. Дополнительные параметры см. на странице руководства. Также следует ознакомиться с man:sway-output[5]; она содержит множество информации по настройке доступных параметров вывода.

В Sway, чтобы вызвать меню приложений, удерживайте клавишу с логотипом Windows (mod) и нажмите kbd:[d]. Меню можно перемещаться с помощью клавиш со стрелками на клавиатуре. Также есть способ изменить расположение панели и добавить трей; подробнее см. на man:sway-bar[5]. В стандартной конфигурации в верхнем правом углу отображается дата и время. Пример можно найти в разделе `Bar` конфигурационного файла. По умолчанию конфигурация не включает блокировку экрана, за исключением приведённого выше примера, а также таймер блокировки. Для создания привязки клавиши блокировки добавьте следующую строку в раздел `Key bindings`:

[.programlising]
....
# Lock the screen manually
bindsym $mod+Shift+Return exec $lock
....

Теперь экран можно заблокировать с помощью комбинации: удерживая клавишу с логотипом Windows, нажать и удерживать Shift, а затем нажать Enter. При установке Sway, будь то из пакета или коллекции портов FreeBSD, устанавливается файл по умолчанию для [.filename]#pam.d#. Конфигурация по умолчанию подходит для большинства пользователей, но доступны и более продвинутые варианты. Для получения дополнительной информации ознакомьтесь с документацией PAM.

Наконец, чтобы выйти из Sway и вернуться к оболочке, удерживайте клавишу с логотипом Windows, клавишу Shift и нажмите kbd:[e]. Появится запрос с возможностью выхода из Sway. Во время миграции Sway можно запустить через эмулятор терминала в X11-окружении, например, Plasma. Это упрощает тестирование различных изменений и сочетаний клавиш перед полным переходом на этот композитор. Чтобы запустить Sway, выполните следующую команду:

[source, shell]
----
% sway -c ~/.config/sway/config
----

[[wayland-xwayland]]
== Использование Xwayland

При установке Wayland бинарный файл `Xwayland` должен быть установлен, если только Wayland не собран без поддержки X11. Если файл [.filename]#/usr/local/bin/Xwayland# отсутствует, установите его с помощью следующей команды:

[source, shell]
----
# pkg install xwayland
----

[NOTE]
====
Рекомендуется использовать разрабатываемую версию Xwayland, которая, скорее всего, была установлена вместе с пакетом Wayland. Каждый композитор имеет свой способ включения или отключения этой функции.
====

После установки `Xwayland` настройте его в выбранном композиторе. Для Wayfire в файле [.filename]#wayfire.ini# требуется следующая строка:

[.programlisting]
....
xwayland = true
....

Для композитора Sway `Xwayland` должен быть включен по умолчанию. Тем не менее, рекомендуется вручную добавить строку конфигурации в файл [.filename]#~/.config/sway/config#, например, следующую:

[.programlisting]
.....
xwayland enable
.....

Наконец, для Hikari не требуется никаких изменений. Поддержка `Xwayland` включена по умолчанию. Чтобы отключить эту поддержку, пересоберите пакет из коллекции портов и отключите поддержку Xwayland во время сборки.

После внесения этих изменений запустите композитор из командной строки и откройте терминал с помощью назначенных клавиш. В этом терминале выполните команду `env` и найдите переменные `DISPLAY`. Если композитор успешно запустил X-сервер Xwayland, эти переменные окружения должны выглядеть примерно следующим образом:

[source, shell]
----
% env | grep DISPLAY
----

[.programlisting]
....
WAYLAND_DISPLAY=wayland-1
DISPLAY=:0
....

В этом выводе есть дисплей Wayland по умолчанию и дисплей, настроенный для сервера Xwayland. Другой способ проверить, что `Xwayland` работает корректно, — установить и протестировать небольшой package:[x11/eyes], а затем проверить вывод. Если приложение `xeyes` запускается и глаза следят за указателем мыши, значит, Xwayland работает правильно. Если же отображается ошибка, например, следующая, значит, что-то произошло во время инициализации `Xwayland`, и, возможно, его потребуется переустановить:

[.programlisting]
....
Error: Cannot open display wayland-0
....

[WARNING]
====
Одной из особенностей безопасности Wayland является отсутствие дополнительного сетевого слушателя при отсутствии запущенного X-сервера. После включения `Xwayland` данная особенность безопасности перестает применяться в системе.
====

Для некоторых композиторов, таких как Wayfire, `Xwayland` может не запуститься правильно. В таком случае, `env` покажет следующую информацию о переменных окружения `DISPLAY`:

[source, shell]
----
% env | grep DISPLAY
----

[.programlisting]
....
DISPLAY=wayland-1
WAYLAND_DISPLAY=wayland-1
....

Хотя `Xwayfire` был установлен и настроен, приложения X11 не запускаются, выдавая ошибку дисплея. Чтобы обойти эту проблему, убедитесь, что уже существует экземпляр `Xwayland`, использующий UNIX-сокет, с помощью двух методов. Сначала проверьте вывод команды `sockstat` и найдите X11-unix:

[source, shell]
----
% sockstat | grep x11
----

Должна быть информация, аналогичная следующей:

[.programlisting]
....
trhodes  Xwayland   2734  8  stream /tmp/.X11-unix/X0
trhodes  Xwayland   2734  9  stream /tmp/.X11-unix/X0
trhodes  Xwayland   2734  10 stream /tmp/.X11-unix/X0
trhodes  Xwayland   2734  27 stream /tmp/.X11-unix/X0_
trhodes  Xwayland   2734  28 stream /tmp/.X11-unix/X0
....

Это указывает на наличие сокета X11. Это можно дополнительно проверить, попытавшись вручную запустить `Xwayland` в эмуляторе терминала, работающем под композитором:

[source, shell]
----
% Xwayland
----

Если сокет X11 уже доступен, пользователю должно быть показано следующее сообщение об ошибке:

[.programlisting]
....
(EE)
Fatal server error:
(EE) Server is already active for display 0
	If this server is no longer running, remove /tmp/.X0-lock
	and start again.
(EE)
....

Поскольку доступен активный X-дисплей с использованием дисплея ноль, переменная окружения была просто задана неправильно. Чтобы исправить это, измените переменную окружения `DISPLAY` на `:0` и попробуйте запустить приложение снова. В следующем примере используется пакет package:mail/claws-mail[] в качестве приложения, которому требуется сервис `Xwayland`:

[source, shell]
----
export DISPLAY=:0
----

После этого изменения приложение package:mail/claws-mail[] должно начать использовать `Xwayland` и работать как ожидается.

[[wayland-remotedesktop]]
== Удаленный рабочий стол с использованием VNC

Ранее в этом документе упоминалось, что Wayland не предоставляет такой же доступ в стиле X-сервера, как Xorg. Вместо этого пользователи могут выбрать любой протокол удаленного рабочего стола, например RDP или VNC. Коллекция портов FreeBSD включает `wayvnc`, который поддерживает композиторы на основе wlroots, такие как рассмотренные здесь. Это приложение можно установить с помощью:

[source, shell]
----
# pkg install wayvnc
----

В отличие от некоторых других пакетов, `wayvnc` не поставляется с файлом конфигурации. К счастью, справочная страница содержит описание важных параметров, и их можно использовать для создания простого файла конфигурации:

[.programlisting]
....
address=0.0.0.0
enable_auth=true
username=username
password=password
private_key_file=/path/to/key.pem
certificate_file=/path/to/cert.pem
....

Необходимо сгенерировать ключевые файлы, и настоятельно рекомендуется их использовать для повышения безопасности соединения. При запуске wayvnc будет искать файл конфигурации в [.filename]#~/.config/wayvnc/config#. Это можно переопределить с помощью опции `-C файл_конфигурации` при запуске сервера. Таким образом, чтобы запустить сервер `wayvnc`, выполните следующую команду:

[source, shell]
----
% wayvnc -C ~/.config/wayvnc/config
----

[NOTE]
====
На момент написания этого документа нет rc.d-скрипта для запуска `wayvnc` при инициализации системы. Если требуется такая функциональность, необходимо создать локальный стартовый файл. Вероятно, это следует оформить как запрос на добавление функции для сопровождающего порта.
====

[[wayland-ly]]
== Логин менеджер Wayland
Хотя существует несколько менеджеров входа в систему, которые постепенно переходят на Wayland, одним из вариантов является текстовый менеджер входа package:x11/ly[]. Требуя минимальной настройки, `ly` запускает Sway, Wayfire и другие окружения, отображая окно входа при инициализации системы. Для установки `ly` выполните следующую команду:

[source, shell]
----
# pkg install ly
----

Будут представлены некоторые подсказки по настройке, основные шаги - добавить следующие строки в [.filename]#/etc/gettytab#:

[programlisting]
....
Ly:\
  :lo=/usr/local/bin/ly:\
  :al=root:
....

И затем измените строку ttyv1 в файле [.filename]#/etc/ttys#, чтобы она соответствовала следующей строке:

[programlisting]
....
ttyv1 "/usr/libexec/getty Ly" xterm onifexists secure
....

После перезагрузки системы должно появиться приглашение на вход. Для настройки конкретных параметров, таких как язык, отредактируйте файл [.filename]#/usr/local/etc/ly/config.ini#. Как минимум, в этом файле должен быть указан tty, который был ранее задан в [.filename]#/etc/ttys#.

[NOTE]
====
Если для терминала ttyv0 настроен вход в систему, может потребоваться нажать клавиши kbd:[alt] и kbd:[F1], чтобы корректно отображалось окно входа.
====

Когда появляется окно входа, использование стрелок влево и вправо позволяет переключаться между различными поддерживаемыми оконными менеджерами.

[[wayland-utilities]]
== Полезные утилиты

Один полезный инструмент для Wayland, который могут использовать все композиторы, — это `waybar`. Хотя Wayfire и поставляется с меню запуска, удобная и быстрая панель задач — это полезное дополнение для любого композитора или менеджера рабочего стола. `waybar` — это совместимая с Wayland панель задач, которая быстро работает и легко настраивается. Чтобы установить пакет и вспомогательную утилиту управления аудио, выполните следующую команду:

[source, shell]
----
# pkg install pavucontrol waybar
----

Для создания каталога конфигурации и копирования стандартного файла конфигурации выполните следующие команды:

[source, shell]
----
% mkdir ~/.config/waybar
% cp /usr/local/etc/xdg/waybar/config ~/.config/waybar
----

Утилита `lavalauncher` предоставляет панель запуска для различных приложений. Вместе с пакетом не поставляется пример файла конфигурации, поэтому необходимо выполнить следующие действия:

[source, shell]
----
mkdir ~/.config/lavalauncher
----

Пример файла конфигурации, который включает только Firefox и расположен справа, приведен ниже:

[.programlising]
....
global-settings {
	watch-config-file = true;
}

bar {
	output            = eDP-1;
	position          = bottom;
	background-colour = "#202020";

	# Condition for the default configuration set.
	condition-resolution = wider-than-high;

	config {
		position = right;
	}

	button {
		image-path          =     /usr/local/lib/firefox/browser/chrome/icons/default/default48.png;
		command[mouse-left] =     /usr/local/bin/firefox;
	}
	button {
	  image-path           =   /usr/local/share/pixmaps/thunderbird.png;
	  command[mouse-left]  =   /usr/local/bin/thunderbird;
}
....
