KWin-правила окон: как принудительно задать поведение окна
Правила окон KWin (KWin Rules) позволяют переопределить поведение любого окна в KDE Plasma: скрыть из таскбара, зафиксировать размер и позицию, закрепить на нужном рабочем столе. Свою проблему я решил правилом для mpv, окно которого отказывалось прятаться из панели задач.
Что такое правила окон KWin и зачем они нужны
KWin: оконный менеджер в составе KDE Plasma. У него есть механизм «правил окон» (window rules). Каждое правило задаёт два параметра: какое окно ловить (условие матчинга) и что с ним делать (принудительные действия).
Типичные задачи, которые решают правила:
- Приложение запоминает последний размер, а хочется фиксированный.
- Плеер появляется на рабочем столе, а нужен на втором мониторе.
- Утилита засоряет панель задач, хотя работает в фоне.
- Переключатель окон (Alt+Tab) показывает лишнее.
В XFCE такие настройки делаются через «Менеджер окон» с горячими клавишами (об этом в статье про XFCE), в i3wm через конфиг. В KDE всё через графический интерфейс или текстовый файл.
Как открыть настройку правил окон
Два способа попасть в диалог.
Через Системные настройки:
- Откройте «Системные настройки» (System Settings).
- Перейдите в раздел «Окна» (Windows).
- Выберите «Правила окон» (Window Rules).
Через файл конфигурации:
Правила хранятся в ~/.config/kwinrulesrc в формате INI. После изменений перезайдите в сессию.
Параметры описаны на странице KWin Rules в ArchWiki.
Проблема: mpv меняет заголовок окна
Вот с чем столкнулся я. Нужно было скрыть mpv из таскбара: он работает в фоновом режиме (воспроизведение аудио по HTTP-плейлисту). Создал правило с матчингом по имени приложения mpv. Не заработало.
Причина: mpv меняет заголовок окна на имя воспроизводимого файла или потока. Каждый запуск новый заголовок. KWin сравнивает по заголовку (WM_CLASS или window title), и совпадение пропадает.
Это общая проблема не только для mpv: любое приложение с динамическим title bar может «вылезать» из-под правила.
Как найти правильный идентификатор окна
Способ 1: класс окна через xprop
Запустите xprop и щёлкните по нужному окну:
xprop | grep WM_CLASS
Вывод покажет класс окна (второе значение после запятой):
WM_CLASS(STRING) = "mpv", "mpv"
Значение mpv стабильно, даже когда заголовок меняется. Подставляйте его в поле «Имя приложения» правила.
Способ 2: UUID группы окон
KDE отслеживает каждое окно через внутренний UUID. Узнать его:
- Кликните правой кнопкой по окну, выберите «Свойства окна» (Window Properties).
- Откройте вкладку «Общее» (General).
- Строка
UUID: уникальный идентификатор окна.
UUID пригодится, когда нужно поймать конкретное окно, а не все экземпляры приложения.
Что выбрать?
Класс окна ловит все окна приложения, UUID одно конкретное, заголовок только при фиксированном title. Для mpv надёжнее всего класс окна: он стабилен, и mpv при каждом запуске создаёт окно с WM_CLASS = mpv.
Пошаговая настройка правила
- Откройте «Системные настройки» → «Окна» → «Правила окон».
- Нажмите «Добавить правило…».
- В поле «Имя приложения» введите
mpv(или класс из xprop). - В раскрывающемся списке рядом выберите режим совпадения, например точное совпадение.
- Перейдите к разделу «Действия» (Actions) и включите нужные параметры.
- Нажмите «Применить» (Apply) и закройте диалог.
- Закройте и заново откройте приложение. Проверьте, сработало ли правило.
Важно: KWin применяет правила только при создании окна. Открытое окно правило не подхватит.
Доступные действия
Основные принудительные параметры:
- Скрыть из таскбара (Hide from taskbar): окно не появится на панели задач.
- Не показывать в переключателе (Keep above/below): окно не участвует в Alt+Tab.
- Принудительный размер (Force size): фиксированные ширина и высота.
- Принудительная позиция (Force position): фиксированные координаты x, y.
- На рабочем столе (On all desktops): окно видно на всех рабочих столах.
Для mpv хватило двух действий: «Скрыть из таскбара» и «Не показывать в переключателе».
Если правило не работает
Проверьте по порядку:
- Заголовок или класс? Убедитесь, что правило матчится по правильному полю. Откройте «Свойства окна» и сверьте.
- Приложение перезапущено? Правило действует только на новые окна. Закройте и откройте заново.
- Конфликт правил? Если правил несколько, KWin применяет последнее в списке. Проверьте порядок.
- kwinrulesrc не синхронизируется? Если редактировали файл руками, перезайдите в сессию.
Для сравнения: в i3wm всё задаётся строками в конфиге, в Hyprland через hyprland.conf с похожей логикой условий. Суть та же: сопоставить окно и задать параметры.
Частые вопросы
Как узнать, какое правило KWin действует на окно?
Откройте «Свойства окна» (правая кнопка мыши по заголовку → «Другое» → «Показать свойства окна»). На вкладке «Правила» KWin покажет, какие правила совпали.
Можно ли настроить правила окон из терминала?
Да. Правила хранятся в ~/.config/kwinrulesrc в формате INI. После изменений перезайдите в сессию.
Как настроить правила для всех приложений одного класса?
Укажите класс окна (значение WM_CLASS из xprop) в поле «Имя приложения». Все окна с таким классом попадут под правило.
Правило работает, но только на одном мониторе?
В KWin правила не зависят от монитора. Если окно «прилипает» к одному экрану, проверьте настройку «Позиция» в правиле.
Стоит ли использовать kwinrules вместо настроек приложения?
Да, если приложение не даёт нужных опций (mpv, например, не умеет скрываться из таскбара нативно). Правила работают на уровне оконного менеджера и не зависят от возможностей приложения.
Заключение
KWin-правила окон решают задачи, недоступные настройкам приложения. Главное запомнить: надёжнее всего матчится не по заголовку окна, а по классу (из xprop) или UUID группы окон. Заголовки меняются, а стабильные идентификаторы остаются.
Если приложение ведёт себя не так, как нужно, не спешите искать параметр запуска. Откройте «Системные настройки» → «Окна» → «Правила окон», создайте правило с правильным матчингом и перезапустите приложение.
Полезные ресурсы
- KWin в ArchWiki: обзор оконного менеджера KWin.
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии