Tutoriels/Utiliser d'autres gestionnaires de fenêtres avec Plasma
Introduction
KWin est le gestionnaire de fenêtres (WM) dans Plasma et à de nombreuses fonctionnalité, mais ne supporte uniquement des fenêtres flottantes. Plasma vous laisse utiliser un autre gestionnaire de fenêtres par exemple i3, bspwm ou n'importe quelle autre gestionnaire de fenêtre par pavage.
Beaucoup de gestionnaire de fenêtre nécessite peu, voire aucune, modifications de leurs fichiers de configuration.
Quelques considérations à prendre en compte lorsque vous utilisez un autre gestionnaire de fenêtres :
- Empiler les gestionnaires de fenêtres peut générer des problèmes avec les composants tels que les panneaux. Pour certaines configurations, certaines options aideront à surmonter les problèmes
- La plupart des gestionnaires de fenêtres ne possèdent pas leur propre compositeur, c'est pourquoi certaines fonctionalités leur sont absentes comme les animations ou a transparence. Si de tels effets sont souhaités, un compositeur tel que compton est nécessaire.
- Compositors can also help with screen tearing, however check first if you can resolve it with your video drivers, as this will be a more performant solution in most cases.
Utiliser un autre gestionnaire de fenêtre avec Plasma
Mono utilisateur : utiliser les paramètres système
Ceci est la méthode la plus simple, mais elle ne concerne que l'utilisateur pour lequel elle a été ajoutée.
- Créer un script shell (kde-i3.sh par exemple), contenant ceci
#!/bin/sh export KDEWM=/usr/bin/i3
Remplacer /usr/bin/i3 par le chemin du gestionnaire de fenêtres choisi.
- Démarrer la configuration système
- Selectionner Démarrage et fermeture
- Selectionner Autodémarrage
- Cliquer sur le bouton Ajouter un script en-dessous de la liste
- Entrez l'emplacement du script créé plus tôt, ou uilisez l'icône de dossier pour obtenir un dialogue pour le rechercher. Cliquez OK, le script sera ajouté à la liste
- Dans la colonne Démarrer sur, sélectionnez Avant le démarrage de la session à partir de la liste déroulante
- Le gestionnaire de fenêtres choisi sera utilisé la prochaine fois que vous vous connecterez
Système étendu: ajouter une session X
Si l'accès super-utilisateur (root) est disponible, un nouveau fichier de session pour X.org peut être créé.
Cela à plusieurs avantages : la session alternative est disponible pour tous les utilisateurs, et pour réutiliser KWin, il suffit de se déconnecter et de se reconnecter.
Pour ajouter une session concernant un gestionnaire de fenêtres supplémentaire en tant que super-utilisateur :
- Copier le fichier de session Plasma existant
cp plasma.desktop plasma-i3.desktop
- En utilisant un éditeur de texte, ouvrez le fichier et modifiez la ligne Exec , et éventuellement la 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
- Le gestionnaire d'écran doit être redamarré, le plus facilement en redémarrant la machine.
Exec
command. If blank spaces are found the Desktop Entry is not shown in the session menu.
To workaround this, create a script named plasma-i3.sh
containing the following:#!/bin/sh export KDEWM=/usr/bin/i3 /usr/bin/startplasma-x11Set execution permissions for the script and reference it in plasma-i3.desktop, for example:
Exec=/usr/local/bin/plasma-i3.sh
Configuration de I3
Installation
Avant de commencer la configuration, vous devez vous assurer que i3 ou i3-gaps sont installés sur votre système. S'ils ne le sont pas, utilisez votre gestionnaire de paquets ou Discover pour installer l'un de ces deux paquets.
Configurer i3
Lorsque vous exécutez i3 pour la première fois, sa configuration globale par défaut (dans /etc/i3/config
) va lancer i3-config-wizard, qui fournit un dialogue pour la sélection de clé Mod et génère la configuration locale de l'utilisateur dans ~/.i3/config
.
Si vous voulez conserver la même configuration pour tous les utilisateurs (ils pourront encore le réécraser avec leur propre configuration locale), supprimez l'appel de l'assistant du fichier de configuration global et utilisez le directement.
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 [class="plasmashell" window_type="notification"]
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
Notification positioning can be tricky, since not all notifications have the same size depending on their content. You can also use coordinates positioning, knowing your screen resolution. For example, for a 1920x1080 screen and notifications in the top-right corner we can use:
for_window [class="plasmashell" window_type="notification"] floating enable, border none, move position 1450px 20px
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"
Configuration de bspwm
Dans la plupart des cas, bspwm demande quelques petites déclarations supplémentaires.
- A single Plasma panel, in most cases, is detected properly and bspwm will not place windows in its space. If the panel ends up presenting a problem, or when using multiple panels, the following may be added to .bspwmrc
bspc config top_padding size
where size is the size of the panel in pixels. Also valid are bottom_padding, left_padding, and right_padding. As many of these directives may be used as necessary for multiple panels.
Conseils et astuces
DBus
Vous pouvez ouvrir certains composants Plasma avec les commandes DBus. Ainsi vous pouvez créer des raccourcis clavier vers ces commandes DBus. Pour trouver une commande DBus spécifique, vous pouvez utiliser 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:
Quelques exemples :
- Ouvrir Krunner
qdbus org.kde.kglobalaccel /component/krunner org.kde.kglobalaccel.Component.invokeShortcut 'run command'
- Ouvrir l'écran de confirmation de déconnexion
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
Pour i3, vous pouvez définir un raccourci clavier avec la commande bindsym. Exemple :
bindsym $mod+Shift+e exec <command>
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>
Pour Bspwn, vous devez utiliser le programme bspc
. Voir le wiki de l'archive linux pour plus d'informations.
Davantage d'informations
- Gestionnaires de fenêtres (Wikipedia)
- Gestionnaires de fenêtres (Arch Linux wiki)
- Environment du bureau (Wikipedia)
- Environment du bureau (Arch Linux wiki)