Архив заметок

wayland

Подписаться на эту метку по RSS

Wayland на FreeBSD с Hyprland

Просмотров: 2093Комментарии: 0
FreeBSD

Всем привет! Оставлю небольшую заметку по установке и настройке нового протокола для организации графического сервера, как замена Xorg. Что говорит рукокнига на официальном сайте FreeBSD о Wayland:

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

Так как у меня на железке стоит видео карта nvidia, то тут не обошлось с дополнительным геморроем по настройке. Благо все решилось через установку модуля drm, об этом напишу чуть позже.

Устанавливал на 13.1 версию FreeBSD из пакетов. Можно установить из портов, но учтите, что при установке Wayland, он тянет llvm и сборка этого добра займет очень много времени даже на мощном железе.

Так же учтите, что пакеты берутся из квартального репозитария с протухшими версиями софта. Если вы не копировали /etc/pkg/FreeBSD.conf в /usr/local/etc/pkg/repos/FreeBSD.conf и не меняли настройки, то стоит проверить:

FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" }

Это вариант с самыми свежими версиями. Далее запускаем

# pkg update -f
# pkg upgrade

Установим следующие пакеты

# pkg install wayland seatd waybar hyprland hyprpaper
  • seatd это сервис, который помогает управлять доступом к общим системным устройствам для обычных пользователей в композиторах(оконных менеджерах) для Wayland.
  • waybar это бар для окошек
  • hyprland тот самый композитор, есть еще другие, но я выбрал этот из-за возможной простоты конфигурации
  • hyprpaper помощник по обоям

Если у вас видюха не nvidia, то смело можно ставить пакет drm-kmod.

И, конечно, если nvidia, то идем на гитхаб за исходниками drm-kmod. Я скачивал drm для нее в домашнюю папку юзера. Загрузим исходники в папку drm-kmod.

# git clone -b 5.10-lts --depth 1 https://github.com/freebsd/drm-kmod.git

Лучше использовать определенную версию для вашей системы, автор про это сообщает:

For 14.0-CURRENT use master

For 13.1-* use 5.10-lts

Для сборки дров понадобятся сорцы, загрузим и их рядом:

# https://github.com/amshafer/nvidia-driver.git

Теперь можно устанавливать. Переходим в папку и устанавливам

# cd ~/nvidia-driver/nvidia && make && make install

Далее грузим через kldload nvidia-drm, теперь почти все готово для запуска.

Отредактируем /etc/rc.conf

kld_list="linux nvidia nvidia-modeset fusefs nvidia-kmod"
senmail_enable="NONE"
seatd_enable="YES"
linux_enable="YES"
dbus_enable="YES"

Теперь необходимо скопировать дефолтные конфиги в домашнюю папку юзера. Для начал найдем конфиги hyprland и waybar

$ find /usr -name hypland.conf
/usr/local/share/hypr/hypland.conf

Создаем папки в домашней директории и копируем конфиг.

$ mkdir -p ~/.config/hypr
$ mkdir ~/.config/waybar

Копируем найденные конфиги в папки. Для бара будет 2 конфига: первый это сам конфиг config и второй это стили style.css.

Потом идем на вики https://wiki.hyprland.org/Getting-Started/Quick-start/ и вкуриваем мануал по конфигу.

И, наконец, добавим для автостарта окошек несколько строк в файл .profile.

if [ -z "$XDG_RUNTIME_DIR" ]; then
    export XDG_RUNTIME_DIR=/tmp/xdg
    if [ ! -d  "$XDG_RUNTIME_DIR" ]; then
        mkdir "$XDG_RUNTIME_DIR"
        chmod 0700 "$XDG_RUNTIME_DIR"
    fi
fi
if $(hyprctl monitors) == "HYPRLAND_INSTANCE_SIGNATURE was not set! (Is Hyprland running?)"; then
Hyprland -c ~/.config/hypr/hyprland.conf
fi

На счет HYPRLAND_INSTANCE_SIGNATURE не уверен, так как это не помогло. При проверке hyprctl monitor до сих пор выводит сообщение, что инстанция не задана. Если знаете как победить, напишите.

Еще один косяк с мышкой, точнее с курсором. Он не появляется, пробовал лечить следующей темой

# setenv WLR_NO_HARDWARE_CURSORS 1

Но не помогло, курсор появлялся и исчезал через какое-то время.

Итак, можно запускать сразу через команду Hyprland или после авторизации, он автоматом запуститься.

Я дальше первого запуска детально не настраивал тайлы, бинды для команд и другие украшательства из-за проблем с видюхой. Скорее всего кривизна рук виновата.