How to Use KDE Plasma's Built-In Tiling Window Features on Fedora

KDE Plasma 6 on Fedora includes a native tiling system that can automatically arrange windows into a grid, activated through System Settings or keyboard shortcuts.

You upgraded to Fedora 41 and the windows won't snap

You upgraded to Fedora 41 and noticed the window manager feels different. You used to rely on a third-party script to snap windows into a grid, but now the settings menu mentions "Tiling" directly. You enable it, hit Meta + T, and nothing happens. Or worse, your windows snap to the edge but do not resize automatically. You are close. The feature is there, but KWin handles tiling differently than the old extensions did.

KDE Plasma 6, which ships with Fedora 40 and later, includes a built-in tiling system directly in KWin. You no longer need external scripts like Krohnkite or Bismuth to get automatic window tiling. The tiling logic is now compiled into the window manager. This means the feature is faster, more stable, and survives updates without breaking.

What's actually happening

KWin is the window manager for KDE Plasma. In Plasma 5, tiling required overlaying a script on top of KWin. Those scripts fought the window manager for control. They listened for window events, calculated new geometries, and sent resize requests back to KWin. This created a feedback loop. Scripts often broke when KWin changed its internal API. They also added latency because the layout calculation happened outside the main compositor thread.

Plasma 6 changed the architecture. Tiling is now a native state inside KWin. Think of it like the difference between using a third-party launcher versus the system shell. The old way was a patch. The new way is the engine. When you enable tiling, KWin takes over layout calculations. It tracks window focus, resizes tiles based on the grid, and manages the split logic internally.

KWin maintains a tiling state per virtual desktop. When you toggle tiling, KWin calculates the current window list and assigns each window to a tile in the grid. If you add a window, KWin resplits the existing tiles to accommodate the new entry. If you close a window, KWin merges the empty space back into the adjacent tile. This logic runs in the main KWin thread, so layout updates happen at the compositor refresh rate. You will not see the lag that external scripts introduce when they query window geometry and send resize requests.

This native integration also improves Wayland support. External scripts often struggled with Wayland's security model, which restricts how applications can query and control windows. KWin tiling works on Wayland because the window manager has full authority over window placement.

Enable and configure tiling

First, verify you are running Plasma 6. Fedora 40 and later ship Plasma 6 by default. If you are on Fedora 39, the built-in tiling system does not exist. You need to upgrade Fedora or use the KDE Store extension.

Check your Plasma version to confirm the environment.

plasmashell --version
# WHY: Confirms you are running Plasma 6. Tiling is a native KWin feature introduced in Plasma 6.
#      Fedora 39 runs Plasma 5 and lacks this functionality.

If the output shows 6.x, proceed. If it shows 5.x, you need to upgrade Fedora. This article assumes Plasma 6.

You can enable tiling via the GUI or the command line. The command line approach shows exactly which configuration keys KWin uses. This helps when debugging later.

Enable tiling by writing the configuration value and restarting the window manager.

kwriteconfig6 --file kwinrc --group Plugins --key kwin_tile_tiling_enabled true
# WHY: Writes the tiling toggle directly to the KWin configuration file.
#      This is the same change the GUI makes, but faster if you prefer the terminal.
kquitapp6 kwin_wayland || kquitapp6 kwin_x11
# WHY: Restarts the window manager to apply the configuration change immediately.
#      Use kwin_wayland for Wayland sessions or kwin_x11 for X11 sessions.

KWin stores user preferences in ~/.config/kwinrc. The system defaults live in /usr/share/kwin/. Never edit files in /usr/share/. Your changes in ~/.config/ override the package defaults and survive updates.

You can also adjust the padding between tiles and the minimum tile size. These settings control how the grid behaves. Higher padding gives windows breathing room. Lower padding maximizes screen real estate. The minimum tile size prevents windows from becoming unusable when the grid splits too many times.

kwriteconfig6 --file kwinrc --group Plugins --group kwin_tile_tiling --key padding 10
# WHY: Sets the pixel gap between tiles.
#      Higher values give windows breathing room. Lower values maximize screen real estate.
kwriteconfig6 --file kwinrc --group Plugins --group kwin_tile_tiling --key minimumTileSize 200
# WHY: Sets the minimum width and height for a tile in pixels.
#      Prevents windows from becoming unusable when the grid splits too many times.

Restart KWin again to apply the layout changes.

kquitapp6 kwin_wayland || kquitapp6 kwin_x11
# WHY: Reloads KWin to pick up the new padding and minimum size values.
#      Layout changes require a restart to recalculate the active grid.

If you have Krohnkite or Bismuth installed, remove them. They conflict with KWin tiling. Run pip3 uninstall krohnkite or delete the script from your autostart. KWin tiling and external scripts fight for the same window events. Running both causes windows to flicker or resize incorrectly.

Verify the tiling state

Open a terminal. Press Meta + T. The window should snap to a tile and resize. Open a second window. It should fill the remaining space. If the windows float freely, tiling is not active.

Verify the configuration value to ensure the toggle is set correctly.

kreadconfig6 --file kwinrc --group Plugins --key kwin_tile_tiling_enabled
# WHY: Reads the current tiling state from the configuration file.
#      Returns true if tiling is enabled, false if disabled.

Check the shortcut binding to ensure Meta + T is not unbound or conflicted.

kreadconfig6 --file kwin_shortcuts --group kwin_tile_tiling --key ToggleTiling
# WHY: Checks the current shortcut binding for the tiling toggle.
#      If this returns an empty value, the shortcut is unbound and will not work.

KWin offers two modes. Full tiling locks the desktop into a grid. Every window is a tile. Quick tiling lets you snap windows manually without forcing a grid on everything. Quick tiling works even when full tiling is disabled. Use Meta + Arrow for quick snapping. This is useful for temporary layouts.

Shortcut Action
Meta + T Toggle tiling mode on the current virtual desktop.
Meta + Arrow Move focus to the adjacent tile.
Meta + Shift + Arrow Move the active window to the adjacent tile.
Meta + Return Swap the active tile with the largest tile.

Press Meta + T. If the window snaps, you are tiling. If it floats, check the shortcut.

Common pitfalls

Tiling state is per virtual desktop. You can have tiling enabled on Desktop 1 and disabled on Desktop 2. This is a common source of confusion. Users toggle tiling on one desktop, switch to another, and wonder why the windows are floating. KWin stores the tiling state separately for each desktop. You must toggle tiling on each desktop individually.

Shortcuts can conflict with other applications. If Meta + T opens a menu instead of tiling, you have a conflict. KWin prints Shortcut "Meta+T" is already used by... in the journal. Run journalctl -xe to see recent errors. The x flag adds explanatory text from systemd, and e jumps to the end. This saves you from scrolling through boot logs. Remap the shortcut in System Settings under Shortcuts > KWin.

Some legacy applications do not respect tiling. Applications that force their own geometry or use non-standard window flags may ignore the tile size. KWin will try to resize them, but the application may override the request. This is rare in modern Qt and GTK apps, but common in older Java or Electron apps. If an app breaks inside a tile, run it in floating mode or use a separate virtual desktop for that workflow.

Wayland sessions handle tiling slightly differently than X11. On Wayland, KWin has stricter control over window placement. Tiling works more reliably on Wayland because the compositor enforces the layout. On X11, misbehaving applications can sometimes escape the tile. If you experience tiling issues, switch to a Wayland session at the login screen. Fedora defaults to Wayland for Plasma, so you are likely already on Wayland.

Run journalctl -xe first. Read the actual error before guessing.

When to use tiling

Use built-in KWin tiling when you want a stable, integrated experience that survives Plasma updates without breaking.

Use Quick Tile shortcuts when you only need to snap a few windows and prefer floating windows for the rest.

Use a third-party tiling window manager like i3 or Hyprland when you need complex layouts, keybindings for every action, or a terminal-centric workflow.

Stay on floating windows when you run legacy applications that break inside tiled layouts or require precise manual positioning.

Where to go next