--- 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 = KEY_Z screensaver_timeout = 300 dpms_timeout = 600 .... Первый вариант заблокирует экран через 300 секунд, а через следующие 300 секунд экран выключится с помощью опции `dpms_timeout`. Последнее, на что стоит обратить внимание, — это клавиша . В большинстве конфигураций упоминается эта клавиша, и она соответствует традиционной клавише `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; } ....