Commit graph

3982 commits

Author SHA1 Message Date
21201f1e32 Update CHANGELOG with thumbnail and bug fixes
Add thumbnail preview feature and the three convergence bug
fixes: minimized windows staying in dock, drawer overlay not
covering dock icons, and new-process launch behaviour.
2026-04-10 13:14:03 +02:00
55b985bc89 Exclude dock area from drawer dismiss overlay
The click-to-dismiss overlay for the app drawer popup
covered the dock, intercepting taps on dock icons. Add a
bottom margin equal to the dock height in convergence mode
so dock icons remain interactive.
2026-04-10 13:04:10 +02:00
92a9e2714c Keep minimized windows visible in dock
filterHidden: true removed minimized windows from the
TasksModel because on Wayland IsHidden maps to IsMinimized.
Set filterHidden to false so minimized apps remain in the
dock and can be restored by tapping their icon.
2026-04-10 13:04:04 +02:00
70c1810d82 Skip window activation in convergence mode
In phone mode, tapping a running app activates its existing
window. In convergence mode this prevents launching a new
instance of the same application.

Skip activateWindowByStorageId when convergence mode is
enabled so that launchApp is always reached, matching
standard desktop launcher behaviour.
2026-04-10 13:03:57 +02:00
29ce5117ff Show window thumbnail on dock icon hover
Hovering a running-app icon in the dock shows a live PipeWire
thumbnail of the window via zkde_screencast. Falls back to the
app icon when the stream isn't available. Clicking the thumbnail
activates the window.

Uses a tooltip-type Window so the popup renders above app windows
instead of being clipped to the panel surface.
2026-04-10 10:23:36 +02:00
2d708c028b Add CHANGELOG 2026-04-10 10:23:22 +02:00
b69a4c457c Rewrite README for Shift
The upstream plasma-mobile README is kept as pm_README.md.
The new README covers what Shift is, what convergence mode
does, and how to build/test.
2026-04-10 10:23:10 +02:00
98733bb654 Reserve screen space for the dock in convergence mode
Add an invisible layer-shell surface with an exclusive zone matching
the dock height.  KWin uses this to shrink MaximizeArea so maximized
and tiled windows no longer overlap the dock.

The previous approach of tweaking the nav-panel PanelView was a dead
end: PanelView resets its own surface properties on reconfiguration
and Wayland offers no way to set struts from a KWin script.  A
separate surface at LayerBottom with exclusionZone is the intended
protocol mechanism.
2026-04-09 19:47:38 +02:00
618a920821 Enable edge tiling and maximize in convergence mode
Allow dragging windows to screen edges: top edge to maximize,
left/right edges to tile half-screen.  These KWin options were
previously always disabled because phone mode has no use for them.
2026-04-09 19:47:29 +02:00
7af389b358 Show app drawer as popup in convergence mode
In convergence mode the app drawer appears as a sized popup
anchored above the dock near the Overview button, instead of
taking over the full screen.

- Popup has rounded background, shadow, and clipped content
- Desktop stays visible behind the popup (no scale/fade/blur)
- Click outside the popup dismisses it
- Wallpaper scrim suppressed in convergence mode
- Mobile behavior is unchanged
2026-04-09 12:35:52 +02:00
8105a0b971 Add launch action to dock favourite context menu
Right-click on a pinned favourite in the dock now shows:
- Launch: opens the app (using its own icon)
- Remove from Dock: existing unpin action, renamed for clarity
2026-04-09 12:29:38 +02:00
cf5fb25bae Make quick settings page indicator clickable
The page dots were non-interactive so clicks fell through to the
swipe area and closed the drawer. Set interactive:true and sync
the index back to the SwipeView so clicking a dot switches pages.
2026-04-09 11:43:59 +02:00
73b4ecea57 Add hover highlight to status bar in convergence mode
Mouse users had no visual cue that clicking the status bar
toggles the action drawer. Add a subtle background highlight
on hover so the bar signals interactivity.
2026-04-09 11:43:51 +02:00
db18022a9b Hide task panel strut in convergence mode
The task panel window reserved bottom-edge screen space even
with zero thickness and invisible content. Set its visibility
mode to auto-hide in convergence and force the dock bottom
margin to zero so the favourites bar sits flush at the screen
edge.
2026-04-09 11:09:25 +02:00
d2cfa5497f Add hover highlights and tooltips to convergence UI
Dock buttons, running-app icons, and favourite delegates had no
mouse-over feedback. Add 3-state highlight backgrounds (hover
and press), Kirigami.Icon active state, and tooltips following
existing Plasma patterns. Favourite delegate hover is gated on
convergence mode to avoid overlap with touch press events.
2026-04-09 11:09:15 +02:00
ba0df4328a Enable screen edge effect in convergence mode
The top-left hot corner triggers KWin Overview but the visual
feedback was unconditionally disabled. Enable the screenedge
effect alongside overview when convergence mode is active so
mouse users get the expected desktop hot-corner behavior.
2026-04-09 10:41:50 +02:00
1200740f6b Add close button to app drawer header in convergence
On desktop there is no swipe-down gesture to dismiss the drawer.
Add an X button at the right end of the header row, visible only
in convergence mode, so mouse users have an obvious way to close
the app drawer.
2026-04-09 10:41:42 +02:00
d18c2acadb Ignore build-prefix directory and preview script
.prefix/ holds the local install tree used for testing.
preview.sh is a developer convenience script.
2026-04-09 10:15:57 +02:00
d89a303337 Replace navigation panel with unified dock bar
In convergence mode the separate navigation panel is redundant
with window title-bar controls. Remove it by setting its
thickness to zero and visibility to false, then embed Home and
Overview buttons at the left and right ends of the favourites
bar. Running application icons with context menus are shown
between the favourites and the Overview button.

Add HomeScreen::triggerOverview() to invoke the KWin Overview
shortcut over D-Bus so the homescreen containment can open it
without access to the task-panel Plasmoid.
2026-04-09 10:15:14 +02:00
5770a4981f Reduce dock height and hide redundant controls in convergence
Halve the favourites bar from gridUnit*6 to gridUnit*3 to avoid
oversized dock on desktop screens. Hide the arrow-up icon and
disable the page-indicator tap handler since the app drawer is
now opened via the dedicated Overview button.
2026-04-09 10:14:55 +02:00
908a63ba44 Close app drawer when a new window is created
In convergence mode the app drawer stays open after launching an
application. Connect to WindowUtil.onWindowCreated and close the
drawer automatically so the user lands on the new window.
2026-04-09 10:14:33 +02:00
769211cf75 Open app drawer directly from homescreen
Skip the intermediate go-to-page-0 step when pressing Home while
already on the homescreen in convergence mode.
2026-04-08 20:12:48 +02:00
00a9ac1c4d Add desktop switcher and task context menus
Show numbered desktop indicator buttons between the nav buttons and
the keyboard toggle corner button. Each button highlights the current
desktop and switches on click via VirtualDesktopInfo.requestActivate.
Only visible in convergence mode when multiple desktops exist.

Add Minimize and Maximize/Restore actions to the task strip
right-click context menu alongside the existing Close action.
2026-04-08 20:12:38 +02:00
32a9b04864 Show date in status bar in convergence mode
Force the date label visible in convergence mode, matching the
existing behavior of the dateInStatusBar setting.
2026-04-08 20:12:27 +02:00
e12e6b3a66 Add system tray to status bar in convergence mode
Reintroduce StatusNotifierModel-based system tray icons, gated on
convergenceModeEnabled. Desktop apps (KDE Connect, nm-applet, etc.)
expose tray icons that were removed in 1914e9be as unusable on
phone screens.

The status bar wrapper is raised above the ActionDrawerOpenSurface
so tray icon MouseAreas receive click events while non-interactive
areas still fall through to the swipe handler.

TaskWidget.qml supports left-click (Activate), right-click
(ContextMenu), hover tooltip, and hides Passive/ApplicationStatus
items. The lockscreen SIGABRT guard (disableSystemTray) is restored
on the action drawer's StatusBar instance.
2026-04-08 20:12:16 +02:00
a0dceaedc1 Add right-click settings on homescreen background
Accept Qt.RightButton on the HomeScreenPages and FavouritesBar
MouseAreas and open the settings view (wallpaper/widgets) on
right-click, mirroring the existing long-press behavior for mouse
users.
2026-04-08 19:08:23 +02:00
7889e07815 Minimize all windows on home button press
The home button was a no-op in convergence mode when windows were
visible. Call WindowUtil.minimizeAll() so the home button acts as
show-desktop, preserving the mobile path that also resets homescreen
state before minimizing.
2026-04-08 19:07:47 +02:00
5dfae0c45c Add task strip and Overview to navigation panel
In convergence mode, show a running-app icon strip in the navigation
panel using the existing TaskManager.TasksModel. Each icon activates
its window on click, with an indicator dot for the active window.

Replace the mobile task switcher button with a KWin Overview trigger:
add triggerOverview() to TaskPanel (D-Bus call to kglobalaccel), swap
the button icon to view-grid-symbolic, and enable the Overview effect
in the envmanager KWin config when convergence mode is active.

Wire convergenceMode and taskModel properties from
NavigationPanelComponent through to NavigationPanel so the task strip
populates from the existing TasksModel instance.
2026-04-08 19:07:37 +02:00
60163ee15e Force button navigation in convergence mode
Load the button-based NavigationPanel when convergence mode is
enabled, regardless of the gesture panel preference. Gesture-only
navigation is incompatible with mouse and keyboard input.
2026-04-08 19:07:21 +02:00
59ec6af0db Toggle action drawer on click in convergence mode
Use the new SwipeArea clicked() signal to open/close the action
drawer on a single click when convergence mode is enabled. The
existing swipe gesture remains available as a fallback.
2026-04-08 19:07:12 +02:00
94e2399425 Add clicked() signal to SwipeArea
Emit clicked() when a press-and-release occurs without any swipe
movement. This allows consumers to distinguish taps from swipe
gestures on the same surface.
2026-04-08 19:07:03 +02:00
523c3a6728 Support rootless KAuth install for local development
Add PLASMA_MOBILE_LOCAL_KAUTH_INSTALL CMake option to redirect KAuth
helper executables, D-Bus service files, and polkit policy files into
CMAKE_INSTALL_PREFIX instead of hardcoded /usr paths.

Guard KF6Auth find_package calls in helper subdirectories with
if(NOT TARGET KF6::AuthCore) to avoid re-running find_package after
the top-level override, which would revert generated service Exec
paths back to /usr/libexec/kf6/kauth.
2026-04-08 19:06:55 +02:00
Nicolas Fella
31fe7c0d37 Install logging categories 2026-04-06 13:39:00 +02:00
Nicolas Fella
f553dc96b8 Generate logging category for AutoDetectAPN 2026-04-06 13:36:35 +02:00
l10n daemon script
86cea76edd SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-04-06 01:38:32 +00:00
l10n daemon script
9c9fd112ae GIT_SILENT Sync po/docbooks with svn 2026-04-05 01:49:11 +00:00
l10n daemon script
a0af380d2d GIT_SILENT Sync po/docbooks with svn 2026-03-31 01:50:01 +00:00
l10n daemon script
6a48931c7c SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-03-31 01:41:23 +00:00
l10n daemon script
9e58810698 GIT_SILENT Sync po/docbooks with svn 2026-03-30 01:49:47 +00:00
l10n daemon script
9422b34b6e GIT_SILENT Sync po/docbooks with svn 2026-03-25 01:55:20 +00:00
Devin Lin
b9d9b5f5c5 shellsettingsplugin: Update kwin screen edges after config change 2026-03-19 20:05:35 -04:00
l10n daemon script
d8c90fafbc GIT_SILENT Sync po/docbooks with svn 2026-03-18 01:57:26 +00:00
l10n daemon script
ef88e5a7f2 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-03-15 01:41:15 +00:00
l10n daemon script
2341dea296 GIT_SILENT made messages (after extraction) 2026-03-15 00:47:14 +00:00
l10n daemon script
0a5c53a978 GIT_SILENT Sync po/docbooks with svn 2026-03-14 01:48:53 +00:00
l10n daemon script
28d978ea91 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-03-14 01:39:39 +00:00
Devin Lin
16d8a26a97 actiondrawer: Preload for first open
Preload the action drawer so that it doesn't get loaded only when the
user attempts to open it for the first time (making it laggy).
2026-03-07 11:06:39 -05:00
Devin Lin
a8b858dc3e Remove kirigami version in imports
This fixes potential issues stemming from pinning versions on Kirigami
qml api imports
2026-03-06 22:08:07 -05:00
l10n daemon script
e95f04246e GIT_SILENT Sync po/docbooks with svn 2026-03-07 01:50:17 +00:00
l10n daemon script
720cb44e05 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2026-03-06 01:40:47 +00:00