Hyprland — в массы или как легко научиться устанавливать и настраивать этот оконный менеджер
Hyprland набирает популярность и интерес к нему растет с каждым днем. В продолжение своего скриншота, решил поделиться информацией по установке и настройке менеджера. За базу выбран Arch Linux, на примере которого разберем все этапы установки системы и последующего развертывания на ней популярной графической оболочки.
Установка базовой системы Arch Linux
- Качаем iso-образ archlinux с официального сайта любым удобным для вас способом.
- Готовим загрузочный диск, опять же любым удобным для вас способом. Мне симпатизирует ventoy, статья про который есть на нашем сайте: https://pingvinus.ru/program/ventoy
- Необходимо определиться с типом установки: uefi или legacy и выставить соответствующие настройки в меню bios. В моем примере система устанавливается на виртуальной машине в legacy mode. Следует отметить, что и в том и в другом случае есть возможность настройки «двойной загрузки» системы.
- Загружаемся с live-образа archlinux и следуем шагам установки системы. В Arch Wiki все подробно расписано. Кому нравится установка с использованием скрипта archinstall — его право, в данной статье разберем базовый по-шаговый вариант установки системы.
- Проверяем и, при необходимости, настраиваем подключение к интернету. У кого сетевое LAN-подключение — дополнительных действий не требуется. У кого wifi, потребуется его настройка. По-скольку iwd включен в live-образ, то рекомендую воспользоваться им для быстрой настройки сети, как описано тут: https://pingvinus.ru/note/iwd-conf
# ping pingvinus.ru
* Если пингуется, - делать больше ничего не нужно, выход из команды CTRL+C
Проверка и включение питания wlan при настройке wifi (кому потребуется):
# rfkill *смотрим состояние беспроводных адаптеров wifi (wlan0), block - заблокирован
# rfkill unblock wlan0 *разблокировка адаптера wlan0
# ip link set wlan0 up *включение адаптера, если он был выключен/заблокирован
# ip link show dev wlan0 *проверка состояния адаптера wlan0
!!! Для iwd потребуется настройка сервера имен, например запустив:
# dhcpcd
- Подготавливаем разделы и форматируем их. Для legacy-mode ВАЖНО создать раздел bios-boot размером не менее 5 Мбайт и не форматировать его (если установка производится на GPT-диск, совместно с другими ОС; иначе загрузчик пропишется в MBR диска с соответствующей тому разметкой), а также минимум один linux раздел под корневую фс. SWAP и т.д. — по желанию и необходимости. Сделать это можно с помощью cfdisk, fdisk. Ниже пример создания новых разделов под установку ArchLinux с использованием GPT разметки диска с помощью утилиты fdisk:
- Форматируем выделенные разделы и монтируем их:
* Первый раздел bios-boot размером 5 Мбайт не форматируем и не монтируем, он нужен для установки загрузчика
** Для UEFI потребуется создание специального efi-раздела, форматирование его и монтирование в /mnt/boot
В нашем примере:
# mkfs.ext4 /dev/vda2
# mount /dev/vda2 /mnt
Если создавался swap-раздел, то форматируем его и подключаем:
# mkswap /dev/<путь к разделу>
# swapon /dev/<путь к разделу>
- После монтирования раздела(ов), запускаем скрипт развертывания базовой системы:
Добавил мета-пакет base-devel, который потребуется для установки Hyprland, а также редактор nano, менеджер сети NetworkManager и утилиту wget:
# pacstrap -K /mnt base base-devel linux linux-firmware networkmanager wget nano
* Скрипт автоматически запустит создание initramfs. Специально запускать mkinitcpio не нужно.
- Генерируем таблицу настроек параметров монтирования будущей системы:
# genfstab -U /mnt >> /mnt/etc/fstab
* Ключ -U для идентификации по UUID; L - для идентификации по меткам
Проверяем сгенерированный файл, при необходимости вносим в него изменения:
# nano /mnt/etc/fstab
- Заходим во вновь созданную систему, настраиваем часовой пояс, время, локали, языки:
# arch-chroot /mnt
* "Москва" выбрана в качестве примера:
# ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
# hwclock --systohc
Редактируем файл и убираем комментарии (#) с тех языков, для которых необходимо будет сгенерировать локали (en_US.UTF-8 ru_RU.UTF-8)
# nano /etc/locale.gen
Генерируем локали:
# locale-gen
Создаем файл конфигурации для различных языков:
# nano /etc/locale.conf
________________
LANG=en_US.UTF-8
LANG=ru_RU.UTF-8
----------------
Создаем файл конфигурации для консоли (иначе будут кракозябры вместо русских букв):
# nano /etc/vconsole.conf
________________
KEYMAP=ru
FONT=cyr-sun16
----------------
- Задаем имя хоста, подключаем сетевой менеджер, меняем пароль суперпользователя:
# nano /etc/hostname
________________
<имя хоста>
----------------
Настраиваем автозапуск сервиса менеджера сетей:
# systemctl enable NetworkManager
Меняем пароль root:
# passwd
<задаем новый пароль>
<подтверждаем пароль>
- Устанавливаем загрузчик, в примере будет grub legacy:
!!! Для UEFI настройки другие, читайте wiki
# pacman -S grub
# grub-install /dev/vda
# grub-mkconfig -o /boot/grub/grub.cfg
- Выходим из системы, размонтируем все разделы, перезагружаем компьютер:
# exit
# umount -R /mnt
# reboot
- После успешной загрузки, создаем нового пользователя (не root) со своим домашним каталогом, прописываем его в нужные группы, указываем shell, задаем пароль.
# useradd -m -G audio,video,wheel -s /bin/bash <имя пользователя>
* Ключ -m создает пользователю домашний каталог,-G добавляет пользователя в группы, -s устанавливает shell
Задаем пароль своему пользователю командой:
# passwd <имя пользователя>
<задаем новый пароль>
<подтверждаем пароль>
- Так как новый пользователь находится в группе wheel, он может пользоваться командой sudo. Нужно только не забыть раскомментировать нужную строку в файле sudoers:
# EDITOR=nano visudo
Установка готовой сборки Hyprland
- Когда пользователь создан и ему открыты возможности работы под sudo, самое время залогиниться в системе под новым пользователем, подготовить домашний каталог для установки и развертывания Hyprland. Пакет dotfiles-scorpii содержит все необходимые скрипты и готовые каталоги настроек для полноценной установки рабочей версии Hyprland в вашу вновь созданную систему.
Выходим из под root и логинимся в систему под пользователем:
# exit
# <имя пользователя>
<пароль>
Проверяем содержимое домашнего каталога:
# ls -a
Создаем папку Downloads и переходим в нее:
# mkdir Downloads
# cd Downloads
Скачиваем архив dotfile-scorpii, используя ранее установленный пакет wget.
Во избежание ошибок, прошу точно копировать все символы, приведенные ниже:
# wget "https://drive.google.com/u/1/uc?id=1_DTB8c1hJEUG0uwNjwUcApaCOHTooFpz&export=download" -O "dotfiles.tar"
Проверяем, что все скачалось и распаковываем архив:
# ls -a
# tar -xvf dotfiles.tar
- При удачном завершении всех операций из предыдущего пункта, переходим собственно к развертыванию настроенной версии Hyprland в вашу систему. Опять же, если кому сподручней скачать установочный архив на рабочей системе в браузере, а потом его подкинуть в папку новой системы, то пожалуйста — ссылка на gdrive: dotfiles-scorpii
Переходим в каталог установочного скрипта:
# cd dotfiles-scorpii
Запускаем скрипт установки и следуем его указаниям:
# ./install.sh
По окончании установки скрипт предупредит вас о необходимости проверить и скорректировать: разрешение экрана вашего монитора по адресу ~/dotfiles/hypr/conf/monitor.conf
Важно! После установки dotfiles-scorpii и настройки разрешения экрана монитора, обязательно нужно выйти из системы и перезагрузить компьютер.
# exit
# root
<пароль root>
# reboot
Настройка Hyprland
Если все установлено правильно, то после загрузки и авторизации пользователя в tty, остается всего лишь набрать команду >Hyprland для запуска графической среды оконного менеджера. Для работы переключателя языков по клику на значке (по нажатию CTRL+SHIFT и так будет работать), необходимо установить модель вашей клавиатуры, выполнив команду >hyprctl devices и внести корректировки в файл настроек waybar по адресу: ~/dotfiles/waybar/modules.json
Проверяем, что весь функционал работает. По левому клику мыши на значках waybar запускается: меню программ, выбор тем/обоев, вызов менеджера клипборда, смена раскладки, вызов скрипта обновления системы, запуск nmtui, blueman, pavucontrol. По среднему клику вызываются подсказки сочетаний клавиатуры, очистка системы/клипборда, выключение адаптеров wifi/bluetooth... Думаю, сами разберетесь. Смена обоев влечет за собой корректировку цветов, на выбор предложена тема с 4-мя вариантами расцветок. Также накидал обоев в папку ~/dotfiles/wallpapers. Оболочка получилась функциональная и достаточно дружелюбная. Надеюсь вам понравится!
В качестве заключения
Снимок системы, такой какой она будет у вас после установки:
Обновлений делать не планирую, я же не разработчик, но обещаю поддерживать в актуальном состоянии архив dotfiles-scorpii на gdrive.
p.s. Некоторые необязательные пакеты, устанавливаемые со скриптом, можно посмотреть и изменить "под себя" (если знаете, что делаете и как потом поменять настройки системы под ваши пакеты) в файле по адресу: 'dotfiles-scorpii/.install/hyprland-packages.sh' Тут можно на выбор играться с: менеджером файлов, браузером, медиаплеером, темами иконок/курсора, калькулятором, шрифтами... Сохранил запросы, по ходу установки, на изменение файлов: .bashrc; изменение строки приветствия tty, деактивацию оконного менеджера, если он установлен; активацию сервиса bluetooth - мало ли, кто-то будет не с "нуля" ставить на рабочую систему или кому-то не нужны некоторые из этих вещей. Neovim/vim: хоть сам и не пользуюсь ими, - оставил с настроенными конфигами автора, может кому сгодятся. Alacritty, наоборот удалил; вместо него теперь Kitty с моими минимальными настройками на использование в качестве всплывающего терминала поверх других окон при вызове скриптов обновления/очистки/зеркал/nmtui/btop с панели waybar. Добавил в установку по-умолчанию btop, как прокачанный вариант top; при перегреве процессора (при t > 80C) по клику на всплывающую иконку waybar - вызывается окно kitty с btop (из которого, например, можно сразу прибить приложение, приводящее к излишней нагрузке).
p.s.p.s. Пока ждал публикацию, добавил скрипт на установку и настройку zram в размере 50% от RAM. Изменить конфиг zram можно по адресу: '/etc/systemd/zram-generator.conf' Также добавил удаление временных файлов и каталогов (~/yay и ~/dotfiles-tmp) по завершению установки. Перестал работать swaylock-effects (видимо поломался после обновления), заменил на пакет swaylock-effects-git, проверил работоспособность на VM + добавил в скрипт затемнение экрана и исправил включение экрана по движению мыши (не работало после ухода в ждущий режим). Добавил красок и интерактивности скриптам, используемым для разворачивания Hyprland: все запросы теперь идут через gum, сообщения по ходу установки выводятся в цвете. Добавил скрипт для установки настроенного .bash_profile на автоматический запуск Hyprland после авторизации в tty в качестве обычного пользователя + некоторые оптимизации по настройкам из моей рабочей системы. На этапе установки теперь предлагается изменённая конфигурация pacman.conf + добавил скрипт для обновления списка зеркал и выбора 5 быстрейших (Россия и Германия, которые легко изменить на свои, внеся корректировки в скрипт) с последующей синхронизацией базы данных. Теперь левый клик по кнопке обновлений - собственно обновление, правый - новый список зеркал с последующей синхронизацией базы данных, средний - очистка кэша pacman и удаление пакетов-"сирот". Кому потребуется настройка поведения кнопки питания, - изменить конфигурацию можно по адресу: '/etc/systemd/logind.conf'. Для себя раскомментировал и поменял настройки следующих параметров:
HandlePowerKey=suspend
HandlePowerKeyLongPress=poweroff
Думаю пора заканчивать, ибо так можно продолжать бесконечно. Тем более, что версия dotfiles-scorpii больше не будет обновляться; она отлажена, проверена и полностью функциональна. Все изменения теперь сохраняются в другом dotfiles, который отражает мой текущий вариант (real time) и не доступен широкому кругу. Базового варианта, - более чем достаточно для старта и начала настройки под свои предпочтения.
Комментарии
10:02
Кстати, по поводу Pacman.conf: для себя вношу следующие изменения:
Color
ILoveCandy
VerbosePkgLists
DisableDownloadTimeout
ParallelDownloads = 5
Вопрос с зеркалами можно решить изящнее, установив пакет reflector и запустив его службу с обновлением и ранжированием списка зеркал раз в неделю. У reflector есть свой конфиг вот здесь: /etc/xdg/reflector/reflector.conf, в нем задается количество зеркал и параметры их сортировки. Или под скриптом в статье понимается как раз это?)
15:43
https://ibb.co/Nst24bW
17:48
18:45
11:39
11:55
17:45
Но можно подобрать подходящую версию бинарника среди релизов на гит-репозитории.
17:51
12:34
С какого-то момента стал читать как виндузятник: alacritty не надо, проживу без vim, zram ни к чему, да и не такая уж у меня масса, чтобы в неё Hyprland принимать.
Рекомендую добавить зеркала из Финляндии и Швеции - они не уступают, а то и обгоняют зеркала из Германии.
Картинки понравились, цвета, шрифты и нечто объёмное, напоминающее спидометр или тахометр без стрелки.
14:43
20:21
Служба занимается сортировкой зеркал всего мира. Если в reflector.conf разрешить только зеркала из Finland, Germany, Russia, Sweden, то сортировка будет заканчиваться гораздо быстрее.
10:05
11:03
11:49
В связи с этим и был мой комментарий.
12:00
Прохожий комментатор ошибочно предположил, что это ручная сортировка, на что и было сообщение, что она не ручная, а обычная автоматическая, да ещё и результат будет быстрее.
Ну а вам показалось, что обсуждается скорость. Кстати, обычное дело, апеллировать тому, что не утверждалось.
12:08
12:32
Ведь если бы разговор был про скорость сортировки, то к зеркалам из Германии и России не нужно ничего добавлять, наоборот, напрашивается удаление Германии (о как звучит -)).
13:31
Скорость зеркала - вот тема, у меня быстрей работают одни, у вас (в Большой России) - другие. И зеркала не нужно каждый раз менять при запуске pacman -Syu; - раз выбрал, отсортировал и пользуйся. Будут проблемы - поменяешь.
13:49
13:58
19:36
20:06
15:32
17:44
# curl -s "https://archlinux.org/mirrorlist/?country=SE&country=DE&protocol=https&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 10 - | sudo tee /etc/pacman.d/mirrorlist
19:18
19:21
Ведь тут можно применить разные варианты...
03:08
Да, заметил, что scorpii предпочитает канонично из wiki. Но и вы сразу узнаёте строки оттуда. Да, и вон уже Швеция рядом с Германией появилась.
18:53
Зеркала самые быстрые как раз Германия (ну или Франция), мы с Вами совсем в разных местах РФ живем...
Kitty просто удобней, vim/nvim - мне не надо, я же не кодер, у меня совсем другая профессия. Опять же, каждый сам волен выбирать, что ему нравится, разве не так? Или всех под одну?... Ну, Вы поняли.
19:17
19:58
20:02
20:03
для того, кто регулярно пользуется - возможно
тому, кому надо раз в год (условно) - вряд ли
тоже самое можно и про менеджеры файлов сказать, большинство все равно на гуи сидят и им, что mc, что ranger - одно и тоже.
20:20
20:31
20:47
А главный секрет использования консольных ФМ на ВМ - ими можно и не пользоваться.
20:52
20:56
21:01
потом был псевдотайлинг на enlightenment и переделанном гноме popos, где кстати стоит отметить, сделано добротно и удобно.
и только потом hyprland, который сначала также не зашел, но собрав волю в кулак, установил, настроил, понравилось - решил поделиться ))))
21:13
21:42
21:18
Если ограничить зеркала странами Finland, Germany, Russia, Sweden, то после сортировки окажется, что зеркала из Скандинавии составляют хорошую конкуренцию. Это ожидаемо, оттуда идут магистральные каналы.
Семейство vim - известная тема. Некоторые живут в нём, но гораздо больше людей проживут без него. Про Kitty согласен - удобная штуковина.
00:26
Вы же внимательно смотрели скриншоты, на одном из них у меня как раз запущен neovim в качестве редактора настроек waybar. Поэтому и оставил в системе, но честно написал, что крайне мало и редко использую.
Alacritty популярен стал в последнее время. но ощутимых преимуществ перед kitty я не вижу, более того последний легко настроился на режим float по-умолчанию (поверх остальных окон), в качестве основного мной предложен xfce4-terminal, хотя и не навязываю его; тут каждый волен выбирать по своему вкусу. В моей системе kitty выступает там, где запускаются bash-scripts и где требуется posix совместимость. xfce4-terminal по-умолчанию запускается в fish-shell
20:13
13:27
17:46
19:16
20:21
20:04
23:06
07:46
08:09
20:48
21:18
22:29
00:32
(арч сам завелся, сборка хайпера нет)
15:12
17:16
16:15
23:34
https://gitlab.com/scorpii1/hyprland
20:28