Commit graph

29 commits

Author SHA1 Message Date
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
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
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
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
3d9ddbde15 navigationpanel: Add manual screen rotation button
When the device is rotated and autorotate is off, a button will appear
on the navigation panel to manually rotate.

This is specific to the navigation panel, perhaps we can have a floating
button in gesture-only mode similar to Android?

TODO: PoC, I haven't yet actually tested this on device. I also need to
make sure that I check for whether autorotation is enabled on the
output.
2024-11-09 17:24:23 +00:00
Devin Lin
eb9509ce68 Remove trailing whitespace 2024-07-26 23:47:44 -04:00
Devin Lin
76177166cf navigationpanel: Have it on the bottom if the screen height is large enough 2023-11-22 20:48:22 -08:00
Yari Polla
4f45654af6 Port mobileshell plugins to ecm_add_qml_module 2023-11-02 11:08:17 +00:00
Marco Martin
d719f407dd Port away from using colorGroup property directly in svg items
SvgItem and FrameSvgItem automatically follow the colorSet of
Kirigami.Theme and to set a custom one the usual inherit api is used

https://invent.kde.org/frameworks/ksvg/-/merge_requests/22 removes those properties
2023-09-05 16:18:47 +00:00
Alexey Andreyev
127bbdf653 Port away from PlasmaCore and PlasmaExtras to Kirigami
See also:

https://pointieststick.com/2023/06/14/call-to-action-easy-porting-opportunity-in-plasma/
2023-07-25 01:13:52 +00:00
Devin Lin
dffa0a9581 components: Port to MultiEffect 2023-05-12 22:07:48 -04:00
Devin Lin
9e8838834b taskpanel: Cleanup remnants of old task switcher 2023-03-18 00:02:01 -07:00
Devin Lin
462d99b83f quicksettings: Extract out from mobileshell into separate plugin 2023-03-16 19:44:36 -07:00
Yari Polla
8b5ec57d0b explicitly declare signal handlers params 2023-03-06 14:09:54 +01:00
Devin Lin
f0c756214a Port QtGraphicalEffects 2023-03-03 06:01:23 +00:00
Devin Lin
df65a0e0f2 mobileshell: Remove compile time QtFeedback dependency, and make it optional 2022-11-12 11:15:36 -05:00
Devin Lin
7d3bf39750 mobileshell: Refactor and extract state to mobileshellstate plugin
This avoids mixing plasmashell state with our MobileShell component library (which really shouldn't have state at all).
2022-11-12 11:15:36 -05:00
Devin Lin
0c6f1a6649 navigationpanel: Fix incorrect property name reference 2022-10-01 22:43:32 +02:00
Devin Lin
2aaf5fca98 navigationpanel: Add force keyboard toggle, and add setting 2022-09-11 21:45:12 +00:00
Devin Lin
c4806c6fb5 navigationpanel: Cap width of buttons at 80% of panel 2022-06-27 21:47:15 -04:00
Devin Lin
5519abd82c navigationpanel: Properly cap width for wide screens 2022-06-27 17:28:41 -04:00
Devin Lin
3353cfc498 kcm: Add vibration setting for shell, and add vibrations
We can control shell vibrations from here, which can be replaced once there is a mechanism to control system-wide vibrations for QtFeedback.
2022-04-29 16:15:59 -04:00
Devin Lin
210042a6bf libmobileshell: Move back to QML plugin
Move from a C++ library + QML plugin to a QML plugin only for simplicity, since the homescreen switching architecture will be done from Plasma, and so use of the shell library only needs to be from QML.
2022-03-21 10:00:09 -04:00
Devin Lin
cf7e48e65c components/mobileshell: Move to libmobileshell library 2022-03-16 23:20:51 -04:00
Devin Lin
8f9f722ca7 navigationpanel: Add ability to toggle between gesture only and shown navigation panel modes
Addresses: https://invent.kde.org/plasma/plasma-phone-components/-/issues/140
2022-02-13 04:23:57 +00:00
Devin Lin
264de1b6df taskswitcher: Apply scale on entire task list, rather than single task 2021-12-27 18:29:14 -05:00
Devin Lin
1c81cd34b4 taskswitcher: Rewrite without listview and extract state to TaskSwitcherState 2021-12-27 01:35:24 -05:00
Devin Lin
4057122fb0 taskswitcher: Move component to homescreen and remove popup window 2021-12-24 22:31:33 -05:00
Devin Lin
2d87bb3e65 taskpanel: Extract navbar and task switcher to components/mobileshell 2021-12-24 19:18:38 -05:00
Renamed from containments/taskpanel/package/contents/ui/NavigationPanel.qml (Browse further)