KDE Plasma: убрать рамку выделения, оставить фон
Как в KDE Plasma отключить рамку (border) выделения в настройках KWin, темах Plasma (SVG) или Qt/CSS (QSS), сохранив фон. Пошаговые правки файлов kwinrc, SVG stroke=none и QSS border:none для списков и окон.
Как в KDE Plasma убрать рамку (border) у выделения, чтобы остался только фон выделения? В каких настройках или файлах темы/стилей (например файлах темы Plasma или параметрах Qt/CSS) нужно изменить значения и какие конкретные правки применить?
В KDE Plasma рамку (border) у выделения можно убрать на трёх уровнях: декорации окон (KWin), файлы темы Plasma (SVG/цвета) и Qt/CSS (QSS) для виджетов — выбранные правки зависят от того, где именно рисуется рамка. Обычно достаточно отключить outline в декорации или заменить в SVG-файле атрибуты stroke/stroke-width на none/0, а для списков/виджетов добавить QSS вроде QListView::item:selected { border: none; }. После правок перезапустите KWin/Plasma или выйдите из сессии, чтобы изменения вступили в силу.
Содержание
- Коротко: откуда берётся рамка и что менять
- Выключение рамки у окон: декорации KWin и kwinrc (kde plasma)
- Правки файлов темы Plasma (SVG, colors) и место хранения тем
- Убираем рамку у элементов интерфейса: QSS (Qt/CSS) для виджетов
- Практические примеры правок (команды, сниппеты)
- Куда править — карта файлов и советы по бэкапу (настройка kde plasma)
- Частые проблемы и их решения
- Источники
- Заключение
Коротко: откуда берётся рамка и что менять
Рамку выделения в KDE Plasma рисуют разные подсистемы в зависимости от контекста:
- KWin (декорация окна) отвечает за внешнюю рамку окна и outline вокруг окон; настройки см. в документации по поведению окон. Например, некоторые параметры управляются через
~/.config/kwinrcи GUI “Декорации окон” / “Window Decorations” (документация KWin). - Тема Plasma (desktoptheme) содержит SVG/PNG-элементы и файлы цветов, которые рисуют бордеры/контуры у виджетов и панелей.
- Qt-стили (QSS) управляют границами и outline внутри Qt-приложений (списки, комбобоксы и т.д.); примеры правил для QListView/QComboBox есть на StackOverflow.
Кто рисует рамку — важно: хотите убрать рамку у окна или у выделенной строки в списке? От этого зависит, что править.
Выключение рамки у окон: декорации KWin и kwinrc (kde plasma)
Что делать (GUI и быстрые команды):
-
Через GUI: Система → Параметры системы → Управление окнами → Декорации окон (System Settings → Window Management → Window Decorations). Выберите декорацию, нажмите “Настроить” и уменьшите толщину рамки до “No border” или аналогичного значения, либо смените тему декорации. См. также параметры поведения окон в официальной документации: https://docs.kde.org/stable5/ru/kwin/kcontrol/windowbehaviour/index.html
-
Быстрая кнопка для отдельного окна: открыть меню окна (Alt+F3) → “Дополнительные действия” (More Actions) → “Без рамки” (No Border). Это удобно для тестов и отдельных приложений (undo тем же путём) — примеры есть на форумах и Q&A: https://ru.stackoverflow.com/questions/1300798/Вернуть-рамку-в-kde-plasma и https://unix.stackexchange.com/questions/376091/undo-no-border-in-kde
-
Правка kwinrc (глобально для максимизированных окон): чтобы вернуть/убрать рамку при максимизации, в секции [Windows] файла
~/.config/kwinrcиспользуется ключBorderlessMaximizedWindows. Пример команды для изменения:
kwriteconfig5 --file ~/.config/kwinrc --group Windows --key BorderlessMaximizedWindows false
qdbus org.kde.KWin /KWin reconfigure
# Или (для X11) перезапуск:
kwin_x11 --replace &
Пример и обсуждение команд — есть в подборках по удалению заголовков и рамок: https://qastack.ru/ubuntu/253337/remove-title-bar-and-borders-on-maximized-windows-in-kubuntu и https://kubuntu.ru/node/9846
Заметки:
- На Wayland
kwin_x11 --replaceне работает; проще выйти из сессии и войти заново. - Переключение “No border” в правилах окон может быть принудительным (Force) — проверьте System Settings → Window Management → Window Rules.
Правки файлов темы Plasma (SVG, colors) и место хранения тем
Если рамку рисует сама тема (контуры вокруг панелей, элементов, выделения в плазмоидaх), правьте SVG/файлы цвета.
Где искать:
- Системные темы:
/usr/share/plasma/desktoptheme/<Theme>/ - Локальные копии (лучше для правок):
~/.local/share/plasma/desktoptheme/<Theme>/ - Декорации KWin (для рамок окон):
/usr/share/kwin/decorations/<Decoration>/или~/.local/share/kwin/decorations/
Рекомендованный рабочий процесс:
- Скопируйте тему в локальную папку, чтобы обновления пакетов не перезаписали правки:
cp -r /usr/share/plasma/desktoptheme/Breeze ~/.local/share/plasma/desktoptheme/Breeze-custom
- Найдите элементы, которые рисуют outline/border:
grep -R "stroke" ~/.local/share/plasma/desktoptheme/Breeze-custom | less
grep -R "outline" ~/.local/share/plasma/desktoptheme/Breeze-custom | less
- Отредактируйте SVG: замените
stroke="#xxxxxx"наstroke="none"илиstroke-width="0", либо добавьтеstroke-opacity="0". Пример до/после:
<!-- до -->
<rect x="0" y="0" width="100%" height="100%" fill="#1e1e1e" stroke="#ffffff" stroke-width="2"/>
<!-- после -->
<rect x="0" y="0" width="100%" height="100%" fill="#1e1e1e" stroke="none"/>
-
Если в теме есть файл
colorsилиcolors.conf, проверьте параметры Outline/Highlight и замените цвет на прозрачный (#00000000) или на тот же цвет, что и фон. -
Примените тему через Системные настройки → Внешний вид → Темы рабочего стола, или перезапустите компоненты:
kquitapp5 plasmashell && kstart5 plasmashell
# и для KWin (X11)
kwin_x11 --replace &
Небольшой лайфхак: многие темы имеют настройки “Shadows and Outline” в редакторе темы — можно просто выключить интенсивность Outline (пример: обсуждение на reddit) https://www.reddit.com/r/kde/comments/nkexc9/kde_plasma_border_remove/
Убираем рамку у элементов интерфейса: QSS (Qt/CSS) для виджетов
Иногда рамку — это не оформление Plasma, а рамка у элементов Qt (список, комбобокс). Тут поможет QSS.
Примеры QSS (положите в файл ~ / .config/qss/no-border.qss и тестируйте в приложении):
/* Убираем пунктир/контур и рамку у выбранного элемента */
QListView, QTreeView, QListWidget {
outline: none; /* убирает пунктирный focus- outline */
}
QListView::item:selected, QTreeView::item:selected, QListWidget::item:selected {
border: none; /* убирает рамку вокруг выбранной строки */
background: rgba(61,153,255,0.12); /* оставляем фон выделения */
}
/* Для выпадающих списков / QComboBox */
QComboBox QAbstractItemView::item:selected {
border: none;
background: rgba(61,153,255,0.12);
}
Источники с примерами QSS: https://stackoverflow.com/questions/15830383/get-rid-of-qts-dotted-outline-on-qlistview-items и https://stackoverflow.com/questions/74173318/remove-border-from-qcombobox-item
Как применить глобально:
- Для одного приложения — часто можно применить QSS из кода приложения (если вы разрабатываете).
- Для пользователя: используйте утилиты вроде
qt5ctили движок Kvantum, которые позволяют задать глобальный stylesheet/тему для Qt-приложений; либо запускайте приложение через обёртку, которая выставляет нужный стиль/переменные окружения. Это требует установки дополнительного пакета, но даёт глобальный эффект.
Небольшая подсказка: если рамка видна только в одном приложении — правку лучше делать через QSS для этого приложения, а не в теме Plasma.
Практические примеры правок (команды, сниппеты)
- Восстановить рамку для максимизированных окон:
kwriteconfig5 --file ~/.config/kwinrc --group Windows --key BorderlessMaximizedWindows false
qdbus org.kde.KWin /KWin reconfigure
Источник: https://qastack.ru/ubuntu/253337/remove-title-bar-and-borders-on-maximized-windows-in-kubuntu
- Быстро убрать outline у темы (редактирование SVG):
- Найдите файл:
grep -R "stroke" /usr/share/plasma/desktoptheme/Breeze | head
- В нужном SVG замените
stroke="#ffffff"наstroke="none".
-
QSS для списков (создайте файл
~/.config/qss/no-border.qssс примером выше) и применяйте через qt5ct/Kvantum или при запуске тестового приложения (если поддерживает). -
Перезапуск компонентов:
# plasmashell
kquitapp5 plasmashell && kstart5 plasmashell
# KWin (X11)
kwin_x11 --replace &
Куда править — карта файлов и советы по бэкапу (настройка kde plasma)
Типичные пути:
- Темы Plasma (системные):
/usr/share/plasma/desktoptheme/<Theme>/ - Темы Plasma (локальные):
~/.local/share/plasma/desktoptheme/<Theme>/ - Декорации KWin:
/usr/share/kwin/decorations/<Decoration>/и~/.local/share/kwin/decorations/ - KWin config:
~/.config/kwinrc - Qt/QSS: произвольные файлы в
~/.config/или через qt5ct/Kvantum
Советы:
- Всегда делайте резервную копию файла/папки перед правкой:
cp file file.bakилиcp -r Theme Theme.bak. - Работайте в локальной копии темы в
~/.local/...— обновления системы не перезапишут изменения. - После правки сначала пробуйте перезапустить нужный компонент, а если не помогает — выйти/войти в сессию.
Частые проблемы и их решения
- Рамка не уходит после правки SVG: возможно, рамку рисует KWin (декорация) — правьте декорацию, а не тему. Проверьте
BorderlessMaximizedWindowsи опцию “No border”. - Изменения перезаписываются при обновлении пакетов: работайте с локальной копией темы (
~/.local/...). - На Wayland нельзя перезапустить kwin простым
--replace: выйдите из сессии или перезагрузите сеанс. - Рамка всё ещё видна только в одном приложении — скорее всего, это приложение рисует свою рамку; используйте QSS для этого приложения (см. примеры на StackOverflow).
- Тени/outline от шейдера остаются: уменьшите интенсивность Outline в редакторе темы или уберите shadow svg-файлы (проверьте раздел Shadows/Outline в теме). См. обсуждение на reddit: https://www.reddit.com/r/kde/comments/1bjcb1e/strange_white_window_highlighting_borders_how_to/ и https://www.reddit.com/r/kde/comments/nkexc9/kde_plasma_border_remove/
Источники
- Вернуть рамку в KDE Plasma - Stack Overflow (ru)
- KDE — скрыть панельку с заголовком и кнопками, оставить рамки (linux.org.ru)
- Remove title bar and borders on maximized windows in Kubuntu (qastack.ru)
- Как отключить границы окон в KDE 3.5? (unixforum)
- Тонкая настройка интерфейса (kubuntu.ru)
- Рамка вокруг окон KDE Plasma? (qna.habr.com)
- KDE на прокачку — 12 твиков (xakep.ru)
- Рамки окон в кедах (linux.org.ru)
- Поведение окон — документация KWin (docs.kde.org)
- Настройка внешнего вида графического окружения KDE Plasma (redos)
- KDE Plasma border remove (reddit)
- Remove title bar and borders on maximized windows in Kubuntu (askubuntu)
- Undo “No border” in KDE (unix.stackexchange)
- Opera forum — KDE Window Borders Off By Default (forums.opera.com)
- Strange white window highlighting / borders - how to turn off? (reddit)
- Get rid of Qt’s dotted outline on QListView items (stackoverflow.com)
- Remove border from QComboBox item (stackoverflow.com)
- QListView item with border 0 still visible (qtcentre)
Заключение
Если нужно просто убрать видимую рамку, но сохранить фон выделения, начните с того, чтобы понять, кто рисует рамку: KWin (декорация окна), тема Plasma (SVG/цвета) или Qt-приложение (QSS). Для окон чаще всего достаточно изменить настройки декорации или ~/.config/kwinrc (BorderlessMaximizedWindows) и перезапустить KWin; для элементов интерфейса — добавить QSS-правило border: none/outline: none или отредактировать SVG-файлы темы (замена stroke на none). Всегда делайте резервную копию темы и работайте с локальной копией в ~/.local/share/..., чтобы не потерять правки при обновлении дистрибутива. Удачи — и если пришлёте конкретную тему/декорацию или скрин с рамкой, подскажу точнее, в каком именно SVG/файле нужно править.