SHIFT is an open source shell built on KDE Plasma Mobile, designed to adapt fluidly to your computing needs across devices
Find a file
Marco Allegretti 0d230c5397 Fix dangling pointers and missing null check in flashlight helper
The two const char* variables were pointing into QByteArray
temporaries that were destroyed at the end of each declaration
statement. By the time they were passed to udev, the memory was
freed. Hold the QByteArrays in named locals so the data stays
alive for the duration of the function.

udev_device_new_from_syspath returns NULL if the syspath is
invalid or the device disappears between enumeration and the
privileged call. Add an early-return guard so the subsequent
udev_device_set_sysattr_value call is never reached with a null
device pointer.

Also drop the unnecessary const_cast: udev_device_set_sysattr_value
takes const char*, not char*.
2026-04-18 19:41:04 +02:00
.reuse Add REUSE license info for HACKING.md 2026-04-14 07:41:20 +02:00
.well-known Add license 2025-07-30 20:55:48 -03:00
bin Switch from maliit-keyboard to plasma-keyboard 2025-12-04 10:06:21 -05:00
components Fix KF6Auth find_package order in kauth helpers 2026-04-18 19:05:11 +02:00
containments Fix app list model filter ordering and reset handling 2026-04-18 19:05:04 +02:00
devices devices: add Fairphone 5 2026-03-02 20:55:35 -05:00
envmanager Disable mobile task switcher in convergence mode 2026-04-17 07:42:45 +02:00
initialstart SVN_SILENT made messages (.desktop file) - always resolve ours 2026-04-06 01:38:32 +00:00
kcms SVN_SILENT made messages (.desktop file) - always resolve ours 2026-03-31 01:41:23 +00:00
kded Install logging categories 2026-04-06 13:39:00 +02:00
kwin Clamp restored window below the dock 2026-04-18 13:20:13 +02:00
layout-templates SVN_SILENT made messages (.desktop file) - always resolve ours 2026-03-15 01:41:15 +00:00
LICENSES Add EUPL-1.2 license headers for Shift-specific files 2026-04-12 15:19:29 +02:00
lookandfeel Remove kirigami version in imports 2026-03-06 22:08:07 -05:00
po GIT_SILENT Sync po/docbooks with svn 2026-04-05 01:49:11 +00:00
quicksettings Fix dangling pointers and missing null check in flashlight helper 2026-04-18 19:41:04 +02:00
screenshots Rename CHANGELOG to OVERVIEW, fix tiling typo 2026-04-18 19:05:19 +02:00
shell SVN_SILENT made messages (.desktop file) - always resolve ours 2026-03-15 01:41:15 +00:00
tests Remove kirigami version in imports 2026-03-06 22:08:07 -05:00
.git-blame-ignore-revs REUSE compliance, add check to CI, drop unused components 2021-12-23 16:02:41 +00:00
.gitignore Ignore build-prefix directory and preview script 2026-04-09 10:15:57 +02:00
.gitlab-ci.yml Ensure i18n is used with double quotes and add CI check 2025-08-11 18:19:41 -04:00
.kde-ci.yml Enable qmllint in CI 2025-08-22 13:42:42 +02:00
CMakeLists.txt Support rootless KAuth install for local development 2026-04-08 19:06:55 +02:00
HACKING.md Update HACKING.md for KWin script loading 2026-04-14 07:17:51 +02:00
logo.png Add repository icon 2021-12-23 22:37:54 +00:00
logo.png.license Fix license header 2021-12-23 22:41:04 +00:00
org.kde.plasma.mobileshell.metainfo.xml GIT_SILENT made messages (after extraction) 2026-03-15 00:47:14 +00:00
OVERVIEW.md Rename CHANGELOG to OVERVIEW, fix tiling typo 2026-04-18 19:05:19 +02:00
OVERVIEW.md.license Rename CHANGELOG to OVERVIEW, fix tiling typo 2026-04-18 19:05:19 +02:00
plasma-mobile.service systemd: default kde-plasma service to tty1 2025-12-13 20:17:47 -05:00
plasma-mobile.service.license systemd: add service file to start Plasma 2024-09-09 15:50:48 +00:00
pm_README.md Rewrite README for Shift 2026-04-10 10:23:10 +02:00
README.md Rename CHANGELOG to OVERVIEW, fix tiling typo 2026-04-18 19:05:19 +02:00
README.md.license Add EUPL-1.2 license headers for Shift-specific files 2026-04-12 15:19:29 +02:00

Shift

SHIFT is an open source shell built on KDE Plasma Mobile, designed to adapt fluidly to your computing needs across devices

Desktop demos

Desktop overview Docked mode Tiling

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

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.