Добрый день дорогой читатель, данное повествование не является
истиной в последней инстанции, это некая инструкция по установке (в
основном для собственного пользования) XFCE на Artix Linux с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности.
XFCE - это «старая добрая классика», которая умудряется оставаться
актуальной десятилетиями. Ее часто называют «золотой серединой» между
тяжеловесными средами такие как GNOME, KDE и спартанскими оконными менеджерами.
Основные достоинства за которые её любят:
Феноменальная стабильность. В отличие от GNOME, где каждое крупное обновление может «сломать» расширения, XFCE меняется крайне консервативно. Вы можете настроить систему один раз и быть уверенным, что через два года она будет выглядеть и работать точно так же.
Легкость и скорость. Она потребляет значительно меньше оперативной памяти и ресурсов процессора, чем современные аналоги. На Artix Linux чистая сессия XFCE может занимать всего 400–600 МБ RAM, что делает её идеальной для старых ноутбуков или пк, где важна производительность.
Модульность. XFCE состоит из отдельных компонентов, которые слабо зависят друг от друга.
- Thunar — один из самых быстрых и понятных файловых менеджеров.
- Xfce-panel — невероятно гибкая панель, которую можно превратить во что угодно: от дока в стиле macOS до классической панели Windows 95.
- Если вам не нравится какой-то элемент, его легко заменить на аналог из другой среды.
Понятная настройка. Все настройки сосредоточены в одном месте («Диспетчер настроек»). Вам не нужно лежать в дебрях реестра или править сложные JSON-конфиги — почти всё делается через графический интерфейс, но при этом система остается предсказуемой.
Отсутствие «лишнего» XFCE не навязывает вам особый стиль работы. Здесь нет поиска «по всему компьютеру» как в GNOME, который индексирует файлы и грузит диск, или сложных эффектов. Она просто дает вам рабочий стол и не мешает заниматься делами.
В Artix Linux XFCE пользуется особой популярностью, так как философия «простоты и контроля» этой графической среды идеально совпадает с философией дистрибутива без systemd.
1. Простой способ: Использование образа системы с XFCE
Если хотите избежать ручной настройки, скачайте официальный образ Artix с пометкой XFCE .
- Выберите ISO с нужной системой инициализации (OpenRC, runit, s6 или dinit).
- Запустите графический инсталлятор Calamares, который автоматически установит систему и настроит XFCE «из коробки».
2. Установка на базовую систему
Если у вас уже установлена базовая система без графической оболочки, и есть интерес по копаться в недрах конфигов установив и настроив
самостоятельно то перейдем к выполнению следующих шагов:
Опционально. Отсортируйте зеркала репозитория предварительно установив свежий пакет зеркал artix-mirrorlist, дабы избежать проблем со скачиванием, метод описан в статье "Artix решение проблем с зеркалами или ведро дёгтя в кружке мёда"
Обновите Artix Linux, выполнив до боле известную команду:
sudo pacman -Syu
Установка пакетов XFCE
после успешного обновления Artix Linux приступим к установке XFCE выполнив три основных этапа: установкапакетов, настройка дисплейного менеджера (входа в систему) и активация сервисов (так как в Artix нет systemd). Но сначала определимся с пакетами
- xorg xorg-server xorg-xinit - данные пакеты относятся к X11.
- xfce4 xfce4-goodies - пакеты XFCE
- lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings - дисплейный менеджер и пакет для его настройки
- networkmanager network-manager-applet - менеджер управления сетевыми интерфейсами с апплетом.
переходим непосредственно к установке необходимых пакетов
sudo pacman -S xorg xorg-server xorg-xinit xfce4 xfce4-goodies lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings networkmanager network-manager-applet
как видим оболочка имеет скромные размеры
Установка дисплейного и сетевого менеджера (LightDM и NetworkManager)
Для управления сервисами в той или иной системе инициализации потребуется доустановить соответствующие пакеты с суффиксом названия системы инициализации:
- lightdm-dinit networkmanager-dinit - для dinit
- lightdm-openrc networkmanager-openrc - для openrc
- lightdm-runit networkmanager-runit - для runit
- lightdm-s6 networkmanager-s6 - для s6
Думаю тут ясно что к чему приступим к установке
Для dinit:
sudo pacman -S lightdm-dinit networkmanager-dinit
Для openrc:
sudo pacman -S lightdm-openrc networkmanager-openrc
Для runit:
sudo pacman -S lightdm-runit networkmanager-runit
Для S6:
sudo pacman -S lightdm-s6 networkmanager-s6
Запуск дисплейного и сетевого менеджера (LightDM и NetworkManager)
для dinit
для начала выключим dhcpcd его мы заменим NetworkManager следует выполнить эти команды:
sudo dinitctl disable dhcpcd
sudo dinitctl stop dhcpcd
sudo dinitctl status dhcpcd
приступаем к запуску NetworkManager выполнив следующие команды
sudo dinitctl enable NetworkManager
sudo dinitctl start NetworkManager
sudo dinitctl status NetworkManager
для запуска XFCE достаточно включить дисплейный менеджер и он сразу же запустится
sudo dinitctl enable lightdm
не настроеный дисплейный менеджер выглядит достаточно сурово
хоть и не настроен, но достаточно симпотично выглядит
немного внешнего вида
для openrc
проведем аналогичные действия, выключив dhcpcd и заменив его NetworkManager следует выполнить эти команды:
sudo rc-service dhcpcd stop
sudo rc-update del dhcpcd default
sudo rc-service dhcpcd status
приступаем к запуску NetworkManager выполнив следующие команды
sudo rc-update add NetworkManager default
sudo rc-service NetworkManager restart
sudo rc-service NetworkManager status
для запуска KDE Plasma достаточно включить дисплейный менеджер, он запустится после рестарта соответствующего демона
sudo rc-update add lightdm default
sudo rc-service lightdm restart
для runit
проведем аналогичные действия, выключив dhcpcd и заменив его NetworkManager следует выполнить эти команды:
sudo sv stop /run/runit/service/dhcpcd
sudo sv satus /run/runit/service/dhcpcd
sudo rm /run/runit/service/dhcpcd
приступаем к запуску NetworkManager выполнив следующие команды
sudo ln -s /etc/runit/sv/NetworkManager /run/runit/service/
sudo sv start /run/runit/service/NetworkManager
sudo sv satus /run/runit/service/NetworkManager
для запуска достаточно включить дисплейный менеджер и он сразу же запустится
sudo ln -s /etc/runit/sv/lightdm /run/runit/service
Для S6
выполним аналогичные действия что и в других системах инициализации выполнив эти команды:
sudo rm /etc/s6/adminsv/default/contents.d/dhcpcd
sudo touch /etc/s6/adminsv/default/contents.d/NetworkManager
sudo touch /etc/s6/adminsv/default/contents.d/lightdm
sudo s6-db-reload
sudo reboot
Установка пакетов и запуск звуковых сервисов средствами XFCE
Поскольку Artix использует системы инициализации отличные от
systemd и в них нет привычного автоматического запуска пользовательских
сервисов, то сервисы придется установить и поднимать в ручную.
Рекомендуется использовать PipeWire, что бы сервисы корректно работали их cледует запускать от имени пользователя, а не root что бы звуковой сервер получит все нужные переменные окружения вашей сессии.
Для начала предварительно проверим в каких группах состоит пользователь. Это можно проверить разными способами, результат будет одинаков. Приступим
groups $USER
или же
id -Gn $USER
данные команды выводят список групп в каких состоит текущий
пользователь (использовал переменную которая содержит имя текущего
пользователя). Если пользователь не состоит в таких группах как audio и
video (на всякий случай) то этот нюанс следует исправить командой
sudo usermod -aG audio,video $USER
groups $USER
Далее установим следующие пакеты
sudo pacman -S pipewire pipewire-pulse pipewire-alsa wireplumber pavucontrol xfce4-pulseaudio-plugin
Самый простой способ запуска звуковых сервисов это через XFCE по бишь входим в программы зайти в настройки далее сеанс и запуск на вкладке автозапуск приложений прописать запуск пакетов pipewire pipewire-pulse wireplumber. Это самый простой способ, но давай те попробуем через систему инициализации так как есть пакеты запуска сервисов.
DInit
Dinit по сравнению с другими системами инициализации более автоматизирован. В Artix поддерживает полноценные пользовательские сервисы через turnstile или dinit-user-spawn, воспользуюсь вторым.
Установим дополнительные пакеты с суффиксом -dinit для запуска сервисов
sudo pacman -S pipewire-dinit pipewire-pulse-dinit wireplumber-dinit dinit-user-spawn
Включим dinit-user-spawn для дальнейшего запуска серверов от имени пользователя:
sudo dinitctl enable dinit-user-spawn
далее от имени пользователя запускаем звуковые сервисы
dinitctl enable pipewire
dinitctl enable pipewire-pulse
dinitctl enable wireplumber
и перезапускаем систему
звук должен заработать. Проверим командой
pactl info
Должно быть: Server Name: PulseAudio (on PipeWire x.x.x).
если не появился аплет на панеле добавьте с помощью контекстнового меню щелкнув правой кнопкой мыши на панели, выбрав панель далее добавить новые элементы найдите в списке модуль Pulse Audio
OpenRC
Установим дополнительные пакеты с суффиксом -openrc для запуска сервисов
sudo pacman -S pipewire-openrc pipewire-pulse-openrc wireplumber-openrc
далее от имени пользователя добавляем в автозапуск звуковые сервисы
rc-update add pipewire default --user
rc-update add pipewire-pulse default --user
rc-update add wireplumber default --user
как вариант можно попробовать перезапустить сервисы и посмотреть появится ли звука выполнив команды
rc-service pipewire restart --user
rc-service pipewire-pulse restart --user
rc-service wireplumber restart --user
rc-service pipewire status --user
rc-service pipewire-pulse status --user
rc-service wireplumber status --user
иначе проще перезапустить систему
как видим сервис стартанул и звук должен заработать. Проверим командой
pactl info
Должно быть: Server Name: PulseAudio (on PipeWire x.x.x).
если не появился аплет на панеле, добавьте с помощью контекстнового меню щелкнув правой кнопкой мыши, выбрав панель далее добавить новые элементы найдите в списке модуль Pulse Audio
Runit
Опять же повоторюсь, самый простой способ запуска звуковых сервисов это через XFCE по бишь программы зайти в настройки далее сеанс и запуск на вкладке автозапуск приложений прописать запуск пакетов pipewire pipewire-pulse wireplumber. Это самый простой способ. И в данном случае воспользуемся им так как нет пакетов запуска в репозитории для системы инициализации runit
если не появился аплет на панеле добавьте с помощью контекстнового меню щелкнув правой кнопкой мыши, выбрав панель далее добавить новые элементы найдите в списке модуль Pulse Audio
S6
Опять же повоторюсь, самый простой способ запуска звуковых сервисов это через XFCE по бишь программы зайти в настройки далее сеанс и запуск на вкладке автозапуск приложений прописать запуск пакетов pipewire pipewire-pulse wireplumber. Это самый простой способ. И в данном случае воспользуемся им так как нет пакетов запуска в репозитории для системы инициализации s6
если не появился аплет на панеле добавьте с помощью контекстнового меню щелкнув правой кнопкой мыши, выбрав панель далее добавить новые элементы найдите в списке модуль Pulse Audio
wayland-сессия в xfce4
Wayland в XFCE (версия 4.20) носит экспериментальный характер и работает крайне не стабильно. Поскольку у XFCE пока нет собственного полноценного Wayland-композитора, разработка xfwl4 продолжается. Для запуска графической среды в этом режиме требуется сторонний композитор. В данный момент дела обстаят так
- Экспериментальная поддержка: Она официально появилась в версии XFCE 4.20 (релиз в декабре 2024 года).
- Отсутствие встроенного композитора: В XFCE 4.20 всё еще нет собственного Wayland-композитора (аналога xfwm4). Для запуска сессии необходимо использовать сторонние решения, такие как Labwc или Wayfire но оба варианта крайне не стабильно ведут себя.
Что получаем в действительности
- Ядро системы: Большинство основных компонентов (панель, рабочий стол, файловый менеджер Thunar) уже портированы и могут работать на Wayland без XWayland.
- Проблемные зоны:
Рабочие места: Поддержка виртуальных рабочих столов пока отсутствует или ограничена.
Настройки: Многие диалоги (мышь, клавиатура) не работают, так как эти параметры теперь управляются напрямую композитором.
Скриншоты и блокировка: Встроенный xfce4-screenshooter поддерживает только полноэкранные снимки; xfce4-screensaver пока не совместим.
Будущее релизы XFCE 4.22 и далее. Разработчики отказались от идеи адаптировать старый xfwm4 под Wayland. Вместо этого решили поступить иначе:
- Новый композитор Xfwl4: Начата разработка собственного композитора на языке Rust (с использованием библиотеки Smithay).
- Сроки: Ожидается, что полноценная и стабильная сессия с собственным композитором появится в версии XFCE 4.22 (ориентировочно в 2026 году).
Попытавшись настроить запуск wayland-сессии в XFCE4 не увенчался успехом, увы, по этому не вижу смысла описывать свои действия. Буду ждать Xfwl4.
Cortile тайлинг для xfce4
Небольшой бонус, для любителей тайлинга есть Cortile, это менеджер автоматического тайлинга, который работает поверх стандартного оконного менеджера Xfce (Xfwm4). В отличие от классических тайловых менеджеров (i3, bspwm), он не заменяет вашу среду, а просто добавляет функции умной расстановки окон в X11.
Установка Cortile есть два варианта собрать из исходников либо взять из AUR Arch Linux, но предварительно установив менеджер пакетов например yay. Процесс описан в статье "Установка Arch Linux часть 2 (AUR установка yay)". Далее устанавливаем нужный пакет командой ниже:
yay -S cortile
Файл настроек обычно находится по пути ~/.config/cortile/config.toml.
Чтобы тайлинг работал сразу после включения компьютера, добавьте команду cortile в Сеансы и запуск в Автозапуск приложений.
Небольшие рекомендации. Чтобы Cortile работал корректно и не конфликтовал со встроенными функциями, рекомендуется изменить пару настроек:
- Отключите прилипание: В Диспетчере окон (Window Manager) во вкладке Дополнительно уберите галочки с Прилипание окон к другим окнам и Прилипание окон к краям экрана.
- Фокус: Лучше использовать фокус по клику, так как фокус за мышью может вызвать рывки окон при их автоматическом перемещении.
За наводку на cortile хочу поблагодарить Валеру Е.
За основу взято ArtixWiki, ArchWiki и темы форумов по данной тематике, а так же собственный опыт и наработки.
За сим откланиваюсь...