Автозапуск программ при входе в AwesomeWM
Зачем нужен автозапуск
Автозапуск позволяет автоматически запускать программы и сервисы сразу после входа в сессию. Это экономит время: не нужно вручную запускать почтовый клиент, синхронизацию файлов или менеджер буфера.
Краткое определение: AwesomeWM — лёгкий тайлинговый оконный менеджер, конфигурируется через Lua в файле rc.lua.
Резервная копия rc.lua
Перед редактированием создайте резервную копию конфигурационного файла. Это позволит быстро откатиться, если что-то пойдёт не так.
Откройте терминал и выполните:
sudo mkdir /etc/awesomebackup
sudo cp /etc/xdg/awesome/rc.lua /etc/awesomebackupВажно: команды должны выполняться с правами администратора, поэтому используется sudo. Проверьте, что папка резервной копии создана и в ней есть файл rc.lua.
Редактирование rc.lua
Откройте файл конфигурации в текстовом редакторе (пример с nano):
sudo nano /etc/xdg/awesome/rc.lua
Найдите конец файла и вставьте следующий блок Lua-кода. Он включает простой список программ и цикл для их запуска.
-- Autorun programs
autorun = true
autorunApps =
{
"swiftfox",
"mutt",
"consonance",
"linux-fetion",
"weechat-curses",
}
if autorun then
for app = 1, #autorunApps do
awful.util.spawn(autorunApps[app])
end
end
Примечание: замените имена программ в списке autorunApps на те, которые вы используете. Можно добавлять или удалять строки по желанию.
Сохраните изменения в nano: нажмите Ctrl+O, затем Enter, и выйдите Ctrl+X.
После сохранения выйдите из сессии AwesomeWM и снова войдите — программы должны запуститься автоматически в течение нескольких секунд.
Отмена автозапуска
Если автозапуск оказался неудобен, быстро восстановите оригинальный файл из резервной копии:
cd /etc/xdg/awesome/
sudo rm rc.lua
sudo cp /etc/awesomebackup/rc.lua /etc/xdg/awesome/
После восстановления снова перезапустите сессию.
Альтернативные подходы (когда автозапуск в rc.lua не подходит)
- XDG .desktop (универсально для DE/WM)
- Поместите .desktop-файл в ~/.config/autostart/
- Пример содержимого файла myapp.desktop:
[Desktop Entry]
Type=Application
Exec=/usr/bin/myapp
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=MyApp
Comment=Запуск MyApp при входе- Плюсы: совместимо с большинством сред рабочего стола и менеджеров сессий.
systemd user-сервисы
- Для фоновых сервисов лучше использовать systemd user (например, автозапуск демонов или синхронизаторов).
- Команда для запуска и включения: systemctl –user enable –now myservice.service
- Плюсы: надёжное управление, перезапуск при падении, журналирование.
Скрипт в ~/.xinitrc или ~/.xsession
- Подходит для тех, кто логинится через xinit или лёгкие дисплей-менеджеры.
Выбор метода зависит от типа приложения: графическое приложение, фоновый демон или терминальная утилита.
Отладка и проверка
Если приложения не запускаются:
- Проверьте синтаксис Lua в rc.lua: лишняя запятая или неверная конструкция может прервать выполнение файла.
- Запускайте команды вручную из терминала, чтобы убедиться, что они работают без ошибок.
- Посмотрите логи сессии (например, ~/.xsession-errors или журнал systemd –user) для подсказок.
- Для графических приложений указывайте полный путь в Exec или используйте оболочку: awful.util.spawn(“/usr/bin/myapp”)
Важно: некоторые приложения ожидают запуска в пользовательском окружении (DISPLAY, DBUS_SESSION_BUS_ADDRESS). Если приложение зависит от этих переменных, убедитесь, что они доступны к моменту запуска.
Примеры и шаблоны
Шаблон простого списка автозапуска в rc.lua:
-- Автозапуск: добавьте имена приложений в список
autorun = true
autorunApps = { "nm-applet", "dropbox", "firefox" }
if autorun then
for _, app in ipairs(autorunApps) do
awful.util.spawn(app)
end
endПример .desktop для ~/.config/autostart/dropbox.desktop:
[Desktop Entry]
Type=Application
Exec=/usr/bin/dropbox start -i
Name=Dropbox
Comment=Start Dropbox
X-GNOME-Autostart-enabled=trueМентальные модели и рекомендации
- Если программа — долгоживущий демон или сервис, используйте systemd user.
- Если программа — типичное GUI-приложение, достаточно rc.lua или .desktop.
- Для терминальных/клиентских утилит можно писать оболочку, которая проверяет состояние и только затем запускает основной процесс.
Check-лист перед применением
- Сделана резервная копия rc.lua
- В списке autorun указаны корректные имена/пути
- Сохранён файл и проверена синтаксис Lua
- Перезапущена сессия и проверено поведение
- Если нужно — восстановлен оригинальный файл
Жизненные сценарии: когда это не работает
- Менеджер сессий заменяет ваш rc.lua при входе (редко, но возможно в кастомных сборках).
- Приложение требует переменных окружения, которых ещё нет при раннем автозапуске.
- Порядок запуска критичен: один процесс зависит от другого (решение — написать оболочку с задержкой или проверкой готовности).
Краткое руководство для администраторов
- Для массового развёртывания на нескольких машинах используйте системные шаблоны или конфигурационный менеджер (Ansible, Salt) для правок rc.lua и .desktop.
- Документируйте изменения и храните резервные копии в контроле версий.
Факто-бокс
- Файл конфигурации: /etc/xdg/awesome/rc.lua или ~/.config/awesome/rc.lua
- Альтернатива: ~/.config/autostart/*.desktop или systemd –user
- Команда сохранения в nano: Ctrl+O, выход: Ctrl+X
Decision flow
flowchart TD
A[Нужно автозапускать приложение?] --> B{Тип приложения}
B -->|Графическое| C[Использовать rc.lua или .desktop]
B -->|Фоновый сервис| D[Использовать systemd user]
B -->|Терминальная утилита| E[Скрипт в rc.lua или .xsession]
C --> F[Добавить в autorunApps или ~/.config/autostart]
D --> G[Создать unit и enable --now]
E --> H[Тестировать вручную, затем автозапуск]Глоссарий в одну строку
- AwesomeWM — тайлинговый оконный менеджер на Lua.
- rc.lua — главный файл конфигурации AwesomeWM.
- .desktop — формат автозапуска/ярлыка для XDG.
- systemd user — пользовательский менеджер сервисов для фоновых задач.
Заключение
Автозапуск в AwesomeWM прост в настройке: достаточно добавить небольшой Lua-блок в rc.lua. Однако для надёжности и гибкости стоит знать альтернативы: XDG .desktop и systemd user. Всегда делайте резервную копию перед изменениями и тестируйте поведение после входа в сессию.
Понравилась ли вам автоматическая загрузка приложений при входе в систему? Напишите о своём опыте в комментариях.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента