KWin is the default window manager (WM) in Plasma and has lot of features, but it only supports floating windows. Plasma lets you use another window manager, such as i3, bspwm or any other tilling window manager.
|Other window managers are only available when using X.org. These changes cannot be made for Wayland sessions yet. With Wayland maturing and Wayland extensions being standardized, this feature could be implemented in Wayland|
Most window managers require few, if any, changes to their configuration files.
Some considerations to be aware of when using another window manager:
This is the simplest method, but only affects the user for which it is added.
#!/bin/sh export KDEWM=/usr/bin/i3
Replace /usr/bin/i3 with the path to the window manager desired.
If superuser (root) access is available, a new session file for X.org can be created.
This has several advantages: the alternate session is available to all users of the system, and changing back to KWin is as simple as logging out and back in.
|The XSession file location varies between distributions, but is most of the time found in /usr/share/xsessions.|
To add a session for an alternate window manager as superuser:
cp plasma.desktop plasma-i3.desktop
[Desktop Entry] Type=XSession Exec=env KDEWM=/usr/bin/i3 DesktopNames=KDE Name=Plasma (i3) Comment=Plasma by KDE w/i3 X-KDE-PluginInfo-Version=5.14.4
|Ensure the correct path and name of the window manager application are used when modifying the Exec directive. If KDE is unable to start the window manager, the session will fail and the user will be returned to the login screen.|
Before starting the configuration, you should make sure i3 or i3-gaps are installed on your system. If they are not, use your package manager or Discover to install one of these two packages. You should also install a compositor such as "compton", since unlike KWin, i3 doesn't ship with an integrated compositor.
|If you already have an i3 configuration file (usually at |
Open a console and type
i3-config-wizard. This command opens a small window that will help you create a configuration file.
Some i3 window rules help you to have notifications and some other plasma windows as floating 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
For the most part, bspwm requires little additional configuration.
bspc config top_padding sizewhere 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.
You can open some Plasma components with DBus commands. So you can map keybinding to these DBus commands. To find a specific DBus command, you can look at QDbusViewer.
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
For i3, you can map a keybinding with the bindsym command. Example:
bindsym $mod+Shift+e exec <command>
For Bspwn, you need to use the
bspc program. See Arch Linux wiki for more information.