Commit graph

691 commits

Author SHA1 Message Date
acecbcc86a Fix notification popup position in convergence mode
The input region Y was computed from the bottom of the screen
instead of from the top, causing the touch region to be offset
from the actual popup. Use openOffset directly since the popup
anchors to the top. Unify the popup margin into a single
property so the delegate x and the input-region regionX stay
consistent.
2026-04-18 20:24:48 +02:00
aa4103f72a Add null guards in QuickSettingsDelegate and convergentwindows
Check restrictedPermissions before opening the detail popup in
convergence mode. Guard against null output in the KWin script
window-setup handler to prevent TypeError when a window has no
assigned output yet.
2026-04-18 20:24:28 +02:00
8fecdf1d2d Guard against invalid KPackage in AppletHost
loadPackage + setPath can produce an invalid package if the shell
package is missing. Guard with isValid() to avoid passing a bad
package to setKPackage. Add the QML_SINGLETON factory that the
QML engine requires for proper singleton instantiation.
2026-04-18 20:24:11 +02:00
a29019631e Fix KF6Auth find_package order in kauth helpers
find_package(KF6Auth) was placed after target_link_libraries, so
KF6::AuthCore could be undefined when the linker target was
created. Move it before target_link_libraries in both the
flashlight and waydroid helpers.
2026-04-18 19:05:11 +02:00
667efec483 Fix panel interactive flag and reserved height
NavigationPanel: the taskStrip ListView checked contentWidth > width
to decide whether scrolling is enabled, which is wrong when the
panel is vertical. Check contentHeight > height in that case.

taskpanel: dockSpaceReserver used a hardcoded gridUnit * 3 for both
height and exclusionZone. Use navigationPanelHeight so the reserved
strip tracks the actual panel thickness.
2026-04-18 19:04:56 +02:00
9b94c200ee Fix action drawer toolButtons ref and page indicator sync
NotificationDrawer referenced toolButtons, a sibling defined in
ContentContainer, not a local property. Add toolButtonsItem: Item
and wire it at the call site. Replace the magic literal 10 with
Kirigami.Units.largeSpacing while here.

The PageIndicator had a one-way binding to swipeView.currentIndex
that would break after a user tap. Make it bidirectional with a
Connections block and a loop guard on both sides.
2026-04-18 19:04:49 +02:00
2059f14faf Add null guards in AppletHost and TaskWidget
AppletHost: setPreloadFullRepresentation(true) does not guarantee
fullRepresentationItem() is non-null on return — the applet loads
asynchronously. Wire a single-shot connection to
fullRepresentationItemChanged to emit appletReady() when the item
arrives.

TaskWidget: operationDescription() can return null for an unknown
operation name; bail out rather than dereferencing it.
2026-04-18 19:04:40 +02:00
76e027f630 Fix Qt.rgba color arguments
Qt.rgba expects 0.0–1.0 floats. Passing 255 for R/G/B saturates
every channel to 1.0, producing opaque white instead of the
intended semi-transparent tint. Fix all call sites across
FavouritesBar, StatusBar, and AbstractDelegate.
2026-04-18 19:04:22 +02:00
86283b526d Move notification popup to bottom-right in convergence
The mobile popup system always anchored to top-center which
looked out of place on a desktop screen. In convergence mode,
position popups at the bottom-right corner and slide them in
from below. Swipe-to-dismiss flips to match (drag down to
dismiss instead of up). Stacked card previews and the popup
drawer tap area are hidden since notifications are already
accessible in the action drawer.
2026-04-17 07:10:23 +02:00
c2b864d8b4 Show action drawer as bounded panel in convergence
Replace the full-screen slide-down sheet with two fade-in cards
anchored to the top corners. Quick settings sit top-right,
notifications top-left capped at 60% screen height. Background
scrim reduced to 30%. Redundant clock header and status bar
hidden since both are already visible in the top panel.
2026-04-16 17:42:06 +02:00
2a137d1ac9 Promote management tiles to status rows in convergence
Wi-Fi, Bluetooth, Sound and Battery behave differently from
toggle tiles: tapping them should open a detail panel, not
flip a switch. On a phone the long-press convention handles
this, but with a mouse long-press is unnatural.

Pull these four tiles out of the grid when convergence mode
is active and show them as full-width rows above the remaining
tiles. Each row has two click zones — a toggle pill on the
left that still switches the service on/off, and a detail
area on the right (name, status, chevron) that opens the
Plasma applet popup. The grid hides the duplicates so they
only appear once.
2026-04-16 13:41:24 +02:00
8017e4eaa0 Show applet popup on tile long-press in convergence
Long-pressing a mapped quick-settings tile in convergence
mode opens a floating popup with the Plasma applet UI
instead of launching System Settings. Unmapped tiles still
open Settings.

AppletHost creates a standalone Corona to host applets
outside the shell containment tree.
2026-04-15 14:58:25 +02:00
b77bf41cdc Fix action drawer not opening on click in convergence
open() alone does not set intendedToBeVisible, so the drawer
immediately closes itself. Call the proper toggle path instead.
Also hide the drag handle since convergence users click.
2026-04-15 14:58:15 +02:00
d8f9924c73 Widen quick settings panel in convergence mode
Use up to 45% of screen width so more tiles are visible
without pagination. Tile size stays touch-friendly.
2026-04-15 11:58:08 +02:00
2c7d88e5d8 Show down-arrow on status bar hover in convergence
Desktop users have no visual cue that the top bar opens quick
settings. Fade in a small arrow-down icon at the bottom center
when the mouse hovers, matching the arrow-up hint on the
favourites bar.
2026-04-15 11:20:07 +02:00
7fa2c20ab4 Open app drawer over windows in convergence mode
Drawer is inside the homescreen, which sits behind windows.
Home button minimized everything to reach it. Render it in
a LayerTop window instead and skip the blanket minimizeAll
in the D-Bus handler.
2026-04-15 10:24:12 +02:00
756259bb01 Show pointer cursor on system tray icons 2026-04-13 19:37:42 +02:00
2c77b4c979 Dismiss action drawer with Escape in convergence mode 2026-04-13 13:53:53 +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
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
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
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
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
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
Devin Lin
b9d9b5f5c5 shellsettingsplugin: Update kwin screen edges after config change 2026-03-19 20:05:35 -04: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
Micah Stanley
db98f2cd86 statusbar: fix hidden batteries from taking up space in the statusbar
I noticed at some point after updating my main phone, that non visible external device batteries started taking up extra space in the statusbar. This fixes the issue by filtering out external device batteries by using KSortFilterProxyModel.

Before (with external peripheral connected)

![Screenshot_20260303_124043](/uploads/a469eda41ff6d2a10b85c6a3de88785f/Screenshot_20260303_124043.png){width=399 height=28}

After

![Screenshot_20260303_123956](/uploads/521a7dc7bb16cf08ef026c3ef0655b93/Screenshot_20260303_123956.png){width=399 height=28}
2026-03-05 20:13:34 -05:00
Devin Lin
c4c7f5b195 actiondrawer: Fix loading race conditions with minimized quick settings
This reverts https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/739 and avoids using loaders to load the quick settings. This otherwise leads to problems where the delegate could get half loaded and not receive model properties, due to ContentContainer also being a loader.

Fixes: https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/739
2026-02-20 10:53:30 -05:00
Devin Lin
23833a6b54 mmplugin: Remove and port to plasma-nm cellular lib
Replace mmplugin with shared plasma-nm cellular library: https://invent.kde.org/plasma/plasma-nm/-/merge_requests/522
2026-02-16 22:24:02 -05:00
l10n daemon script
e57d0b19e8 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-02-16 01:43:18 +00:00
Devin Lin
5f5ac2d435 quicksettings: Fix references to non existent "mode" property
This was removed when we changed the QuickSettingsPanel to use a SwipeView rather than a scrolling list. Fix remaining references to it.
2026-02-15 10:00:47 -05:00
Devin Lin
3b90a01ba4 statusbar: Use implicit battery widths rather than manually setting them
The calculated widths sometimes seem to be wrong, I don't see issues with just using the implicit width.
2026-02-14 22:38:22 -05:00
Devin Lin
1914e9be44 statusbar: Remove system tray
The system tray has not been useful on mobile and isn't particularly
interactable due to its small size. Remove the system tray from the
status bar, if we need its functionality it would be more appropriate to
create a larger "tray UI" in the quicksettings area
2026-02-06 19:19:02 -05:00
l10n daemon script
4ccba70d16 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-01-31 01:38:42 +00:00
Devin Lin
cd7dd7c8e5 Guard coroutine calls
Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/480

This ensures that coroutines are properly guarded against object
deletion.
2026-01-13 09:41:08 -05:00
l10n daemon script
f7f086698b 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-01-08 01:37:51 +00:00
Devin Lin
e423c34ebc actiondrawer: Fix typo setting drawer transparency
It was missing the module name, this fixes the shell drawer not being input transparent while it's closing.
2026-01-04 20:47:35 -05:00
Devin Lin
d5cf294788 statusbar: Fix typo
Fix status bar padding typo
2026-01-02 16:47:49 -05:00
Devin Lin
22b095e340 gestures: Set kwin touch area to be gesture guide area height
Use a heuristic (the height of the gesture guide panel) to set the
gesture trigger area.
2025-12-25 22:27:44 -05:00
Devin Lin
832597f926 gestures: Trigger task switcher when mouse pulls up on gesture bar
As a stopgap until we have
https://invent.kde.org/plasma/plasma-mobile/-/issues/492, simply trigger
the task switcher when a mouse pulls up on the gesture bar.
2025-12-16 08:11:08 -05:00
Devin Lin
c7e961ca85 waydroidintegrationplugin: Make async and add error checking
Fixes: https://invent.kde.org/plasma/plasma-mobile/-/issues/494
2025-12-14 21:37:44 -05:00
Devin Lin
28f7224a5b gestures: Add optional gesture guide panel
This adds a gesture handle mode to the navigation panel, which can be
enabled during gesture-only mode. This reserves space for the system
gesture to be able to be used, allowing us to extend the height in KWin
of the gesture recognition area (which is currently far too short for devices such as Pixel 3a).

This also allows for navigation with a mouse; clicking on the handle
triggers the task switcher, holding it triggers the "home" action.
2025-12-14 18:36:42 -05:00
Devin Lin
be90b3f74b wallpaperselector: Fix changes and use proper preview path
This updates the wallpaper selector to deal with the latest API changes
in the image model.
2025-12-14 09:47:44 -05:00
Devin Lin
7119dc4948 notifications: Fix missing import
Fix missing import for long ago notifications.
2025-12-13 11:41:33 -05:00
Devin Lin
e480114d53 panels: Use standard foreground colors when startup feedback is open
The startup feedback uses theme adjusted colors, we can use standard
foreground colors for the panels for better contrast rather than relying
on the shadow.
2025-12-05 09:11:17 -05:00
Devin Lin
088c0d985b kscreen: Retry fetching config if kscreen gives nullptr
Apparently GetConfigOperation can retrieve a nullptr config, in which
case we just need to retry until kscreen gives us something.
2025-12-05 09:09:25 -05:00
Devin Lin
bd95aa89b4 mobileshell: Add more null checks 2025-11-26 19:17:33 -05:00
Devin Lin
0b26be6331 mobileshell: Fix wallpaper selector paths
Previews don't seem to load otherwise
2025-11-26 19:12:35 -05:00
Nicolas Fella
c526bb5968 Port away from Milou.ResultsListView
It's just ResultsView with a specific delegate, but here we override the delegate anyway
2025-11-26 18:58:05 -05:00
Devin Lin
6c0898fab2 notifications: Fix timestamp not working
Fix notification timestamps not working and always showing "now",
fallout from https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/847
2025-11-24 23:38:57 -05:00
l10n daemon script
0daa0b737b 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"
2025-11-22 01:35:52 +00:00
Bohdan Onofriichuk
b0b7a92808 components/mobileshell: port from the clock dataengine 2025-11-15 12:14:44 +02:00
Micah Stanley
6ba95df13d shelldbusclient: check if reply is valid 2025-11-13 15:49:23 +00:00
Devin Lin
839d5e2bff panels: Add support for defining device specific panel tweaks
This adds support for specifying options needed to deal with phone
display panel pecularities (ex. screen curves, notches, punch holes)

This is implemented as settings in ~/.config/plasmamobilerc, which can
set panel heights, paddings, and center spacings to duck display
cutouts. The pixel values are scaling independent, and so are not
affected when the display scaling is changed.

This is then exposed over DBus, so that components from outside of
plasmashell (ex. KWin) can access it easily without needing to connect to
kscreen themselves. Each screen is exposed as a single object.

Currently support is only added in the status bar and the navigation
panel.

Currently all screens have the settings applied. In the future, we may
want to limit this just to the internal screen (?)

---

This also adds a "devices" folder (in `devices/configs`) where per-device configs can be set.

This is installed to `/usr/share/plasma-mobile-device-configs`.
In `plasmamobilerc` (installed to `/etc/xdg/plasmamobilerc`, or
`~/.config/plasmamobilerc`), envmanager will read:

```toml
[Device]
device=oneplus-enchilada
```

for the device config to use and write its settings to
`~/.config/plasma-mobile/plasmamobilerc`.
2025-11-04 23:08:18 -05:00
Devin Lin
ca79509706 kscreen: Make async calls and nullptr check
Don't block plasmashell when doing kscreen calls (make them async). Also
add a nullptr check to rotationplugin, which potentially could be a fix
for crashes on the PinePhone.
2025-11-03 22:44:26 -05:00
Devin Lin
921345bc2d lockscreenstate: Make lock screen call async
This avoids blocking the shell when lock screen is requested
2025-10-31 09:25:54 -04:00
Devin Lin
7cecb980d7 popups: Use dark background and consistent outlines with action drawer
Have popup views use a similar coloring scheme as the action drawer,
which was introduced with
https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/827
2025-10-08 23:13:46 -04:00
Devin Lin
ddc04069a3 startupfeedback: Revert to original animation 2025-10-08 22:21:48 -04:00
Devin Lin
3ce21b972e startupfeedback: Always tint background with theme color
Currently with a light theme, often colors calculated from icons are incredible bright and vivid. This can cause the user to be flashed all of a sudden with a bright color when launching an app. This commit adopt the dark background blending scheme for all usecases.
2025-10-08 21:49:10 -04:00
l10n daemon script
0ee830e793 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"
2025-10-09 01:35:35 +00:00
Devin Lin
06b647fcde volumeosd: Only highlight when delegate is pressed
There is already the radio button to denote selected audio widgets, it's
otherwise very jarring.
2025-10-08 19:23:39 -04:00
Devin Lin
da53fe4a82 volumeosd: Don't highlight audio device when there is only one entry 2025-10-08 09:45:30 -07:00
Sebastian Kügler
ae4bf8be60 respect user's choice of convergence mode
When plasmashell is started and the user had set docked mode, it may get
reset. This patch makes sure  that we don't change the user's choice
after hotplugging/unplugging a display. The initial setting of
convergendeMode (if true) is now remembered.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-10-07 09:53:26 +02:00
Devin Lin
5fd7d99b09 wallpaperselector: Fix previews not loading
The API changed in
https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/5478,
now we need to use the "preview" property
2025-10-06 07:10:07 -04:00
l10n daemon script
6150868313 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"
2025-10-01 01:39:35 +00:00
Devin Lin
e196a91c8b actiondrawer: Use contextually correct colors and dark background at all times
This commit changes the action drawer colorsets to be contextually correct. The panel background would use the window background colors (instead of the view ones), and quicksettings delegates would use colors from the Button color set (rather than the view).

This also changes the background scrim to always be dark even in light mode. I think this is important to do because we have two views (notifications, and quick settings), which currently don't have much in the way of colours to distinguish the two. 

This commit also makes some changes to the notifications widget in order for its card foreground to be the standard theme colors.

![image](/uploads/b4e42984da926bc266d6c53d59a323b7/image.png){width=200}
![image](/uploads/4dc71502cdf85b5cbf6a2497a2384939/image.png){width=200}
![image](/uploads/ebd2d57ed46161ec8bb240a36c7069e7/image.png){width=300}

![image](/uploads/99656ee4cc322ee7412d7aef1c696893/image.png){width=200}
![image](/uploads/c0521a64069077fbe7e44b23159227e7/image.png){width=200}
![image](/uploads/6567a1bf42092d914a56d03ac5d7be54/image.png){width=300}
2025-09-18 09:29:53 -04:00
l10n daemon script
7e5c19f2c3 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"
2025-09-18 01:34:32 +00:00
Devin Lin
f803c55a73 volumeosd: Ensure visibility of children is set
This ensures that all elements in the volume OSD get the window
visibility and can turn off any listeners. This avoids excessive
bindings being triggered when the osd is closed and audio is played.
2025-09-17 12:01:34 -04:00
Devin Lin
dc1fa9b187 homescreens/folio: Add keyboard navigation on pages
Implements the rest of https://invent.kde.org/plasma/plasma-mobile/-/issues/219
2025-09-15 15:47:38 -04:00
Sebastian Kügler
a3723c7e7b implement configurable column number in quicksettings panel
This changeset makes the shell respect the quickSettingsColumns mobile
shell setting. It renders the number of columns correctly and makes the
drawer wider, as needed.

As a side-effect, the width is now more dpi-independant since it
switches from raw pixel values to gridUnit.
Another side effect is that we make the individual quicksettings buttons
ever so slightly wider (5.333 gridUnits before, gridUnits now).

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-09-15 19:46:12 +02:00
Sebastian Kügler
f23264e451 shellsettings property for quicksettings columns
This change adds a property to the shellsettings plugin to allow
changing the number of columns in the QuickSettings drawer in the top
panel. It defaults to the current value, 3.

This will allow us to accommodate for wider displays where the current
drawer unnecessarily paginates (and thus hides some of) the
quicksettings.

Minimum is still 3 since that it computes in the drawer code (and
currently not necessary to change), maximum is somewhat arbitrarily, 7.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-09-15 19:46:12 +02:00
Devin Lin
082323baa8 quicksettings/audio: Fix displayed volume fetching
Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/422

This commit simplifies the AudioInfo data provider to fetch the volume
directly, rather than relying on a series of complicated connections. It
also does some cleanup of AudioInfo, removing unused functions.
2025-09-14 15:30:37 -04:00
Devin Lin
0e09a434ef hapticsplugin: Use QCoro::QmlTask
This avoids the following error for haptic events when used from QML:

```
QVariant: Provided metatype for 'QCoro::Task<void>' does not support destruction and copy construction
```
2025-09-14 14:35:52 -04:00
Devin Lin
67ca0fd6fc volumeosd: Refactor and simplify logic
This commit makes a much needed cleanup and overhaul of the volume OSD.

Changes:
- Fix context menus for app streams
- Remove dedicated mute button in cards (simplifies the UI for touch
  devices)
- Add selection background for card delegates
- Sync audio models with plasma-pa
- Simplify implementation of cards
- Sync volume slider implementation with plasma-pa
2025-09-14 14:06:46 -04:00
Devin Lin
929cde56db animation: Make fast animations less jolty
Use less steep animation curves to avoid "jolty" behaviour.
2025-09-14 08:07:52 -04:00
Devin Lin
a95598d5e4 panels: Fix panels having partial opacity and convoluted vkbd colors
A custom 0.95 opacity was added to the panels in
https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/642 for
overlaying applications. This
required some complicated logic and layering to mix with other modes of
operation. Since this broke at some point, simplify the logic completely
so that it's just a flat colour. This also fixes the navigation panel
not having a colour when the keyboard is shown over the homescreen.
2025-09-13 22:18:32 -04:00
Devin Lin
447049d570 volumeosd: Listen to osd service for opening the popup
Fixes: https://invent.kde.org/plasma/plasma-mobile/-/issues/423

We currently listen to when the volume changes, which wouldn't happen if
the user reaches 0% or 100% and continues trying to press the volume
button. Instead, listen to OSD events for determining when to open the
popup.
2025-09-13 08:54:11 -04:00
l10n daemon script
d5df7336e1 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"
2025-09-13 01:41:43 +00:00
Devin Lin
674c5034ae animations: Use Kirigami units and speed up several of them
This converts many of the animation durations to Kirigami units so that
they can be controlled system wide. It also speeds up several of the
animation durations (ex. in folio) from 800ms to 400ms to improve the
feel and responsiveness of the shell.
2025-09-12 05:41:20 -04:00
Florian RICHER
50d4a77471 waydroid: Add watcher->deleteLater(); 2025-09-11 11:03:55 +02:00
Florian RICHER
a3e7d98660 waydroid: Show an error when Android ID is empty 2025-09-11 11:03:55 +02:00
Florian RICHER
7ebb4aa37c waydroid: Migrate to DBus backend implementations 2025-09-11 11:03:55 +02:00
l10n daemon script
43a59d504e 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"
2025-09-08 01:59:50 +00:00
Kunda Ki
7f3dcab42b Fix various typos
Fixes typos in various source comments.  
Found via `codespell -S "*.po,*.svg,*.pgm,*.xml,./po,*.desktop,*.json,*.actions" -L aline,aparent,childs,distroname,indexin,indx,logicaly,lokal,nd,splitted,te`
2025-09-05 12:21:15 +00:00
l10n daemon script
0058c094b2 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"
2025-08-31 01:35:32 +00:00
l10n daemon script
4a9c591146 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"
2025-08-27 01:36:18 +00:00
l10n daemon script
5c0ff01630 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"
2025-08-25 01:35:11 +00:00
Florian RICHER
2ba1eeb8d4 mobileshellstate: Fix memory leak 2025-08-19 18:42:23 +02:00
Sebastian Kügler
cee1982877 quicksetting: add api docs
Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-08-18 10:59:49 +02:00
Sebastian Kügler
569d268c49 kscreenosd popup: auto-switch to convergenceMode
This popupprovider takes care of automatically enabling and disabling
convergence / docked mode when a monitor is plugged in or unplugged.

It uses the plugin that is provided with the kscreenosd quicksetting,
which essentially notifies of outputs being added and removed.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-08-18 10:59:49 +02:00
Sebastian Kügler
c3ae6650ed quicksettings: fix dynamic removal
When a quicksetting is changed to not available, it should be removed
from the model. The proper API call to beginRemoveRows() has the index
of the last removed element as last parameter and will fail with null.

This patch makes dynamically removing a quicksetting by changing the
available property to false.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2025-08-18 10:59:49 +02:00
l10n daemon script
868c6a72b6 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"
2025-08-15 01:40:05 +00:00