- Hyprland (Wayland)
Дистрибутив: Void Linux
Окружение: Hyprland
Предисловие
С Void Linux познакомился года полтора назад. Погонял с недельку на виртуалке и на этом знакомство было закончено. Самобытная СИ, самобытный пакетный менеджер. Все это нужно было изучать, чтобы полноценно пользоваться. Отложил "до лучших времен" и вот оно, — это время пришло!
Arch Linux достал своими бесконечными обновлениями, после которых приходилось что-нибудь да править в конфигах (держал его только ради Hyprland). Смотрю, все чаще стали появляться сборки Hyprland на базе других ОС, среди которых Void Linux для меня представлял особый интерес. Решил для себя, пока не сделаю форк своего конфига Hyprland на Void, арч сносить не буду. Все это, разумеется, делалось на виртуальной машине.
Первоначально нужно было отточить процесс установки и беспроблемного запуска Hyprland на Void, который брался в базовом варианте base-glibc (минимализм еще тот, вам скажу). Тут-то и потребовалось более глубокое изучение xbps и runit. База знаний неплохая, но ей все еще далеко до Arch или Gentoo Wiki.
Void меня удивил тем, что всегда думал, что с пакетами тут все плохо, а оказалось, совсем по-другому. Понятно, что того изобилия, как в арч с подключенным аур и в помине нет, но в сравнении с, например, калькой, не испытал затруднений по установке некоторых специфических пакетов для моей сборки. Единственное, что не нашлось в репах — это rofi-wayland, но он легко собирается из исходников или, как вариант, меняется на минималистичный fuzzel или что-нибудь в этом роде.
Как сложился весь пазл, закинул его на gitlab, проверил еще раз весь процесс сборки с "нуля" и приступил к установке на "реальное" железо.
Установка базовой системы
Void Linux имеет псевдографический установщик, с помощью которого система ставится буквально за несколько минут (арч-инсталл есть чему поучиться). Самая большая "сложность" может возникнуть с настройкой интернет-доступа по беспроводной сети. Поскольку с wpa_supplicant достаточно давно "на ты", — для меня обыденное дело. Мало ли, может кому пригодится:
# rfkill (если заблокирован адаптер — rfkill unblock <adapter>)
# ip a (список доступных интерфейсов и их статус)
# ip link set <device name> up
# wpa_passphrase '<ssid>' '<password>' > /etc/wpa_supplicant/wpa_supplicant.conf
# wpa_supplicant -B -i <device name> -c /etc/wpa_supplicant/wpa_supplicant.conf
# dhcpcd
# ping pingvinus.ru (проверяем, что все работает, пакеты идут)
После того, как интернет заработал, запускаем установщик командой void-installer. Следуем всем пунктам меню, выбираем в них нужные параметры, подтверждаем намерение и ждем окончания установки. Минималистично, лаконично и быстро — так можно описать процесс установки Void Linux.
Обновление, настройка и установка среды для запуска Hyprland
После первой загрузки, выполняем полное обновление системы:
# xbps-install -Su (запускаем дважды, если обновился xbps)
Подключаем репозитории Void:
# xbps-install -S void-repo-multilib void-repo-multilib-nonfree void-repo-nonfree
Подключаем репозиторий Hyprland.
— создаем файл в/etc/xbps.d/hyprland-void.conf следующего содержания:
repository=https://raw.githubusercontent.com/Makrennel/hyprland-void/repository-x86_64-glibc
— синхронизируем:
# xbps-install -Su
Устанавливаем Hyprland, а именно следующие пакеты:
hyprland, hyprland-devel, hyprland-protocols
Устанавливаем порталы и утилиты:
xdg-desktop-portal, xdg-desktop-portal-hyprland, xdg-desktop-portal-wlr, xdg-desktop-portal-lxqt, xdg-desktop-portal-gnome, xdg-desktop-portal-kde, xdg-desktop-portal-gtk, xdg-utils, xdg-user-dirs
Устанавливаем минимальный вариант xorg-minimal, который дополняем mesa, mesa-dri, meson, polkit
elogind будет установлен, как зависимость, а вот seatd нужно принудительно установить, и после не забыть добавить пользователя в группу, а также создать ссылку на автозапуск сервиса:
# usermod -aG _seatd <user.name>
# ln -s /etc/sv/seatd /var/service
В Void нужно привыкнуть к тому, что не всегда после установки пакета, его сервис добавится в автозапуск. Поэтому, не забываем:
# ln -s /etc/sv/polkitd /var/service
# ln -s /etc/sv/dbus /var/service
Без pipewire у вас Hyprland не будет нормально работать, хоть пакет и установится автоматом, запуск его нужно подготовить, а именно в ~/.bash_profile включить строчки типа:
if test -z "$XDG_RUNTIME_DIR"; then
if test! -d "XDG_RUNTIME_DIR"; then
mkdir $XDG_RUNTIME_DIR
chown $USER:$USER $XDG_RUNTIME_DIR
fi
export XDG_RUNTIME_DIR="/run/user/$(id -u $USER)"
fi
Создать директорию: mkdir -p /etc/pipewire/pipewire.conf.d
и добавить в нее симлинки на файлы конфигурации:
# ln -s /usr/share/examples/wireplumber/10-wireplumber.conf /etc/pipewire/pipewire.conf.d
# ln -s /usr/share/examples/pipewire/20-pipewire-pulse.conf /etc/pipewire/pipewire.conf.d
Запуск можно прописать в отдельный скрипт (pipewire.sh):
#!/bin/bash
check_and_start() {
if! pgrep -x "" >/dev/null; then
echo "Starting ..."
sleep 1 && &
else
echo " is already running"
fi
}
check_and_start "pipewire" "/usr/bin/pipewire"
… и в автозапуск Hyprland добавить:
exec-once = <path to>/pipewire.sh
Остальное — по-выбору. Остается после авторизации набрать:
# Hyprland
И вы — в системе. Можно автоматизировать процесс, установкой какого-нибудь менеджера дисплея или добавить следующий блок в файл ~/.bash_profile:
if shopt -q login_shell; then
[[ -f ~/.bashrc ]] && source ~/.bashrc
[[ -t 0 && $(tty) == /dev/tty1 &&! $DISPLAY ]] && dbus-run-session Hyprland
else
exit 1 # Somehow this is a non-bash or non-login shell
fi
Локали можно добавить после установки, отредактировав файл /etc/default/libc-locales. Не забываем переконфигурировать пакет:
# xbps-reconfigure --force glibc-locales
и внести изменения в системную конфигурацию, в файл /etc/locale.conf
LANG=ru_RU.UTF-8
Ну как-то так, достаточно просто, не правда ли?
Кому интересен мой конфиг, забрать можно тут, там и список необходимых пакетов есть (устанавливал всю систему с нуля именно отсюда):
https://gitlab.com/scorpp13/hypr-void.git
Работа
Работа в системе вызывает сплошное удовольствие.
Во-первых, все очень минималистично, ничего лишнего (у арч-а гораздо больше зависимостей).
Во-вторых, ну очень симпатичный и шустрый пакетный менеджер, он настолько интуитивен, что и привыкать не нужно (особенно после pacman).
В-третьих, рунит. Блин, какая же она простая и понятная и ко всему — реально быстрая. Смотрите сами, — это все, что нужно для управления сервисами:
# sv up <services>
# sv down <services>
# sv restart <services>
# sv status <services>
Добавить сервис в автозапуск — просто создай симлинк. Удобно создавать свои сервисы. В общем — песня, СИ и ничего больше!
После загрузки графического окружения (кстати можно скачать базу с xfce или установить другое популярное de), простой обыватель не увидит различий с другими дистрибутивами. Софта — более чем, если кому захочется прям выйти за рамки — есть "переводчик" xdeb, позволяющий установить любой .deb-пакет в систему, предварительно переконвертировав его для использования с xbps:
https://github.com/xdeb-org/xdeb
Для кого? Дистрибутив вполне может быть использован опытным пользователем в качестве рабочей станции. Все для этого у него имеется. Для новичков будет сложноват, но может оказаться полезным инструментом с точки зрения освоения линукс.
Заключение
А заключения то не будет. Продолжаю свой путь в мир "пустоты"
Комментарии
13:31
Плюсану и пойду читать...
P.S. А я ждал подобного от Скорпия!.. - Дождался наконец! спсб! ... Пошел читать.
14:44
— Можно … Но деньги вперёд!
15:02
Гы-ы!..
13:36
13:38
13:41
14:31
09:53
У меня не получилось его установить, что очень печально. Пробовал и с предустановленной xfce и обычный вариант. Выдаёт ошибку во время установки, что не может примонтироваться. На днях установил NixOS, но мининоут не потянул его. При первой же сборке конфига разогрелся и завис. Вернулся снова на Арч.
20:32
Символично бы получилось, Ден - сбитый летчик))
13:47
Как всегда, отлично! Но...
"Природа не терпит пустоты" ©)))
14:19
Проникся ... терниями!.. И подумал: "Нет, не поднять мне вас! ©"
P.S. Повспоминаю Arch пока...
14:46
16:29
07:22
07:25
14:47
16:25
14:52
Напишу что-нибудь попроще с надеждой, что новые участники подтянутся.
07:21
16:37
PLASMA, GNOME, XFCE, LXQT-Kwin
https://sourceforge.net/projects/agarimos/files/
20:29
Этот сервер размещает неофициальные ночные образы живых дисков Void Linux, которые используют установщик void-pi
void-live-cinnamon-unofficial
void-live-e17-unofficial
void-live-gnome-unofficial
void-live-i3-unofficial
void-live-kde-unofficial
void-live-lxqt-unofficial
void-live-mate-unofficial
void-live-unofficial
void-live-xfce-unofficial
Обновление образов происходит автоматически каждый день
07:39
скрипт (pipewire.sh):
#!/bin/bash
check_and_start() {
if ! pgrep -x "$1" >/dev/null; then
echo "Starting $1..."
sleep 1 && $2 &
else
echo "$1 is already running"
fi
}
check_and_start "pipewire" "/usr/bin/pipewire"
18:56
+
15:37
12:45
15:22
Работает он криво, и меня это не устраивало. И, отчасти по этому, перешёл на fuzzel
21:53
Тут дело вкуса, но менять void только из-за некоторых пакетов. Есть же переводчик deb-пакетов, уж среди них найти нужный... NixOS - а стоит ли оно того? Ведь там совершенно иной подход к установке софта и его зависимостей.