Всем привет! Оставлю небольшую заметку по установке и настройке нового протокола для организации графического сервера, как замена Xorg. Что говорит рукокнига на официальном сайте FreeBSD о Wayland:
Так как у меня на железке стоит видео карта 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 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
или после авторизации, он автоматом запуститься.
Я дальше первого запуска детально не настраивал тайлы, бинды для команд и другие украшательства из-за проблем с видюхой. Скорее всего кривизна рук виновата.