Правила окон KWin (KWin Rules) позволяют переопределить поведение любого окна в KDE Plasma: скрыть из таскбара, зафиксировать размер и позицию, закрепить на нужном рабочем столе. Свою проблему я решил правилом для mpv, окно которого отказывалось прятаться из панели задач.
KWin — оконный менеджер в составе KDE Plasma. У него есть механизм «правил окон» (window rules). Каждое правило задаёт два параметра: какое окно ловить (условие матчинга) и что с ним делать (принудительные действия).
Типичные задачи, которые решают правила:
В XFCE такие настройки делаются через «Менеджер окон» с горячими клавишами (об этом в статье про XFCE), в i3wm — через конфиг. В KDE всё через графический интерфейс или текстовый файл.
Два способа попасть в диалог.
Через Системные настройки:
Через файл конфигурации:
Правила хранятся в ~/.config/kwinrulesrc в формате INI. После изменений перезайдите в сессию.
Параметры описаны на странице KWin Rules в ArchWiki.
Вот с чем столкнулся я. Нужно было скрыть mpv из таскбара: он работает в фоновом режиме (воспроизведение аудио по HTTP-плейлисту). Создал правило с матчингом по имени приложения mpv. Не заработало.
Причина: mpv меняет заголовок окна на имя воспроизводимого файла или потока. Каждый запуск — новый заголовок. KWin сравнивает по заголовку (WM_CLASS или window title), и совпадение пропадает.
Это общая проблема не только для mpv: любое приложение с динамическим title bar может «вылезать» из-под правила.
Запустите xprop и щёлкните по нужному окну:
xprop | grep WM_CLASS
Вывод покажет класс окна (второе значение после запятой):
WM_CLASS(STRING) = "mpv", "mpv"
Значение mpv стабильно, даже когда заголовок меняется. Подставляйте его в поле «Имя приложения» правила.
KDE отслеживает каждое окно через внутренний UUID. Узнать его:
UUID — уникальный идентификатор окна.UUID пригодится, когда нужно поймать конкретное окно, а не все экземпляры приложения.
Класс окна ловит все окна приложения, UUID — одно конкретное, заголовок — только при фиксированном title. Для mpv надёжнее всего класс окна: он стабилен, и mpv при каждом запуске создаёт окно с WM_CLASS = mpv.
mpv (или класс из xprop).Важно: KWin применяет правила только при создании окна. Открытое окно правило не подхватит.
Основные принудительные параметры:
Для mpv хватило двух действий: «Скрыть из таскбара» и «Не показывать в переключателе».
Проверьте по порядку:
Для сравнения: в i3wm всё задаётся строками в конфиге, в Hyprland — через hyprland.conf с похожей логикой условий. Суть та же: сопоставить окно и задать параметры.
Откройте «Свойства окна» (правая кнопка мыши по заголовку → «Другое» → «Показать свойства окна»). На вкладке «Правила» KWin покажет, какие правила совпали.
Да. Правила хранятся в ~/.config/kwinrulesrc в формате INI. После изменений перезайдите в сессию.
Укажите класс окна (значение WM_CLASS из xprop) в поле «Имя приложения». Все окна с таким классом попадут под правило.
В KWin правила не зависят от монитора. Если окно «прилипает» к одному экрану, проверьте настройку «Позиция» в правиле.
Да, если приложение не даёт нужных опций (mpv, например, не умеет скрываться из таскбара нативно). Правила работают на уровне оконного менеджера и не зависят от возможностей приложения.
KWin-правила окон решают задачи, недоступные настройкам приложения. Главное запомнить: надёжнее всего матчится не по заголовку окна, а по классу (из xprop) или UUID группы окон. Заголовки меняются, а стабильные идентификаторы остаются.
Если приложение ведёт себя не так, как нужно, не спешите искать параметр запуска. Откройте «Системные настройки» → «Окна» → «Правила окон», создайте правило с правильным матчингом и перезапустите приложение.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии