diff --git a/HACKING.md b/HACKING.md index 20a28612..c4ad2092 100644 --- a/HACKING.md +++ b/HACKING.md @@ -1,6 +1,6 @@ # Hacking on Shift -Shift is a convergent Plasma Mobile shell. This guide covers +Shift is a convergent shell built on Plasma Mobile components. This guide covers building and testing it locally without polluting your host system. The approach: keep every build dependency inside a **distrobox** container @@ -89,8 +89,8 @@ sudo zypper install --no-confirm \ ### Runtime dependencies (needed for preview, not for compilation) -The nested preview runs the system `plasmashell` binary. It needs a -complete Plasma Mobile runtime so all QML imports resolve: +The nested preview runs the system `plasmashell` binary. It needs the +complete runtime from the Plasma Mobile stack so all QML imports resolve: ```bash sudo zypper install --no-confirm \ @@ -204,6 +204,7 @@ export EGL_PLATFORM=wayland export QT_QUICK_CONTROLS_STYLE=org.kde.breeze export QT_QUICK_CONTROLS_MOBILE=true export PLASMA_PLATFORM=phone:handset +# Compatibility note: the runtime shell package id intentionally remains upstream. export PLASMA_DEFAULT_SHELL=org.kde.plasma.mobileshell export QT_FORCE_STDERR_LOGGING=1 exec plasmashell --replace -p org.kde.plasma.mobileshell @@ -212,7 +213,8 @@ ENDSCRIPT # Expose the project prefix to the host kwin_wayland so it can find # KWin scripts (convergentwindows) and their QML dependencies. -# Also overlay ~/.config/plasma-mobile so KWin reads the mobile kwinrc +# Also overlay ~/.config/plasma-mobile so KWin reads the mobile kwinrc. +# That path is intentionally preserved for compatibility with existing config handling. # (envmanager writes convergentwindowsEnabled, Placement, etc. there). export XDG_DATA_DIRS="$PREFIX/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" export XDG_CONFIG_DIRS="$HOME/.config/plasma-mobile:${XDG_CONFIG_DIRS:-/etc/xdg}" @@ -234,9 +236,9 @@ Make it executable: `chmod +x preview.sh`. 1. `dbus-run-session` spins up an isolated D-Bus session so the nested compositor doesn't clash with your running desktop. 2. Four environment exports give the **host** `kwin_wayland` access to - the project's `.prefix` (KWin scripts, QML plugins) and to - `~/.config/plasma-mobile` (where envmanager writes convergence - settings like `convergentwindowsEnabled`, `Placement`, etc.). + the project's `.prefix` (KWin scripts, QML plugins) and to + `~/.config/plasma-mobile` (the preserved compatibility path where envmanager writes convergence + settings like `convergentwindowsEnabled`, `Placement`, etc.). 3. `kwin_wayland` opens a window on your current desktop and creates a Wayland socket named `shift-kwin`. Because of the exports it can load the `convergentwindows` script, which handles maximising diff --git a/OVERVIEW.md b/OVERVIEW.md index 99c07272..4288cdce 100644 --- a/OVERVIEW.md +++ b/OVERVIEW.md @@ -1,11 +1,8 @@ # Shift -A fork of KDE Plasma Mobile that adds a desktop-class convergence mode. - -Plasma Mobile is a phone shell. It doesn't try to be anything else. -Shift picks up where it leaves off: when you connect a monitor, keyboard, -or mouse, the same device should feel like a desktop. No second OS, no -separate session — one shell that adapts. +Shift is a fork of KDE Plasma Mobile focused on convergence. +When you connect a monitor, keyboard, or mouse, the same shell should still +work as a desktop-style environment. No second OS, no separate session. ## What's different from upstream @@ -15,6 +12,10 @@ that still works. Shift adds a **convergence mode** layer on top — toggled via `plasmamobilerc` — that swaps in desktop-oriented behaviour without replacing the phone UI underneath. +Compatibility-sensitive runtime identifiers such as +`org.kde.plasma.mobileshell` remain upstream-looking for now. The product is +SHIFT; the preserved identifiers are part of the current compatibility layer. + Key changes so far: - **Unified dock** replacing the navigation panel in convergence mode, diff --git a/README.md b/README.md index 903c2186..12c80f7d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Shift - SHIFT is an open source shell built on KDE Plasma Mobile, designed to adapt fluidly to your computing needs across devices +SHIFT is an independent shell fork focused on convergence. It builds on KDE Plasma Mobile, keeps the upstream phone UI available, and layers desktop-oriented behaviour on top of the same session. ### Desktop demos @@ -8,8 +8,8 @@ ![Docked mode](screenshots/quick_DesktopDemo_docked.webm) ![Tiling](screenshots/quick_DesktopDemo_tiling.webm) -Shift is a fork of [plasma-mobile](https://invent.kde.org/plasma/plasma-mobile). -The upstream phone UI is untouched; convergence adds a layer on top. +SHIFT tracks [plasma-mobile](https://invent.kde.org/plasma/plasma-mobile) as its upstream base. +The upstream phone UI remains intact; convergence-specific behaviour is added on top. ### What convergence mode changes @@ -43,6 +43,10 @@ cmake --build build cmake --install build ``` +Compatibility-sensitive identifiers such as `org.kde.plasma.mobileshell` +are intentionally preserved in the runtime and build instructions. They are +part of the current compatibility boundary, not the public product name. + ### Disclaimer SHIFT is an independent project based on KDE Plasma Mobile. @@ -61,7 +65,6 @@ 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](pm_README.md) for the original Plasma Mobile README. ---