Tutorials/Using Other Window Managers with Plasma/uk: Difference between revisions
No edit summary |
(Created page with "** Допомогти із усуванням розривів у зображенні на екрані можуть засоби композиції. Втім, вам сп...") |
||
Line 16: | Line 16: | ||
* У більшості засобів керування вікнами немає власного засобу композиції, тому деякі можливості, зокрема анімація та прозорість, у них є недоступними. Якщо вам потрібні якісь із недоступних ефектів, доведеться скористатися стороннім засобом композиції, наприклад '''compton'''. | * У більшості засобів керування вікнами немає власного засобу композиції, тому деякі можливості, зокрема анімація та прозорість, у них є недоступними. Якщо вам потрібні якісь із недоступних ефектів, доведеться скористатися стороннім засобом композиції, наприклад '''compton'''. | ||
** Допомогти із усуванням розривів у зображенні на екрані можуть засоби композиції. Втім, вам спершу слід переконатися, що проблему не можна вирішити за допомогою відеодрайверів, оскільки усування цих проблем є найкращим з точки зору швидкодії варіантом. | |||
==Використання іншого засобу керування вікнами у Плазмі== | ==Використання іншого засобу керування вікнами у Плазмі== | ||
Line 78: | Line 79: | ||
===Створення типових налаштувань i3=== | ===Створення типових налаштувань i3=== | ||
{{ | Деякі з правил керування вікнами i3 уможливлюють використання вікон сповіщення та інших вікон Плазми як звичайних рухомих вікон: | ||
{{Input|1=<nowiki>for_window [title="Desktop — Plasma"] kill; floating enable; border none | |||
for_window [class="plasmashell"] floating enable; | |||
for_window [class="Plasma"] floating enable; border none | |||
for_window [title="plasma-desktop"] floating enable; border none | |||
for_window [title="win7"] floating enable; border none | |||
for_window [class="krunner"] floating enable; border none | |||
for_window [class="Kmix"] floating enable; border none | |||
for_window [class="Klipper"] floating enable; border none | |||
for_window [class="Plasmoidviewer"] floating enable; border none | |||
for_window [class="(?i)*nextcloud*"] floating disable | |||
for_window [class="plasmashell" window_type="notification"] floating enable, border none, move right 700px, move down 450px, no_focus | |||
</nowiki>}} | |||
If you wish to maintain the same configuration across users (they can still override it with their own local config), remove the wizard invocation from the global configuration file and use it directly. | |||
The following i3 window rules will help you with notifications and some other plasma windows: | |||
{{Input|1=<nowiki>for_window [title="Desktop — Plasma"] kill; floating enable; border none | {{Input|1=<nowiki>for_window [title="Desktop — Plasma"] kill; floating enable; border none | ||
for_window [class="plasmashell"] floating enable; | for_window [class="plasmashell"] floating enable; | ||
Line 97: | Line 109: | ||
for_window [class="plasmashell" window_type="notification"] floating enable, border none, move right 700px, move down 450px, no_focus | for_window [class="plasmashell" window_type="notification"] floating enable, border none, move right 700px, move down 450px, no_focus | ||
</nowiki>}} | </nowiki>}} | ||
If you are using a non-English installation of Plasma, you need to find out what the exact window title of the Desktop is. One way is to do this is with <code>wmctrl -l</code>. | |||
Instead of adding | |||
{{Input|1=<nowiki>for_window [title="Desktop — Plasma"] kill; floating enable; border none | |||
</nowiki>}} | |||
add the name of the window to the i3 config. This example uses the German Plasma installation. | |||
{{Input|1=<nowiki>for_window [title="Arbeitsfläche — Plasma"] kill; floating enable; border none | |||
</nowiki>}} | |||
===Configure Plasma=== | |||
You may get into issues related with the "Activities" feature - activating it via keyboard shortcuts (some of which are also used by i3, like "Meta + Q") seems to make i3 unresponsive. Removing Activity related global shortcuts seems to resolve this. | |||
To get the Plasma provided pager display desktops as i3bar, set '''Pager Settings''' > '''General''' > '''Text display''' to "Desktop name" | |||
==Налаштування Bspwm== | ==Налаштування Bspwm== | ||
Line 108: | Line 137: | ||
===DBus=== | ===DBus=== | ||
Відкривати компоненти Плазми можна за допомогою команд DBus. Ви можете пов'язати комбінації клавіш із командами DBus. Щоб визначити потрібну вам команду DBus, скористайтеся QDbusViewer. | Відкривати компоненти Плазми можна за допомогою команд DBus. Ви можете пов'язати комбінації клавіш із командами DBus. Щоб визначити потрібну вам команду DBus, скористайтеся QDbusViewer. | ||
You can open some Plasma components with DBus commands. You can use this to map corresponding keybindings to DBus commands. To find a specific DBus command, you can look at <code>dbus-monitor</code> or <code>qdbusviewer</code> while you invoke the component in a standard Plasma set-up. | |||
More info on meta key handling: | |||
* [https://www.reddit.com/r/kde/comments/6wn5lk/bind_meta_key_alone_to_do_something/ Reddit post describing the ''Meta key - KWin'' relation] | |||
* [https://zren.github.io/2019/03/04/activate-any-widget-with-meta-key Blog post describing the ''DBus - Component'' relation] | |||
Декілька прикладів: | Декілька прикладів: | ||
Line 114: | Line 152: | ||
* Відкрити Krunner {{Input|1=<nowiki>qdbus org.kde.kglobalaccel /component/krunner org.kde.kglobalaccel.Component.invokeShortcut 'run command'</nowiki>}} | * Відкрити Krunner {{Input|1=<nowiki>qdbus org.kde.kglobalaccel /component/krunner org.kde.kglobalaccel.Component.invokeShortcut 'run command'</nowiki>}} | ||
* Відкрити вікно підтвердження виходу {{Input|1=<nowiki>qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 -1 -1</nowiki>}} | * Відкрити вікно підтвердження виходу {{Input|1=<nowiki>qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 -1 -1</nowiki>}} | ||
* Open Krunner {{Input|1=<nowiki>qdbus org.kde.kglobalaccel /component/krunner org.kde.kglobalaccel.Component.invokeShortcut 'run command'</nowiki>}} | |||
* Open logout confirmation screen {{Input|1=<nowiki>qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 -1 -1</nowiki>}} | |||
У i3 ви можете пов'язати комбінацію клавіш із командою за допомогою програми bindsym. Приклад: | У i3 ви можете пов'язати комбінацію клавіш із командою за допомогою програми bindsym. Приклад: | ||
{{Input|1=<nowiki>bindsym $mod+Shift+e exec <команда></nowiki>}} | {{Input|1=<nowiki>bindsym $mod+Shift+e exec <команда></nowiki>}} | ||
If you want to map the modifier key itself, use the '''bindcode''' command - you have to specify the keycode generated by the key, which you can get via the <code>xev</code> utility. | |||
Example for the Meta key: | |||
{{Input|1=<nowiki>bindcode 133 --release exec --no-startup-id <command></nowiki>}} | |||
Уr Bspwn вам слід скористатися програмою <code>bspc</code>. Див. [https://wiki.archlinux.org/index.php/Bspwm#Keyboard вікі Arch Linux], щоб дізнатися більше. | Уr Bspwn вам слід скористатися програмою <code>bspc</code>. Див. [https://wiki.archlinux.org/index.php/Bspwm#Keyboard вікі Arch Linux], щоб дізнатися більше. |
Revision as of 18:58, 1 March 2020
Вступ
KWin — є типовою програмою для керування вікнами у Плазмі. Ця програма має багато можливостей, але у ній передбачено підтримку лише звичайних рухомих вікон. У Плазмі передбачено можливість скористатися іншою програмою для керування вікнами, наприклад i3, bspwm або будь-якою іншою мозаїчною програмою для керування вікнами.
Для більшості засобів керування вікнами потрібні мінімальні зміни у файлах налаштувань, іноді можна обійтися і взагалі без змін.
Деякі речі, які слід брати до уваги, якщо ви хочете скористатися іншою програмою для керування вікнами:
- У мозаїчних засобів керування вікнами можуть виникати проблеми із компонентами, зокрема панелями. У деяких з таких засобів проблеми можна вирішити налаштовуванням.
- У більшості засобів керування вікнами немає власного засобу композиції, тому деякі можливості, зокрема анімація та прозорість, у них є недоступними. Якщо вам потрібні якісь із недоступних ефектів, доведеться скористатися стороннім засобом композиції, наприклад compton.
- Допомогти із усуванням розривів у зображенні на екрані можуть засоби композиції. Втім, вам спершу слід переконатися, що проблему не можна вирішити за допомогою відеодрайверів, оскільки усування цих проблем є найкращим з точки зору швидкодії варіантом.
Використання іншого засобу керування вікнами у Плазмі
На рівні окремого користувача: використання Системних параметрів
Це найпростіший спосіб, але ним можна скористатися лише для окремого користувача системи.
- Створіть скрипт командної оболонки (наприклад, kde-i3.sh) із таким вмістом:
#!/bin/sh export KDEWM=/usr/bin/i3
Замініть /usr/bin/i3 на шлях до бажаної для вас програми для керування вікнами.
- Запустіть Системні параметри
- Виберіть пункт Запуск і вихід
- Виберіть пункт Автозапуск
- Натисніть розташовану під списком кнопку Додати скрипт
- Вкажіть розташування попередньо створеного скрипту або натисніть кнопку із піктограмою теки, щоб скористатися для визначення адреси діалоговим вікном. Натисніть кнопку Гаразд, і скрипт буде додано до списку.
- У стовпчику Момент виконання виберіть зі спадного списку варіант Перед запуском сеансу.
- Вибраний вами засіб для керування вікнами буде використано під час наступного входу до системи.
На загальносистемному рівні: додавання XSession
Якщо у вас є доступ до облікового запису суперкористувача (root), можна створити новий файл сеансу для X.org.
Цей підхід має декілька переваг: альтернативний варіант сеансу буде доступним для усіх користувачів системи, а для того, щоб повернутися до KWin, достатньо буде вийти з системи і увійти до неї знову.
Щоб додати сеанс для альтернативного засобу керування вікнами від імені суперкористувача (root)
- Скопіюйте наявний файл сеансу Плазми
cp plasma.desktop plasma-i3.desktop
- За допомогою текстового редактора відкрийте файл і змініть у ньому запис рядка Exec і, якщо хочете, запис Description
[Desktop Entry] Type=XSession Exec=env KDEWM=/usr/bin/i3 /usr/bin/startplasma-x11 DesktopNames=KDE Name=Plasma (i3) Comment=Plasma by KDE w/i3
- Далі, засіб керування вікнами слід перезапустити. Найпростіше це зробити простим перезавантаженням системи.
Налаштування I3
Встановлення
Перш ніж розпочинати налаштовування, вам слід переконатися, що у системі встановлено i3 або i3-gaps. Якщо це не так, встановіть відповідні пакунки за допомогою програми для керування пакунками або Discover. Вам також слід встановити засіб композиції, оскільки, на відміну від KWin, у i3 немає власного вбудованого засобу композиції. Рекомендуємо скористатися compton.
Створення типових налаштувань i3
Деякі з правил керування вікнами i3 уможливлюють використання вікон сповіщення та інших вікон Плазми як звичайних рухомих вікон:
for_window [title="Desktop — Plasma"] kill; floating enable; border none for_window [class="plasmashell"] floating enable; for_window [class="Plasma"] floating enable; border none for_window [title="plasma-desktop"] floating enable; border none for_window [title="win7"] floating enable; border none for_window [class="krunner"] floating enable; border none for_window [class="Kmix"] floating enable; border none for_window [class="Klipper"] floating enable; border none for_window [class="Plasmoidviewer"] floating enable; border none for_window [class="(?i)*nextcloud*"] floating disable for_window [class="plasmashell" window_type="notification"] floating enable, border none, move right 700px, move down 450px, no_focus
If you wish to maintain the same configuration across users (they can still override it with their own local config), remove the wizard invocation from the global configuration file and use it directly.
The following i3 window rules will help you with notifications and some other plasma windows:
for_window [title="Desktop — Plasma"] kill; floating enable; border none for_window [class="plasmashell"] floating enable; for_window [class="Plasma"] floating enable; border none for_window [title="plasma-desktop"] floating enable; border none for_window [title="win7"] floating enable; border none for_window [class="krunner"] floating enable; border none for_window [class="Kmix"] floating enable; border none for_window [class="Klipper"] floating enable; border none for_window [class="Plasmoidviewer"] floating enable; border none for_window [class="(?i)*nextcloud*"] floating disable for_window [class="plasmashell" window_type="notification"] floating enable, border none, move right 700px, move down 450px, no_focus
If you are using a non-English installation of Plasma, you need to find out what the exact window title of the Desktop is. One way is to do this is with wmctrl -l
.
Instead of adding
for_window [title="Desktop — Plasma"] kill; floating enable; border none
add the name of the window to the i3 config. This example uses the German Plasma installation.
for_window [title="Arbeitsfläche — Plasma"] kill; floating enable; border none
Configure Plasma
You may get into issues related with the "Activities" feature - activating it via keyboard shortcuts (some of which are also used by i3, like "Meta + Q") seems to make i3 unresponsive. Removing Activity related global shortcuts seems to resolve this.
To get the Plasma provided pager display desktops as i3bar, set Pager Settings > General > Text display to "Desktop name"
Налаштування Bspwm
В основному, для bspwm потрібне лише мінімальне додаткове налаштовування.
- Якщо у Плазмі одна панель, у переважній частині випадків bspwm виявляє її належним чином і не розташовує вікна у її частині. Якщо з панеллю виникають проблеми або використовується декілька панелей, слід додати такі рядки до .bspwmrc
bspc config top_padding size
де size— розмір панелі у пікселях. Також можна скористатися параметрами bottom_padding, left_padding та right_padding. Якщо панеле декілька, можна скористатися керуванням панелями довільною кількістю цих інструкцій.
Підказки і настанови
DBus
Відкривати компоненти Плазми можна за допомогою команд DBus. Ви можете пов'язати комбінації клавіш із командами DBus. Щоб визначити потрібну вам команду DBus, скористайтеся QDbusViewer.
You can open some Plasma components with DBus commands. You can use this to map corresponding keybindings to DBus commands. To find a specific DBus command, you can look at dbus-monitor
or qdbusviewer
while you invoke the component in a standard Plasma set-up.
More info on meta key handling:
Декілька прикладів:
- Відкрити Krunner
qdbus org.kde.kglobalaccel /component/krunner org.kde.kglobalaccel.Component.invokeShortcut 'run command'
- Відкрити вікно підтвердження виходу
qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 -1 -1
- Open Krunner
qdbus org.kde.kglobalaccel /component/krunner org.kde.kglobalaccel.Component.invokeShortcut 'run command'
- Open logout confirmation screen
qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 -1 -1
У i3 ви можете пов'язати комбінацію клавіш із командою за допомогою програми bindsym. Приклад:
bindsym $mod+Shift+e exec <команда>
If you want to map the modifier key itself, use the bindcode command - you have to specify the keycode generated by the key, which you can get via the xev
utility.
Example for the Meta key:
bindcode 133 --release exec --no-startup-id <command>
Уr Bspwn вам слід скористатися програмою bspc
. Див. вікі Arch Linux, щоб дізнатися більше.
Додаткові відомості
- Засоби керування вікнами (Вікіпедія)
- Засоби керування вікнами (Вікі Arch Linux)
- Стільничне середовище (Вікіпедія)
- Стільничне середовище (Вікі Arch Linux)