XSuspender — Как заморозить X11-приложения для экономии батареи
Проблема: энергозатратные фоновые приложения
Знакома ситуация, когда ноутбук на Linux разряжается за пару часов, хотя вы вроде бы ничего тяжелого не делаете? Виновники часто — фоновые приложения вроде браузеров с десятком вкладок или IDE, которые продолжают потреблять ресурсы, даже когда вы с ними не работаете.
Именно эту проблему решает XSuspender — небольшой, но умный демон для X11, который автоматически «замораживает» неактивные приложения, освобождая ресурсы системы.
Что делает XSuspender?
XSuspender — это легковесная утилита на C, которая:
- Отслеживает активность окон в X11-сессии
- Автоматически приостанавливает (SIGSTOP) процессы неактивных приложений
- Возобновляет работу (SIGCONT) при возврате фокуса
- Гибко настраивается через правила для разных приложений
Вот как это выглядит на практике: открыли браузер, поработали — переключились в терминал. Через несколько секунд браузер «засыпает» и перестает нагружать CPU. Вернулись к браузеру — он мгновенно «просыпается».
Ключевые преимущества
- Экономия батареи — до 20-30% увеличения времени работы (особенно заметно на старых ноутбуках)
- Снижение шума вентиляторов — меньше активных процессов = меньше нагрев
- Ускорение системы — больше ресурсов для активных задач
- Контроль над фоновой активностью — например, можно ограничить ресурсоемкие приложения вроде VirtualBox
Интересный момент: технология похожа на ту, что используется в смартфонах для экономии энергии. Только здесь вы сами решаете, какие приложения и когда «засыпают».
Как это работает технически
Под капотом XSuspender использует:
- Libwnck для мониторинга окон
- SIGSTOP/SIGCONT для управления процессами
- GLib для основной логики
- Конфигурационные файлы для гибких правил
Проект написан на C и занимает всего около 1000 строк кода — минималистично и эффективно.
Практическое применение
Для кого это?
- Владельцы ноутбуков — продлите работу от батареи
- Обладатели слабых ПК — освободите ресурсы для важных задач
- Параноики приватности — ограничьте фоновую активность подозрительных программ
- Любители тишины — уменьшите шум системы
Что можно замораживать?
- Браузеры (Chrome, Firefox)
- IDE (JetBrains, VS Code)
- Торренты (qBittorrent)
- Виртуальные машины (VirtualBox)
- И другие X11-приложения
Важно: не стоит замораживать музыку, мессенджеры и другие приложения, которым нужно работать в фоне.
Как установить
Для популярных дистрибутивов:
# Debian/Ubuntu (через сторонний репозиторий)
sudo add-apt-repository ppa:kernc/xsuspender
sudo apt update
sudo apt install xsuspender
# Arch Linux (AUR)
yay -S xsuspender-git
Или собрать из исходников:
git clone https://github.com/kernc/xsuspender
cd xsuspender/build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make && sudo make install
Настройка
После установки XSuspender автоматически добавится в автозагрузку. Основные настройки:
- Правила заморозки в
/etc/xsuspender.conf - Время задержки перед заморозкой
- Исключения для важных приложений
Для проверки работы запустите с отладкой:
G_MESSAGES_DEBUG=xsuspender xsuspender
Ограничения
- Работает только с X11 (не поддерживает Wayland)
- Некоторые приложения могут некорректно восстанавливаться
- Может мешать работе буфера обмена
- Требует правильной настройки _NET_WM_PID в окнах
Вывод: стоит ли пробовать?
Да, если:
- Работаете на ноутбуке с Linux
- Часто оставляете «тяжелые» приложения открытыми
- Хотите продлить время работы от батареи
Не подойдет, если:
- Используете Wayland
- Нужны постоянно работающие фоновые приложения
- Не готовы к тонкой настройке
XSuspender — один из тех скромных инструментов, которые незаметно делают работу комфортнее. Попробуйте, и ваша система скажет вам спасибо!
