Commit graph

4178 commits

Author SHA1 Message Date
7f9087f342 Move shell popups to shared motion
Apply Motion tokens to notification drag and stack transitions, volume OSD feedback, KRunner field state, media controls height changes, and action-button popup affordances. Leave timeout and marquee animations as timing behavior.
2026-05-21 11:13:06 +02:00
1074b86225 Move shell chrome to shared motion
Use the Motion wrappers for action-drawer transitions, status bar feedback, panel reveal motion, startup feedback, and shell homescreen chrome. Keep non-animation settings reads in ShellSettings where they still control behavior.
2026-05-21 11:12:44 +02:00
8767df8b10 Add shared mobile shell motion primitives
Introduce a central Motion singleton for animation durations, easing, and press scale tokens. Add typed NumberAnimation/ColorAnimation wrappers and a reusable state-layer component so runtime QML can share the same animation policy.
2026-05-21 11:12:20 +02:00
75b9049a8c Page dynamic tiles by workspace
Keep one layout per output and virtual desktop. Move new windows to another existing desktop when the current page is full.

When a user moves a window onto a full page, replace the last focused window on that page and send it back to the source desktop. Use stable slot swaps instead of insert splits so the layout shape does not change during moves.
2026-05-20 09:38:37 +02:00
40beabede9 Keep tile preview effect inert
Nested KWin blacks out when this scene effect becomes visible. Leave the effect disabled and let the tiling script own swap and restore outlines.
2026-05-20 09:38:22 +02:00
f2f6f6f890 Stabilize nested preview startup
Use a concrete wallpaper image in generated shell config. Disable KSycoca watches when preview opts out, and keep the convergent window connection target nullable.
2026-05-20 09:38:08 +02:00
d2b3445f98 Ignore preview runtime state 2026-05-20 09:37:38 +02:00
cb4d842de3 Add primary tile promotion 2026-05-19 10:01:45 +02:00
7c51f76cc0 Reduce dynamic tile drag jitter 2026-05-19 10:00:43 +02:00
c6bd37dfc3 Stabilize automatic tile layouts 2026-05-19 09:55:25 +02:00
e0e51d7ffd Add dynamic tile drag preview 2026-05-19 09:47:45 +02:00
6df3bd6ff5 Fix REUSE parsing of theme test 2026-05-19 09:26:51 +02:00
8a9f31aee2 Drop po rename invariant 2026-05-19 09:19:57 +02:00
d095eb97bc Guard convergence shell geometry 2026-05-19 09:18:46 +02:00
3076734300 Raise convergence app drawer 2026-05-19 09:18:46 +02:00
6d766892b5 Unpage convergence quick settings 2026-05-19 09:18:46 +02:00
c38b32042b Fit action drawer surface 2026-05-19 09:18:46 +02:00
ae3319b120 Frame convergence work area 2026-05-19 09:18:46 +02:00
8dd3bfbb07 tools: install local preview QML stubs
openSUSE Tumbleweed's plasma6-nm 6.6.4 does not ship the org.kde.plasma.networkmanagement.cellular QML submodule that SignalStrengthInfo.qml imports unconditionally. Without it the MobileShell QML namespace fails to load and preview boots to a black screen.

Keep a minimal fallback module under tools/preview-stubs and install it only for local .prefix preview installs by default, with SHIFT_INSTALL_PREVIEW_QML_STUBS=AUTO/ON/OFF for explicit control. Add a CTest guard so qmldir entries stay backed by real files and the fallback remains tied to the QML import tree.
2026-05-19 09:18:46 +02:00
8e25b68355 quicksettings: request -symbolic icons for masked tiles
Kirigami.Icon { isMask: true } flattens an SVG to its alpha, so when a quick-setting tile resolves to a colored preferences/scalable glyph the whole rounded background collapses into a solid square. Append -symbolic to the five icon names that collided with colored tiles and add symlink aliases where no real symbolic variant exists yet. Guard the regression with a check in tests/check-shift-icon-theme.sh.
2026-05-19 09:18:46 +02:00
d1e55a47a7 Guard explicit Breeze QQC2 fallback
Keep Breeze QQC2 as an intentional dependency until Shift ships a real QQC2 or widget style. Extend the theme identity test to reject fake Shift style selectors and require the fallback to stay documented in launch paths.
2026-05-19 09:18:46 +02:00
1de58ed486 Add initial Shift desktop theme frame assets
Provide the first real Shift Plasma desktop theme SVGs for panel and widget frames used directly by the shell. Cover dark and light modes, including solid panel backgrounds for opaque panel states.

Extend the theme identity test so the desktop themes cannot regress to metadata-only packages.
2026-05-19 09:18:45 +02:00
85f102a2d1 Document Breeze QQC2 fallback
Mirror the runtime launcher and preview comments in HACKING.md so the remaining org.kde.breeze QQC2 style reference is documented as an explicit dependency, not a Shift theme selector.
2026-05-19 09:18:45 +02:00
65efc37410 Unify Shift theme identity 2026-05-19 09:18:32 +02:00
e54696b5c6 Make icon theme test BusyBox-compatible
BusyBox find does not support GNU find's -xtype predicate, which
caused shift-icon-theme-coverage to fail in CI. Iterate symlinks with
portable find -type l -print0 and let Bash check whether each target
exists instead.
2026-05-17 18:31:58 +02:00
a338369457 Improve dynamic tiling layout handling
Replace the flat per-screen tiling order with a persistent layout
tree so split orientation and window relationships survive retiles.
Derive the per-screen tile cache from the tree when applying
geometries.

Make drag insertion deterministic by mapping the cursor position
over a target tile to the nearest split direction and previewing
the exact half that will be assigned.

Retile on Workspace.onScreensChanged so screen rotation and output
changes recompute tiled window geometry from the updated work area,
and reconcile tiled windows that KWin moved to another output.
2026-05-17 18:26:28 +02:00
40d0828343 Add SPDX header to icon theme REUSE test 2026-05-17 17:46:43 +02:00
d9877b86d0 Merge feature/identity-desktoptheme-font
Bring the Shift identity, metadata, containment, KCM/KDED, and documentation updates into the main integration branch.
2026-05-17 17:30:50 +02:00
af190a813e Clarify Shift product framing in docs
Rewrite the main project docs to present SHIFT as the product and Plasma Mobile as the upstream base. Keep compatibility-sensitive runtime identifiers such as org.kde.plasma.mobileshell and ~/.config/plasma-mobile explicit in the hacking guide instead of treating them as product identity.
2026-05-17 17:26:52 +02:00
f00a29bd21 Brand KCM and KDED metadata as SHIFT
Point the mobile shell, navigation, and Waydroid KCM metadata at the Shift repository. Brand the KDED startup and APN autodetect module names and descriptions as SHIFT while keeping existing plasma-mobile plugin/library identifiers stable.

Add a guard for these metadata surfaces so upstream project URLs and translated Plasma Mobile overrides are not reintroduced.
2026-05-17 16:31:45 +02:00
82316c393e Brand containment metadata as SHIFT
Point homescreen and panel containment metadata at the Shift repository. Update the panel and task-panel descriptions from Plasma Mobile to SHIFT, and remove translated descriptions that would override the corrected base metadata.

Add a containment metadata guard while preserving the existing org.kde.plasma.mobile.* applet target IDs.
2026-05-17 16:27:48 +02:00
d0967c100f Brand quick settings metadata as SHIFT
Update quick setting package metadata to use SHIFT-facing descriptions and repository links while preserving org.kde.plasma.quicksetting.* package IDs. Drop translated Description entries that could override the corrected base descriptions, update the Caffeine inhibition reason, and add a guard for future regressions.
2026-05-17 16:09:52 +02:00
4b34bca697 Brand initial setup module metadata as SHIFT
Update first-run KPackage descriptions and websites so package-visible metadata points at SHIFT while keeping the existing mobileinitialstart package IDs stable. Remove localized Description entries that could override the new SHIFT-facing base descriptions. Add a CTest guard for the first-run module metadata.
2026-05-17 15:54:55 +02:00
18bef9a573 Brand product metadata as SHIFT
Update session, AppStream, service, shell metadata, and initial setup about/defaults to use SHIFT-facing product metadata while keeping runtime package IDs and executable names stable. Install Shift AppStream metadata and remove stale upstream metainfo from existing prefixes. Add a guard for product metadata branding.
2026-05-17 15:44:56 +02:00
a3173160e2 Render shell-owned icons with theme masks
Use masked Kirigami icons with explicit theme colors for shell controls so the Shift icon theme renders reliably across light and dark surfaces. Replace the status-bar battery helper with theme icon names so battery glyphs also come from org.shift.icons.

Give the app-thumbnail close affordance a symbolic white X on a dark circular backing so it remains visible over previews.
2026-05-17 08:57:06 +02:00
e6f076ed54 Add Shift icon theme and coverage guard
Install org.shift.icons as the look-and-feel icon theme while keeping the Plasma style on breeze-dark. Add the icon-theme coverage guard and CTest registration so shell, System Settings, KCM, and installed Plasma icon names do not silently fall back to missing Breeze-only assets.

Document the theme rules and add scoped REUSE metadata for the Phosphor-derived SVG glyphs.
2026-05-17 08:56:33 +02:00
453c580444 Drop empty Shift desktop theme package
The package shipped no overrides and only inherited the system
default theme, so it had no visible effect. Authoring a correct
FrameSvg override needs a separate, designed effort.
2026-05-14 09:56:20 +02:00
ce5fbf8bea Bundle Atkinson Hyperlegible font files
Vendor the upstream OFL-1.1 variable TTFs so the default
look-and-feel font is actually available.
2026-05-14 09:34:10 +02:00
64e9bdf5db Use Atkinson Hyperlegible as default font
Add a Shift desktop theme package and point the look-and-feel
defaults at Atkinson Hyperlegible Next / Mono.
2026-05-14 09:34:10 +02:00
f22514528b Show timezone selection feedback
Keep the selected timezone visible in the wizard and update it before applying the system timezone.

Filter by city or zone name and report timedatectl failures without discarding the staged choice.
2026-05-11 10:03:20 +02:00
42d41351e2 Add profile-aware initial setup
Detect the device class, stage the selected experience, and write the resulting setup choices through SetupState.

Load the new device and experience modules before the existing setup pages, and use the Shift icon on the finished page.
2026-05-11 10:03:07 +02:00
1b8efc3be3 Use Activities icon for overview button
Replace the redundant app-grid icon with the Activities icon in the
Folio dock overview button.
2026-05-10 09:32:37 +02:00
3fbf68d56b Refine Dynamic Tiling drag zones
Use edge insert zones for drag-and-drop reordering, keep drag signal
connections stable across window creation, and consume task-menu tiling
requests through the script settings bridge.
2026-05-10 09:32:33 +02:00
3f6916cafc Add Dynamic Tiling task menu request bridge
Expose a KConfig-backed request channel in MobileShellSettings and use
it from the Folio task menu to request float/tile actions for a single
window.
2026-05-10 09:32:25 +02:00
3fde6cd173 Use Shift logo in nav UI
Replace the remaining KDE start-here icon in the navigation
tutorial preview and the mobile task switcher.
2026-05-09 13:55:26 +02:00
3c2d8fb602 Add activity actions to dock menu
Expose activity placement controls for running tasks in
convergence mode. The dock menu can now move a window to the
current activity, all activities, or a specific activity.
2026-05-09 13:55:23 +02:00
6ee9cb62a3 Fix Folio trash D-Bus call
Restore the /trash object path in emptyTrash(). The current
argument list is malformed and breaks the Folio plugin build.
2026-05-09 13:55:19 +02:00
ca557f1c2b Delay convergence dock tooltips
Stop dock tooltips from appearing immediately under the pointer and
hide them as soon as the user presses or opens a context menu.
2026-05-09 10:49:25 +02:00
a9e5a2f1e4 Add virtual desktop actions to the dock pager
Open desktop management from the convergence pager and let the
pager add or remove the last virtual desktop without leaving the
dock.
2026-05-09 10:48:52 +02:00
ebb80d5838 Add desktop actions to the dock button
Open the desktop button context menu on right click or press and
hold, and expose Minimize All Windows through KWin's existing
global shortcut.
2026-05-09 10:47:41 +02:00