Некоторое время назад узнал про композитор hyprland и, обнаружив соответствующий пакет в Сизифе, решил его попробовать. Хочу поделиться опытом установки, возможно написанное мной кому-то поможет или послужит основой для статьи о пакете на alt linux wiki. Насколько я понял, hyprland - проект молодной и активно развивающийся, информации по нему не так уж и много, особенно на русском языке. Сразу скажу, что ранее имел дело только с Gnome и KDE, никогда не занимался сборкой из git. На установку, настройку и поиск решения возникших проблем ушел один вечер. Далее распишу по каждому пакету, будет много букв, поэтому большую часть прячу под спойлеры. За основу взял regular-сборку на lxde, поскольку встречал информацию о том, что это окружение никак не конфликтует с hyprland. Итак, установка:
1.
Для начала установил сам композитор, рекомендуемый по-умолчанию эмулятор терминала, лаунчер wofi, а также пакеты, не являющиеся к нему зависимостями, но отмеченные на hyprland-wiki как важные и влияющие на пользовательский опыт.
apt-get install hyprland kitty wofi pipewire wireplumber mako qt5-wayland qt6-wayland xdg-desktop-portal xorg-xwayland
Сразу включил службы pipewire, но не уверен, нужно ли было это делать. После установки у меня они были выключены, возможно включились бы после перезагрузки.
systemctl --user enable pipewire.service systemctl --user enabe pipewire-pulse.service systemctl --user enable wireplumber.service
Запуск композитора командой Hyprland переключившись на другой tty, при первом запуске создается конфиг в ~/.config/hypr/hyprland.conf Настройки подробно расписаны на wiki проекта. В конфиге сразу внес в автозапуск агент аутентификации (взял из lxde, он работает, проверил, запустив gparted) и демон уведомлений mako
exec-once = /usr/bin/lxpolkit exec-once = mako
2.
Для управления обоями рабочего стола решил использовать утилиту hyprpaper (https://github.com/hyprwm/hyprpaper). В Сизифе ее нет, собирал из git. Установил сам git, cmake и зависимости для сборки.
apt-get install git cmake libwayland-client-devel libwayland-server-devel libwlroots-devel gcc-c++ wayland-protocols ninja-build libcairo-devel libpango-devel libjpeg-devel libwayland-cursor-devel libGLES-devel libmagic-devel
Сборка полностью по инструкции из git:
git clone https://github.com/hyprwm/hyprpaper cd hyprpaper
Собранный бинарник лежит в ./build/, под su - скопировал его в /usr/bin Добавил конфиг hyppaper.conf в ~/.config/hypr. Содержимое конфига, где путь нужно заменить на путь до нужного изображения, а monitor1 на имя используемого монитора. Имя монитора можно узнать в консоли через hyprctl monitors
preload = /path/to/image.png wallpaper = monitor1,/path/to/image.png make all
Для запуска нужно добавить в hyprland.conf строку для запуска hyprpaper exec-once = hyprpaper
3.
Следующим на очереди был xdg-desktop-portal-hyprland (https://github.com/hyprwm/xdg-desktop-portal-hyprland), также собирал его из git. Для сборки, помимо уже установленного, потребовалось доустановить еще пакеты:
apt-get install meson pipewire-libs-devel libinih-devel libgbm-devel libdrm-devel libuuid-devel libsystemd-devel qt6-wayland-devel
Сборка
git clone https://github.com/hyprwm/xdg-desktop-portal-hyprland cd xdg-desktop-portal-hyprland meson build --prefix=/usr cd hyprland-share-picker && make all && cd ..
Установка от суперпользователя из каталога xdg-desktop-portal-hyprland:
ninja -C build install cp ./hyprland-share-picker/build/hyprland-share-picker /usr/bin
Далее с ним ничего делать не нужно, при установленном xdg-desktop-portal должен работать автоматически. Проверить работу, например возможность расшарть экран, можно на https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/ и подобных.
4.
В качестве бара решил попробовать waybar (https://github.com/Alexays/Waybar). В Сизифе он есть, однако в нем отсутствовал индикатор рабочих мест «wlr/workspaces». Путем долгого и нудного поиска выяснил, что для его работы необходимо собирать бар с параметром expeimental=true, поэтому дорога снова на git.
Снова зависимости:
apt-get install libdbusmenu-gtk3-devel libfmt-devel jsoncpp-devel libevdev-devel libinput-devel libmpdclient-devel libnl-devel libpulseaudio-devel scdoc libspdlog-devel libupower-devel rpm-build-xdg libstdc++-devel-static
Шрифт для отображения картинок в баре:
apt-get install fonts-otf-fontawesome
Сборка
git clone https://github.com/Alexays/Waybar cd Waybar meson build -Dexperimental=true
Установка, от суперпользователя из каталога Waybar
ninja -C build install
Добавил в hyprland.conf строку для запуска waybar
exec-once = waybar
Пользовательские конфиги для waybar хранятся в ~/.config/waybar Примеры можно взять из /usr/local/etc/xdg/waybar
5.
Остальное время потратил на небольшие настройки hyprland и бара:
Для себя пока включил максимально простой индикатор рабочих мест. В ~/.config/waybar/config добавил индикатор:
"wlr/workspaces": {
"format": "{name}",
"on-click": "activate"
}
Вывел его в левую секцию, модули по-умолчанию оттуда убрал, большинство относилось к композитору sway и не выводилось
"modules-left": ["wlr/workspaces"]
По инструкции с hyprland wiki внес изменения в ~/.config/waybar/style.css Вместо #workspaces button.focused сделал #workspaces button.active
В hyprland.conf включил русскую раскладку и переключение по Alt+Shift
input {
kb_layout = us,ru
...
kb_options = grp:alt_shift_toggle
...
}
Вывел индикатор языка на waybar В ~/.config/waybar/config
"hyprland/language": {
"format": "{}",
"format-en": "EN",
"format-ru": "RU",
"keyboard-name": "at-translated-set-2-keyboard"
}
keyboard-name можно посмотреть в выводе hyprctl devices Искомая клавиатура - та, которая меняет active keymap по Alt+Shift
Добавил стиль для индикатора в ~/.config/waybar/style.css. Без него имя раскладки отображалось как …
#language {
background-color: #ffffff;
color: #000000;
min-width: 40px;
}
На этом у меня пока все. Дальше в планах внимательно изучить документацию к hyprland и waybar и настроить их под себя. Пока впечатления от композитора положительные. Если что-то делал не так, что-то можно было сделать лучше, оптимальнее и т.д. - конструктивная критика приветствуется. Если тема найдет отклик - попробую описать, что получилось дальше. Спасибо всем, кто смог дочитать это до конца.
Источник https://forum.altlinux.org/index.php?topic=47752.0 Установка hyprland « : 05.07.2023 22:02:32 »
