Commit graph

4225 commits

Author SHA1 Message Date
33ebcce63b Polish gaming mode session flow and legends
Save and restore dynamic tiling across gaming sessions, close conflicting homescreen surfaces when entering gaming mode, and make gamepad legends adaptive for non-gamepad input with wrapped labels.
2026-06-01 15:20:36 +02:00
b0ce6acdea Keep inactive quick-setting tiles clickable
Restore the delegate/status-row enabled shadow property so visual state no longer binds to Item.enabled.

Without this, off tiles become input-disabled and cannot be turned back on.
2026-06-01 15:16:46 +02:00
0ac87a712e Expand dynamic theming regression coverage
Assert the shared surface helper, accent-aware panels, Folio chrome,
and dock labels use the new color path.
2026-06-01 12:38:22 +02:00
b1f8d17f88 Apply accent-aware shell surface theming
Add a shared SurfaceColors helper and route shell, action drawer, popup,
and Folio surfaces through accent-aware background colors.
2026-06-01 12:38:17 +02:00
60a0246256 Add dynamic tiling screenshot to README
Include the new SHIFT dynamic tiling screenshot in README and add its SPDX license sidecar.
2026-06-01 09:54:41 +02:00
847e516fcf Add Shift global theme preview assets
Install dedicated preview, fullscreen, splash, and lockscreen images (with SPDX sidecars) so the Global Theme card and look-and-feel previews represent Shift visuals.
2026-05-31 16:33:25 +02:00
130801a2d4 Refresh symbolic icon set and settings aliases
Replace outdated symbolic geometries with the current curated set and update preference wrappers to match. Add missing alias icons used by System Settings actions (draw-highlight, view-hidden, help-contents, color-picker).
2026-05-31 16:33:19 +02:00
37fa852960 Fix notification drawer text contrast
Force the notifications widget to use the Window color set instead of inheriting parent theme roles, preventing unreadable light-on-light content in the action drawer.
2026-05-31 16:33:12 +02:00
7115cb882d Replace outdated README videos with updated screenshots
Remove old DesktopDemo webm assets and their license sidecars from screenshots. Add SPDX license metadata for SHIFT-main.png and keep README aligned with static screenshot-based docs.
2026-05-31 16:26:37 +02:00
43e1477a14 Guard optional services and trim noisy logs
Skip brightness DBus calls when the service is unavailable and stop\nemitting expected-missing-service debug warnings in optional plugin\npaths.
2026-05-31 14:06:34 +02:00
dd3e366e17 Harden quick settings and volume OSD models
Clamp quick settings page math to valid bounds and guard volume OSD\ncontrols when PulseAudio objects are absent. Remove unused delegate\nrequired properties tied to enabled state.
2026-05-31 14:06:23 +02:00
9a3db42f74 Align Folio surfaces with Shift theme
Use Window color roles for app drawer and overlay scrims, and update\ndock keyboard navigation focus paths. Extend folio and convergence\nregression checks to lock in the new theme and navigation behavior.
2026-05-31 14:06:15 +02:00
08264e5759 Add wallpaper-driven Shift dynamic theming
Expose theme and accent controls in MobileShellSettings and the\nAppearance KCM. Generate ShiftWallpaperDark/Light from Shift base\nschemes, apply them through KDE color tools, and debounce wallpaper\ncolor updates. Register a dedicated dynamic-theming regression test.
2026-05-31 14:06:05 +02:00
4af811c97c Hide homescreen page dots in convergence
The convergence dock is now the bottom navigation surface, including the desktop pager. Hide the legacy homescreen page indicator wrapper there so page dots and drawer affordances do not compete with the dock.
2026-05-29 11:34:49 +02:00
301e3f802b Remove unused right-side desktop pager
All virtual desktop buttons now live beside the Desktop button, so the right-side pager branch can never render. Drop the dead delegate code and guard the dock invariant against reintroducing it.
2026-05-29 11:19:32 +02:00
b80c878487 Make dock pager follow keyboard focus order
Keep keyboard navigation aligned with the compact desktop pager group. Right from the Desktop button now enters the pager, pager buttons expose accessible activation, and focus continues into dock content after the last desktop.
2026-05-29 11:11:59 +02:00
2aae067337 Keep desktop pager buttons together in dock
Show all virtual desktop buttons as one compact group next to the Desktop button instead of splitting them across both dock edges. Update the convergence dock invariant so this layout does not regress.
2026-05-29 11:05:42 +02:00
f09a1db84a Animate dynamic tiling window moves
Add a KWin JavaScript effect for compositor-side size and translation transitions, and enable it in convergence mode. Keep the tile preview effect as an outline driver so nested preview does not activate a SceneEffect surface.
2026-05-27 21:33:34 +02:00
495f76900f Restore dock hover tracking
Replace the fullscreen convergence pointer tracker with edge-local hover areas so dock buttons keep receiving hover, tooltip, and cursor events.
2026-05-27 21:32:18 +02:00
97abf33597 Add dynamic tiling layout menu
Expose layout requests and state through shell settings so Folio
can offer alternatives for the current tiled workspace. Keep KWin
as the owner of layout changes, snapshot request serials so requests
are not dropped, and hide the edge menu when fewer than two windows
are tiled.
2026-05-27 15:48:09 +02:00
1702027f7e Add convergence launcher app lists
Record app launches from window creation so recent and most-used
lists survive after windows close.

Use those models in the convergence launcher and keep the hover
surface in the unified chrome.
2026-05-26 17:27:44 +02:00
d0262d0dd8 Stop double-reserving top chrome
Keep the convergence panel hit area non-reserving so the
explicit topbar-space surface remains the only top strut.
2026-05-26 17:27:44 +02:00
1a70b24c06 Convergence: stabilize workspace scroll gestures
Improve touchpad scroll handling for convergence workflows while avoiding gesture conflicts.

- make SwipeArea handle angleDelta-based touchpad wheel streams and phase-less sequences safely
- wire topbar ActionDrawerOpenSurface to virtual desktop info and horizontal workspace switching logic
- add dock pager wheel switching in FavouritesBar for the vertical wheel axis environments deliver
- prevent wallpaper/home surface touchpad scroll from opening app drawer in convergence
- extend convergence invariant checks for the new gesture paths
2026-05-25 21:59:19 +02:00
30e3006e3f Allow theme identity test without local preview script
preview.sh is an ignored developer helper and is not present in CI
checkouts. Keep validating it when available locally, but in CI check
that it remains ignored instead of failing on a missing file.
2026-05-25 09:30:28 +02:00
3004c34f61 Restore topbar drawer input plumbing
Keep Folio responsible for the visible convergence chrome, but let
the panel containment keep its transparent ActionDrawerOpenSurface
for the topbar hit target. This restores the old click and drag
behavior while keeping the legacy statusbar visual hidden in
convergence.

Add a passive hover-only MouseArea to show the pointing-hand cursor
without stealing input from the drawer swipe surface.
2026-05-25 09:00:34 +02:00
d3ab18d200 Render convergence chrome from Folio
Move the visible convergence top bar, workspace frame, and dock
into one Folio-owned layer-shell surface so startup maps them as
a single piece of chrome. Keep the legacy panel/taskpanel surfaces
for reservations and plumbing, and update the convergence invariant
for the new ownership.
2026-05-25 08:26:58 +02:00
2066a48995 Allow multiple shell input regions
A unified chrome surface needs separate interactive areas for the
top bar and dock while the workspace passes input through. Add
ShellUtil::setInputRegions() and keep setInputRegion() as the
compatibility wrapper.
2026-05-25 08:26:52 +02:00
07f3a46d4b Float convergence drawer content
Size the left drawer surface against the quick settings pane,\nkeep click-away gutters, and align notifications, media, and\ncalendar within the same framed area.
2026-05-24 16:31:28 +02:00
3ab5701819 Tighten convergence drawer invariants
Cover the notification drawer, popup geometry, overlay surfaces,\nand popup dismiss path so the current convergence layout stays\nlocked in.
2026-05-24 15:49:13 +02:00
dd292f83fa Shape the Folio app drawer
Let the shared drawer surface provide the background and stop\nthe Folio subpanels from painting their own opaque rectangles on\ntop of it.
2026-05-24 15:49:08 +02:00
ea564a0d4e Shape the convergence action drawer
Draw a rounded surface behind the quick settings pane that\nfollows the workspace frame instead of layering a second flat panel\non top of it.
2026-05-24 15:49:02 +02:00
2d7e689d8d Add a calendar to the action drawer
Use the unused lower-left convergence space for KDE's MonthView\ninstead of leaving wallpaper exposed below the notification list.
2026-05-24 15:48:57 +02:00
2e8ab6a741 Fix convergence notifications
Filter @other out of the history blacklist so senders without a\ndesktop entry still land in the drawer. Keep the convergence empty\nstate, dismiss path, and popup geometry aligned with the current\nframe and dock layout.
2026-05-24 15:48:49 +02:00
25d11acacd Connect app drawer to workspace frame 2026-05-23 15:58:56 +02:00
afe97d41f8 Show X for Overview desktop deletion
KWin Overview 6.6 asks for the raw delete icon name on its virtual desktop delete button. Provide delete and delete-symbolic in the Shift icon theme, and point nearby KDE delete aliases at the existing close glyph so the button renders as an X instead of a fallback icon.

Guard the aliases in the icon theme coverage check.
2026-05-23 15:33:48 +02:00
a3e6182086 Hide convergence chrome in Overview
Track KWin Overview through the activeEffects DBus property and expose the state to Folio QML. Hide the workspace frame, dock overlay, and in-containment favourites scrim while Overview is active so the effect does not show Shift shell chrome in its desktop view.

Set the state before invoking the Overview shortcut from Folio so the chrome is already gone when KWin starts composing the effect. The convergence dock invariant now guards both the hide rules and this ordering.
2026-05-23 15:33:23 +02:00
02170250f1 Ungroup Running panel windows
Show each running window as its own card in the Folio Running
panel, including duplicate apps. When a card is dropped on another
desktop, still call requestVirtualDesktops() after notifying dynamic
tiling so the move actually completes. Add a guard to keep both
behaviors from regressing.
2026-05-23 09:52:51 +02:00
d9943d2e7a Let symbolic icons follow the color scheme
Declare FollowsColorScheme=true for the Shift icon theme so KDE apps recolor symbolic Places glyphs against dark and light surfaces. Document the requirement and guard it in the icon theme coverage test.
2026-05-23 09:30:21 +02:00
6cc92b7fa2 Add SPDX headers to motion QML components
Add missing SPDX copyright and license tags to Motion.qml,
MotionColorAnimation.qml, MotionNumberAnimation.qml, and
MotionStateLayer.qml to satisfy REUSE lint in CI.
2026-05-23 09:18:53 +02:00
36d9004473 Round normal window decorations
Reserve side and bottom decoration borders for normal windows and draw a rounded decoration frame so windows match the convergence workspace shape. Add static guards for the decoration and existing workspace-frame corner geometry.
2026-05-23 08:53:02 +02:00
d03f3585a3 Block native window menu during tiling 2026-05-22 09:39:45 +02:00
e951690c91 Route Folio task actions through tiling 2026-05-22 09:39:28 +02:00
5311dc8fe8 Own dynamic tiling window workflows 2026-05-22 09:39:11 +02:00
24e410c733 Respect animation settings in navigation tutorial
Gate the navigation KCM tutorial timings on ShellSettings animationsEnabled so the demo stops animating when the user disables shell animations.
2026-05-21 11:15:01 +02:00
753909a6ce Move shell and KWin surfaces to shared motion
Apply Motion tokens to startup, applet configuration, lockscreen controls, logout and splash transitions, KWin effects, and the mobile task switcher. Preserve timing-specific behavior where it drives runtime state.
2026-05-21 11:14:42 +02:00
88a4f5883b Move Folio gaming surfaces to shared motion
Use Motion tokens for the Game Center overlay, gaming HUD, quick settings drawer, and running-games panel. Keep gaming mode settings and gamepad behavior unchanged.
2026-05-21 11:14:00 +02:00
a37734b74a Move homescreens to shared motion
Use Motion wrappers and state layers across Folio and Halcyon delegates, drawers, folders, resize handles, and dock feedback. Also align Folio edit/drop highlights with theme colors instead of fixed white overlays.
2026-05-21 11:13:36 +02:00
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