From nobody Sat Aug 26 10:30:44 2023 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RXtPw5BXVz4rbSs for ; Sat, 26 Aug 2023 10:30:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RXtPw4wXRz4Xyq; Sat, 26 Aug 2023 10:30:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1693045844; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X+7H8aOIxM0DF9vhHgulw7A8UOwHqwoKNVZsLD0zMBc=; b=evyYkU8niH6n8yaQ2o2yK/vsKuysqhfHX+803ZDAjobGhNJg3H6zC2lJ7oMD/xOHA66uKy qciSAL5zdUgEAtD+4KsDmdHdzT1EzMke1pOgGZaEBJISG8ZEZ+j7FoN+JGFK9cqYrG7hAc PpbTl7Dj+1DNnsJFM/qWnr5dWPSunWvsjSHmPg/58F566tJO6iOtE6bhsSGNYZd89jnRM2 gE8VMd/yEYX2BL2CIH/3MTbhcZumRM8sPanAQ93xmWBJNxE3u6q1H/udUi/ROU3rXoFKv6 yas7OZ5qeJTlqDLhUN+imPK2tyjxCl7rADwOn//mF4RW+q5KQZ8j0W0jVPVHXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1693045844; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X+7H8aOIxM0DF9vhHgulw7A8UOwHqwoKNVZsLD0zMBc=; b=xBdPyxhLgYWPVFXv230DqqScFiHBVUFoJmEI6ey6wfjdSzGTxcbdkKrz0q3KDoc9RwuInx e3B8eFEH6Tqpd5sh9pdffNAyVok96ieYMS3SjaSMJFgbh9j07x5JJuDK/c75/UgPohhknV doMvy1i6owKUx2X5B7cIjFP9btblvxIHH2ofDSFkZni017DAl0QRxI5Q5h2m+g7T0TC2Gy doAcarzRVIzyD3BXx6jwdpCxnK9k/dyp3FjI/zV5HA3yBQU+UzyZNBWUyoXEmCK5rkITuR DTwXYojAG0ZKYNiIpO+ziSGaczOOYTKBxxU6kL6QWm6Ow2DAl1YjND7nxXTxxw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1693045844; a=rsa-sha256; cv=none; b=m56yAUqHnGDt4Gc77esFjukjWX49f5NRM242ncmNjOmAoiKSwtuI/QftlTxso58Fr2rG8/ 5INznZcX0zlunYMYJDoVPdAow/Z9IZTodqoC02k4sL0ujW7lAVs3jaY5AliivAmLi4bNtZ z86DA+mM4REJf+MqDygb8/ZJlsbs3RgulZaYd+E1WkprihHgi/kupziedhCeqbeLvjTJgz fpGmrZs5GqYyEx8BTDlHHCoOYfDle3jsG0rKM6K/lKqaQ2WSpcvRFAQcsz7TzDvjsH7KjZ /eEzr09V5eLgFFxGGuarY0aKf/qPHh55mhNdOFM7CFyBMwcbNgVMKhUKGzVEaQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RXtPw3yqFzWkM; Sat, 26 Aug 2023 10:30:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37QAUi3K096649; Sat, 26 Aug 2023 10:30:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37QAUiA7096646; Sat, 26 Aug 2023 10:30:44 GMT (envelope-from git) Date: Sat, 26 Aug 2023 10:30:44 GMT Message-Id: <202308261030.37QAUiA7096646@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Sergio Carlavilla Delgado Subject: git: be2dc41672 - main - Handbook - RU: Add wayland chapter to Russian translation List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-doc-all@freebsd.org X-BeenThere: dev-commits-doc-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: carlavilla X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: be2dc41672ead73f19aa66d346e9e74126acb8bb Auto-Submitted: auto-generated The branch main has been updated by carlavilla: URL: https://cgit.FreeBSD.org/doc/commit/?id=be2dc41672ead73f19aa66d346e9e74126acb8bb commit be2dc41672ead73f19aa66d346e9e74126acb8bb Author: Andrei Zakhvatov AuthorDate: 2023-08-26 10:29:45 +0000 Commit: Sergio Carlavilla Delgado CommitDate: 2023-08-26 10:30:31 +0000 Handbook - RU: Add wayland chapter to Russian translation In another commit we will upgrade the chapters order PR: 272984 --- .../content/ru/books/handbook/wayland/_index.adoc | 699 +++++++++++++++++++++ 1 file changed, 699 insertions(+) diff --git a/documentation/content/ru/books/handbook/wayland/_index.adoc b/documentation/content/ru/books/handbook/wayland/_index.adoc new file mode 100644 index 0000000000..db995494c3 --- /dev/null +++ b/documentation/content/ru/books/handbook/wayland/_index.adoc @@ -0,0 +1,699 @@ +--- +title: Глава 6. Wayland +part: Часть I. Начало работы +prev: books/handbook/x11 +next: books/handbook/network +description: Эта глава описывает установку и настройку Wayland и композитных менеджеров во FreeBSD, обеспечивающих пользовательскую графическую оболочку +tags: ["Wayland", "XWayland", "KDE", "Plasma", "Xfce", "Gnome", "Intel", "AMD", "NVIDIA", "Wayfire", "Sway", "Hikari"] +showBookMenu: true +weight: 8 +path: "/books/handbook/" +--- + +[[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]] +== Общие сведения о Wayland +Wayland представляет собой новый сервер дисплеев, однако он отличается от Xorg в нескольких важных аспектах. +Во-первых, Wayland является всего лишь протоколом, который выступает в качестве промежуточного слоя между клиентами и использует для этого альтернативный механизм, исключающий зависимость от X-сервера. +Xorg включает как протокол X11, используемый для управления удалёнными дисплеями, так и X-сервер, который будет принимать соединения и отображать окна. +В случае Wayland композитный менеджер или оконный менеджер вместо традиционного X-сервера предоставляет сервер дисплея. + +Так как Wayland не является X-сервером, то традиционные подключения к экранам X будут требовать использования других методов, таких, как VNC или RDP, для управления удалёнными рабочими столами. +Во-вторых, Wayland может управлять композитными соединениями между клиентами и композитным менеджером как отдельной сущностью, которой не нужно поддерживать протоколы X. + +Wayland относительно нов, и не всё программное обеспечение обновлено для работы без дополнительной поддержки `Xwayland`. +Так как Wayland не обеспечивает функцию X-сервера и ожидает, что эту поддержку обеспечивают композитные менеджеры, то оконным менеджерам X11, которые ещё не поддерживают Wayland, будет требоваться запуск `Xwayland` без параметра `-rootless`. +При исключении параметра `-rootless` обеспечивается поддержка оконного менеджера X11. + +[NOTE] +==== +Актуальный драйвер NVidia должен работать с большинством композитных менеджеров, основанных на wl-roots, но в настоящее время может быть несколько нестабильным и поддерживать не все возможности. +Требуются добровольцы для помощи в работе над NVidia DRM. +==== + +В настоящее время большое количество программного обеспечения, включая Firefox, будет работать с Wayland с минимальными проблемами. +Также доступно несколько оболочек рабочего стола, таких, как замена Compiz Fusion, известная как Wayfire, а также Sway, замена для оконного менеджера i3. + +[NOTE] +==== +С мая 2021 года plasma5-kwin поддерживает Wayland во FreeBSD. +Для использования Plasma вместе с Wayland используйте параметр `startplasma-wayland` для `ck-launch-session` в связке с dbus при помощи команды `ck-launch-session dbus-run-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 могут иметь проблемы при использовании проприетарных драйверов. +Начнём с установки следующих пакетов: + +[source,shell] +---- +# pkg install wayland seatd +---- + +Как только протокол и поддерживающие пакеты будут установлены, композитный менеджер должен создать пользовательский интерфейс. +В следующих разделах будут рассмотрены несколько композитных менеджеров. +Всем композитным менеджерам, использующим Wayland, для работы потребуется каталог, заданный в переменной окружения, что может быть выполнено следующей командой интерпретатора командной строки bourne shell: + +[source,shell] +---- +% export XDG_RUNTIME_DIR=/var/run/user/`id -u` +---- + +Важно отметить, что большинство композитных менеджеров будут выполнять поиск конфигурационных файлов в каталоге XDG_RUNTIME_DIR. +В показываемых здесь примерах будет использоваться параметр для указания конфигурационного файла в [.filename]#~/.config#, чтобы разделить хранение временных и конфигурационных файлов. +Для каждого композитного менеджера рекомендуется настроить алиас для загрузки соответствующего конфигурационного файла. + +[WARNING] +==== +Сообщается, что пользователи ZFS могут сталкиваться с трудностями с некоторыми клиентами Wayland, потому что им требуется доступ к возможности выполнить `posix_fallocate()` в рабочем каталоге. +Хотя автор не смог воспроизвести эту проблему на системе ZFS, рекомендуемым обходным решением является отказ от использования ZFS для рабочего каталога и использование вместо него `tmpfs` для каталога [.filename]#/var/run#. +В таком случае файловая система `tmpfs` используется для [.filename]#/var/run# и монтируется при помощи команды `mount -t tmpfs tmpfs /var/run`, при этом для сохранения такого изменения между перезагрузками используется [.filename]#/etc/fstab#. +Во избежание потенциальных подводных камней с ZFS переменная окружения XDG_RUNTIME_DIR может быть настроена на использование [.filename]#/var/run/user/$UID#. +Имейте в виду такую возможность при рассмотрении примеров конфигураций в последующих разделах. +==== + +Даемон seatd помогает композитным менеджерам управлять доступом к совместно используемым системным устройствам, в том числе графическим адаптерам, для непривилегированных пользователей. +Для традиционных менеджеров X11, таких как Plasma и GNOME, необходимости в `seatd` нет, однако для композитных менеджеров Wayland, обсуждаемых здесь, его необходимо будет активировать на уровне системы, и он должен быть запущен до начала работы в окружении композитного менеджера. +Для активации и запуска даемона `seatd` прямо сейчас, а также на этапе инициализации системы: + +[source,shell] +---- +# sysrc seatd_enable=”YES” +# service seatd start +---- + +После этого для получения GUI необходимо будет установить композитный менеджер, который похож на оболочку 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 +.... + +В этом примере из конфигурационного файла подразумевается работа монитора в указанном режиме с указанной частотой в герцах. +К примеру, режим должен задаваться как `widthxheight@refresh_rate`. +Параметр 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, клавишу 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 использует несколько концепций, направленных на организацию работы, таких как листы, рабочие пространства и так далее. +В этом смысле он подобен панельному оконному менеджеру. +Если описывать подробнее, то работа композитного менеджера начинается с одного рабочего простанства, что похоже на виртуальные рабочие столы. +Hikari использует одно рабочее пространство или виртуальный рабочий стол для взаиодействия с пользователем. +Рабочее пространство состоит из нескольких ракурсов, которые являются рабочими окнами в композитном менеджере, сгруппированными в виде листов или групп. +Как листы, так и группы формируются из набора ракурсов; повторимся, что это окна, которые группируются вместе. +При переключении между листами или группами активный лист или группа становится рабочим пространством. +Страница справки содержит больше подробностей о функциях каждого объекта, однако для целей этого документа просто считайте, что одно рабочее пространство использует один лист. +Установка 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], на самом деле является ранее обсуждённой супер клавишей, или клавишей с логотипом Windows. +Таким образом, при настройках по умолчанию удержание клавиши kbd:[L/super/Windows] и нажатие kbd:[Enter] откроет заданный эмулятор терминала. +Переопределение других клавиш для запуска приложений требует создания определений для действий. +Для этого действие должно быть указано в разделе с действиями, к примеру: + +[.programlisting] +.... +actions { + terminal = "/usr/local/bin/alacritty" + browser = "/usr/local/bin/firefox" +} +.... + +После этого действие может быть назначено в разделе keyboard, который определён внутри раздела bindings: + +[.programlisting] +.... +bindings { + keyboard { +ФРАГМЕНТ + "L+Return" = action-terminal + "L+b" = action-browser +ФРАГМЕНТ +.... + +После перезапуска 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; однако новые возможности могут потребовать некоторой дополнительной настройки. +В последующих примерах предполагается новая установка без какой-либо миграции конфигураций 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] +.... +# Клавиша с логотипом. Используйте Mod1 для указания на Alt. +input * xkb_rules evdev +set $mod Mod4 +# Предпочитаемый вами эмулятор терминала +set $term alacritty +set $lock swaylock -f -c 000000 +output "My Workstation" mode 1366x786@60Hz position 1366 0 +output * bg ~/wallpapers/mywallpaper.png stretch +### Настройка простоя +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 на режим, позицию, рисунок фона, а также на растяжение этого фонового рисунка для заполнения всего экрана. +Наконец, `swaylock` настроен на работу в фоновом режиме и блокировку экрана после таймаута в 300 секунд, с переводом экрана или монитора в спящий режжим после 600 секунд. +Цвет экрана блокировки задан как 000000, что соответствует чёрному цвету, что также определено здесь. +При использовании swaylock-effects с параметром `--clock` могут также отображаться часы. +Обратитесь к странице справки для получения информации о дополнительных опциях. +Также следует изучить страницу справки о man:sway-output[5]; в ней содержится большой объём информации о доступных настройках параметров отображения. + +При работе в Sway для вызова меню приложения удерживайте клавишу с логотипом Windows (mod) и нажмите клавишу kbd:[d]. +Навигация по меню может осуществляться при помощи клавиш со стрелками на клавиатуре. +Есть также возможности по созданию панели инструментов и добавлению панели задач; прочтите страницу справки по man:sway-bar[5] для получения дополнительной информации. +Конфигурация, применяемая по умолчанию, добавляет дату и время в правый верхний угол. +Пример можно найти в разделе `Bar` конфигурационного файла. +По умолчанию в конфигурацию на включена блокировка экрана, кроме примера выше, активирующего таймер блокировки. +Для создания клавиатурной комбинации для блокировки экрана требуется следующая строка в разделе `Key bindings`: + +[.programlising] +.... +# Ручная блокировка экрана +bindsym $mod+Shift+Return exec $lock +.... + +Теперь экран может быть заблокирован при помощи комбинации, заключающейся в удержании клавиши с логотипом Windows, нажатии и удержании клавиши shift и затем нажатия клавиши ввода. +При установке 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-devel +---- + +[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[] с текстовым пользовательским интерфейсом (TUI). +Обходясь минимальными настройками, `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 поставляется с меню запуска, лёгкая в использовании и быстрая панель задач является хорошим инструментом для любого композитного менеджера или оболочки рабочего стола. +Панелью задач, совместимой с Wayland, быстрой и лёгкой в настройке, и является waybar. +Для установки пакета и утилиты, поддерживающей управление аудио, запустите следующую команду: + +[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-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; +} +.... +