Introduce a declarative KWin script that maintains a binary-space partition layout per output for normal windows in convergence mode. New windows are added to the active screen and the layout is recomputed with 8 px outer and 8 px inner gaps; closed windows are removed and neighbours expand to fill the freed area. Windows that fail isTileable (panels, fixed-size dialogs, fullscreen, xwaylandvideobridge, manually-floated) are left untouched. A 200 ms deferred-retile timer mirrors the convergentwindows pattern so the dockSpaceReserver layer-shell exclusive zone is settled before clientArea is queried. Dragging a tile and dropping it onto another tile swaps the two slots in the BSP layout; an outline is drawn on the hovered target as a visual cue. Drops elsewhere snap the tile back to its original slot and leave KWin native quick-tile and electric borders untouched. Keyboard bindings: Meta+H/J/K/L focus left/down/up/right Meta+F toggle float on the active window Meta+T toggle tiling globally |
||
|---|---|---|
| .reuse | ||
| .well-known | ||
| bin | ||
| color-schemes | ||
| components | ||
| containments | ||
| devices | ||
| envmanager | ||
| icons | ||
| initialstart | ||
| kcms | ||
| kded | ||
| kwin | ||
| layout-templates | ||
| LICENSES | ||
| lookandfeel | ||
| po | ||
| quicksettings | ||
| screenshots | ||
| shell | ||
| tests | ||
| wallpapers | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .kde-ci.yml | ||
| CMakeLists.txt | ||
| HACKING.md | ||
| logo.png | ||
| logo.png.license | ||
| Nebra.code-workspace | ||
| org.kde.plasma.mobileshell.metainfo.xml | ||
| OVERVIEW.md | ||
| OVERVIEW.md.license | ||
| plasma-mobile.service | ||
| plasma-mobile.service.license | ||
| pm_README.md | ||
| README.md | ||
| README.md.license | ||
Shift
SHIFT is an open source shell built on KDE Plasma Mobile, designed to adapt fluidly to your computing needs across devices
Desktop demos
Shift is a fork of plasma-mobile. The upstream phone UI is untouched; convergence adds a layer on top.
What convergence mode changes
-
Navigation panel replaced by a dock with running-app indicators, favourites, context menus, and hover tooltips
-
App drawer opens as a floating popup above the dock
-
Window management: edge tiling, edge maximize, close buttons, task context menus, Overview integration
-
Status bar gains a system tray, date display, and hover highlights
-
Screen space reserved for the dock via layer-shell exclusive zone
-
Desktop niceties: right-click wallpaper settings, minimize-all on home press, clickable page indicators
Locations
- components/mobileshell - private shell component library
- containments - shell panels (homescreens, status bar, task panel)
- envmanager - convergence mode environment manager (kwinrc, etc.)
- kwin/scripts - KWin scripts for convergence window behaviour
- kcms - settings modules
- look-and-feel - Plasma look-and-feel packages
- shell - Plasma shell package
- quicksettings - quick settings for the action drawer
Building
cmake -B build -DPLASMA_MOBILE_LOCAL_KAUTH_INSTALL=ON
cmake --build build
cmake --install build
Disclaimer
SHIFT is an independent project based on KDE Plasma Mobile.
It is not affiliated with or endorsed by KDE or the KDE community.
Some visual elements (such as icons or graphical assets) may originate from KDE Plasma Mobile and are used in accordance with their respective licenses. These elements may be replaced in future versions as the project evolves.
All trademarks, including KDE, belong to their respective owners.
Upstream Relationship
SHIFT is not intended as a direct contribution to KDE Plasma Mobile.
However, if parts of this project are considered useful, contributions or ideas may be proposed upstream in a collaborative manner.
See pm_README.md for the original Plasma Mobile README.
License
SHIFT-specific code is licensed under the European Union Public Licence 1.2.
Upstream files retain their original licenses (GPL-2.0-or-later, LGPL-2.1-or-later, etc.). See individual file headers and the .reuse/dep5 manifest for details.