Создание кастомного рабочего стола в Linux
Зачем делать собственный DE
Gnome и KDE — полноценные окружения с набором модулей, интегрированными настройками и визуальными компонентами. Это удобно, но порой нужно меньше: проще, быстрее или просто другой внешний вид. Собранный вручную DE позволяет:
- Загружать только нужные процессы.
- Быстро реагировать и экономить ресурсы.
- Комбинировать любимые инструменты (Compiz, Docky, Gnome-Do и т. п.).
Определение: DE (desktop environment) — набор программ и служб, обеспечивающих рабочий стол: менеджер окон, панель, средства запуска приложений, менеджер обоев и пр.
Что вам понадобится
Чтобы рабочая среда была функциональной, нужны несколько ролей и подходящие приложения для них:
- Менеджер окон (например, Compiz, Metacity, Openbox)
- Лаунчер приложений (Gnome-Do, Kupfer, Rofi)
- Панель или док (Cairo Dock, Docky, XFCE panel)
- Менеджер обоев (hsetroot, feh)
- Дополнительно: апплеты панели, мониторинг (Conky), виджеты
В этом руководстве мы используем Compiz, Gnome-Do, Cairo Dock и hsetroot как пример набора. Это не обязательный набор — выбирайте по вкусу и задачам.
Установка базовых пакетов
В большинстве дистрибутивов нужные пакеты доступны в стандартных репозиториях. Для Debian/Ubuntu-подобных систем пример установки:
sudo apt-get install compiz compiz-plugins gnome-do cairo-dock hsetrootЕсли вы пользуетесь другой системой, установите эквивалентные пакеты через менеджер пакетов дистрибутива.
Важно: названия пакетов могут отличаться по дистрибутивам; уточните репозиторий перед установкой.
Методология: как мы будем действовать
- Выбрать компонент для каждой роли (менеджер окон, док, лаунчер и т. д.).
- Создать исполняемый скрипт, который запускает эти программы последовательно, отправляя фоновые процессы в фоновый режим (через &).
- Создать файл .desktop в /usr/share/xsessions, который укажет GDM как запускать этот скрипт.
- Выход из сессии и выбор нового сеанса в диспетчере входа.
Мини-методология: планируйте стартовые программы, тестируйте локально, затем подключайте через GDM.
Создание списка автозапуска (скрипт)
Откройте любой текстовый редактор и перечислите команды запуска — одну в строку. Все строки, кроме последней, должны заканчиваться символом & (амперсанд). Это переводит процесс в фон и позволяет оболочке продолжить выполнение следующих команд.
Почему важно: без & оболочка дождётся завершения первой программы, и следующие компоненты не загрузятся.
Пример простого скрипта customDE.sh:
#!/bin/bash
# Установить обои
hsetroot -fill /usr/share/backgrounds/mywallpaper.jpg &
# Запустить Compiz как менеджер окон
compiz --replace &
# Запустить панель/док
cairo-dock &
# Запустить лаунчер приложений
gnome-do &
# Дополнительные демоны
# conky &
# Если нужно — дождаться завершения фоновых процессов (обычно не требуется)
waitСохраните файл в вашем домашнем каталоге, например /home/ваш_пользователь/customDE.sh, и сделайте его исполняемым:
chmod +x /home/ваш_пользователь/customDE.sh
ALT: Снимок текстового редактора с примером скрипта customDE.sh, показывающий строки запуска hsetroot, compiz и cairo-dock.
Шаблон .desktop для GDM
Чтобы сеанс появился в списке GDM, создайте файл с расширением .desktop в каталоге /usr/share/xsessions. Важно: для корректной работы поля Name и Exec должны быть корректными.
Пример файла /usr/share/xsessions/custom.desktop:
[Desktop Entry]
Name=CustomDE
Comment=Мой кастомный рабочий стол
Exec=/home/ваш_пользователь/customDE.sh
TryExec=/home/ваш_пользователь/customDE.sh
Type=Application
X-LightDM-DesktopName=CustomDEСохраните как root: /usr/share/xsessions/custom.desktop.
Замечание: если вы используете дисплей-менеджер, отличный от GDM (например, LightDM или SDDM), путь /usr/share/xsessions остаётся корректным местом для регистрации пользовательских сессий.

ALT: Пример содержимого .desktop файла в текстовом редакторе, который регистрирует пользовательскую сессию в /usr/share/xsessions.
Отладка и частые проблемы
- Скрипт не запускается: проверьте права (chmod +x) и правильность пути в Exec. Логи X-сессии и ~./xsession-errors помогут найти ошибку.
- Программы не запускаются правильно: попробуйте запуск вручную в терминале, чтобы увидеть ошибки зависимостей или конфигурации.
- Конфликты с уже запущенными компонентами (например, стандартная панель GNOME): убедитесь, что сессия запускает только ваши компоненты, иначе возможны дублирование апплетов и лейаутов.
- Если менеджер окон не заменяется: используйте –replace (для Compiz/Metacity) или корректную команду для вашего WM.
Контрпример/когда это не подойдёт:
- Если вы хотите глубокой интеграции с сервисами GNOME (например, ключи, настройки dconf), простой скриптовый набор может не обеспечить полной совместимости.
- Для корпоративных окружений с централизованным управлением и политиками лучше использовать штатные DE.
Альтернативные подходы
- Использовать .xinitrc или .xsession напрямую (для тех, кто запускает X вручную через startx).
- Использовать lightweight DE вроде XFCE или LXDE как близкую замену, если не хочется ручного составления.
- Переход на оконные менеджеры тайлинга (i3, bspwm) для рабочего процесса, не требующего доков и панелей.
Роль‑ориентированный чеклист перед запуском
Для удобства — короткие проверки по ролям:
- Менеджер окон: установлен, запускается с –replace, имеет нужные плагины.
- Док/панель: работает, не конфликтует с системной панелью, автозапуск происходит корректно.
- Лаунчер: запускается и правильно индексирует приложения.
- Обои: путь к файлу корректен, инструмент поддерживает формат изображения.
- Права и пути: скрипт исполняем, .desktop указывает на существующий исполняемый файл.
Полезные сниппеты и шаблоны
- Быстрый шаблон скрипта (с защитой от повторного запуска дока):
#!/bin/bash
# Предотвратить множественные инстансы
pgrep -x cairo-dock >/dev/null || cairo-dock &
pgrep -x compiz >/dev/null || compiz --replace &
pgrep -x gnome-do >/dev/null || gnome-do &
hsetroot -fill /usr/share/backgrounds/mywallpaper.jpg &
wait- Пример .desktop, который использует абсолютный путь и проверяет TryExec:
[Desktop Entry]
Name=CustomDE
Comment=Кастомная сессия
Exec=/home/ваш_пользователь/customDE.sh
TryExec=/home/ваш_пользователь/customDE.sh
Type=Application
X-Ubuntu-Gettext-Domain=customde- Быстрая команда для теста без GDM (локальный тест):
bash /home/ваш_пользователь/customDE.shСовместимость и миграция
- GDM, LightDM, SDDM: все поддерживают сессии через /usr/share/xsessions, поэтому файл .desktop останется работоспособным.
- Wayland: на некоторых системах запуск кастомной сессии под Wayland потребует иных команд и совместимости с Wayland-компонентами; Compiz не работает под Wayland.
- Переход между системами: при переносе скрипта на другой компьютер проверяйте пути к обоям и наличию пакетов.
Критерии приёмки
Чтобы считать задачу завершённой, выполните проверку:
- В списке сеансов диспетчера входа появился пункт CustomDE.
- При выборе CustomDE запускаются все указанные компоненты и видимы на рабочем столе.
- Ресурсопотребление ниже, чем у полноценной GNOME/KDE сессии (субъективная проверка).
- Перезапуск сессии не приводит к накоплению дублированных процессов.
Безопасность и приватность
- Скрипт запускает только те приложения, которым вы доверяете. Не включайте в Autostart неизвестные бинарники.
- Если в скрипте используются сетевые службы, подумайте о файрволе и ограничениях доступа.
Решение проблем и откат
Если новая сессия не устраивает, просто удалите файл /usr/share/xsessions/custom.desktop и вернитесь к прежней сессии. Также можно временно переименовать скрипт или удалить права на исполнение.
Итог и рекомендации
Собирая DE вручную, вы получаете гибкость и контроль: загружаете только нужное, настраиваете поведение окон и внешний вид. Для быстрого старта рекомендую:
- Начать с минимального набора (WM + док + лаунчер) и постепенно добавлять компоненты.
- Тестировать запуск вручную перед добавлением в /usr/share/xsessions.
- Убедиться, что компоненты совместимы с выбранным сервером отображения (X11 vs Wayland).

ALT: Готовый рабочий стол с Compiz и Cairo Dock: панель, иконки и обои, демонстрирующие итоговую настройку.
Если у вас есть истории кастомизации рабочего стола или советы по выбранным инструментам — поделитесь в комментариях!
Похожие материалы
Удаление игр с PS5 M.2 SSD через приложение
Трансляция YouTube с телефона на ПК
Как использовать ADB и Fastboot на Linux
Как узнать, заблокировали ли вас на Android
Очистка кэша Dropbox на Android и iPhone