Plasma Mobile merge requestshttps://invent.kde.org/plasma/plasma-mobile/-/merge_requests2020-11-19T02:57:36Zhttps://invent.kde.org/plasma/plasma-mobile/-/merge_requests/113Add night colour quick setting2020-11-19T02:57:36ZDevin LinAdd night colour quick settingSimple night colour quick setting for the drawer. Once there is a night colour kcm available (move it from plasma-desktop to plasma-workspace maybe?) we can then also add an action to open it.Simple night colour quick setting for the drawer. Once there is a night colour kcm available (move it from plasma-desktop to plasma-workspace maybe?) we can then also add an action to open it.https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/153Multi page horizontal scrolling2021-05-08T14:49:27ZMarco MartinMulti page horizontal scrollingPossibility of dragging icons and applets beyond the horizontal screen
boundaries, creating multiple pages that can be horizontally flicked.
Dragging items at the edge of the screen will make an arrow appear, then after a timeout the scr...Possibility of dragging icons and applets beyond the horizontal screen
boundaries, creating multiple pages that can be horizontally flicked.
Dragging items at the edge of the screen will make an arrow appear, then after a timeout the screen will slide to the next/previous page.
if needed the nex page will be created if not existing.
![VID_20210414_120916_](/uploads/5c6b17a1e012d2570669dfd20eabf101/VID_20210414_120916_.mp4)
![VID_20210414_120250_](/uploads/47d7f7876ac7518bbdfcef27124cf216/VID_20210414_120250_.mp4)5.22https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/151Add keyboard option to lockscreen2021-05-09T03:50:40ZDevin LinAdd keyboard option to lockscreenAdds a toggle toolbutton to switch between keypad and keyboard for now
![image](/uploads/9a638974bfe8325f010d008ddb9004f5/image.png)
![image](/uploads/6b672e60b73e02d42c0c95c68e4f5de6/image.png)
I can't figure out how to get the virtu...Adds a toggle toolbutton to switch between keypad and keyboard for now
![image](/uploads/9a638974bfe8325f010d008ddb9004f5/image.png)
![image](/uploads/6b672e60b73e02d42c0c95c68e4f5de6/image.png)
I can't figure out how to get the virtual keyboard to show, even when tapping on the TextField... does it actually work?
Pending on https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/125.22https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/154panel: Add advanced volume OSD2021-06-09T17:34:52ZDevin Linpanel: Add advanced volume OSDThis adds https://invent.kde.org/plasma/plasma-phone-components/-/issues/67 a more advanced volume osd, that also allows for users to quickly change audio sinks, sources, as well as adjust different audio stream volumes. It effectively h...This adds https://invent.kde.org/plasma/plasma-phone-components/-/issues/67 a more advanced volume osd, that also allows for users to quickly change audio sinks, sources, as well as adjust different audio stream volumes. It effectively has the same function as the audio applet in the tray on the desktop.
When users press their hardware volume buttons, the standard volume OSD shows up, which also includes a toolbutton that can toggle visibility for the full applet.
This will also fix the issues with the current volume OSD taking up the fullscreen.
I considered, and attempted to use the desktop audio applet instead, but it unfortunately conflicts with the existing volume provider (duplicate shortcuts and OSDs), and is also not exactly great to use with touch due to the density of controls.
### Known Issues:
The context menu for each output stream is borrowed from plasma-pa. It seems that there is an issue where if you close the context menu without clicking on an option (elsewhere on the screen) the OSD stops accepting touch input. Pressing the application close button on the bottom panel will close the osd to get around it. It seems to work fine though if you do click on an option in the context menu.
### TODO:
- [x] Figure out a way to import https://invent.kde.org/plasma/plasma-pa/-/blob/master/src/qml/listitemmenu.h so that I can use the menu without copy pasting the code
- [x] Fix application streams not showing up
- [x] Switch from the current Kirigami ApplicationWindow being used to a NanoShell.FullScreenOverlay, after figuring out why there is such a performance difference when opening
- [x] Remove experiments with loading applets in popups from MR
![Screenshot_20210506_144626](/uploads/4025e0e42b6ac4d8e4555399071f50de/Screenshot_20210506_144626.png)5.23https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/156homescreen: Rework app drawer gestures, and add header and list version2021-10-25T16:08:37ZDevin Linhomescreen: Rework app drawer gestures, and add header and list versionChanges:
* Move AppDrawer GridView into a loader
* Create AppDrawer ListView, which is also in a loader
* Add a header to the the app drawer which also has toolbuttons to switch between the views
* Add transform offsets to delegates to c...Changes:
* Move AppDrawer GridView into a loader
* Create AppDrawer ListView, which is also in a loader
* Add a header to the the app drawer which also has toolbuttons to switch between the views
* Add transform offsets to delegates to compensate for header (I have no idea how to do this in any other way)
* Move DrawerDelegate.qml to DrawerGridDelegate.qml and create DrawerListDelegate.qml
* Remove several grid specific fields from appdrawer, since the `flickable` field isn't necessarily a gridview
Changes (updated):
* Have a separate parent flickable for initial opening of drawer (and remove the header control from the app drawer)
* Fix random times where the drawer becomes not interactable
* Make the scrollbar interactable
* Dynamically change the drawer scrim radius
* Fixes: https://invent.kde.org/plasma/plasma-phone-components/-/issues/80 https://invent.kde.org/plasma/plasma-phone-components/-/issues/77 https://invent.kde.org/plasma/plasma-phone-components/-/issues/74
![image](/uploads/20f7591b1d469908328c18b9ddf186a4/image.png)5.24https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/220Add ability to have no navigation bar, only using swipe gestures to navigate2022-03-02T16:26:54ZDevin LinAdd ability to have no navigation bar, only using swipe gestures to navigateAddresses: https://invent.kde.org/plasma/plasma-phone-components/-/issues/140
Currently a proof of concept that allows us to have the navigation bar not shown to users, allowing us to have more screen real estate, and not have the (ugly...Addresses: https://invent.kde.org/plasma/plasma-phone-components/-/issues/140
Currently a proof of concept that allows us to have the navigation bar not shown to users, allowing us to have more screen real estate, and not have the (ugly) panel colour change when switching between apps.
I currently am using a feature of panels where you can set the `visibilityMode` to `VisibilityMode::WindowsGoBelow` of https://invent.kde.org/plasma/plasma-workspace/-/blob/master/shell/panelview.h from the initializing shell script.
I then have the invisible panel set to a very small height, just large enough to be able to detect gestures.
~~Main blocker is that I have no idea how to set this `visibilityMode` property from a kcm or from the taskpanel containment...~~
TODO:
- [x] Add ability for kcm to toggle the navigation bar (navigation bar shown by default)
- [x] Make gesture from the bottom on landscape
- [x] Ensure that navbar actions are gone when in no-nav-bar modehttps://invent.kde.org/plasma/plasma-mobile/-/merge_requests/259navigationpanel: Add force keyboard toggle, and add setting2024-03-06T04:25:13ZDevin Linnavigationpanel: Add force keyboard toggle, and add settingBased on https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2087
Adds a force keyboard toggle to the bottom right of the screen, allowing users to toggle keyboard visibility even if it the app does not support it. This butt...Based on https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2087
Adds a force keyboard toggle to the bottom right of the screen, allowing users to toggle keyboard visibility even if it the app does not support it. This button is disabled by default, and can be enabled in the settings (shell kcm).https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/384homescreens/folio: Add widgets support2023-11-05T05:21:20ZDevin Linhomescreens/folio: Add widgets support6https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/385navigationpanel: Add setting to always have keyboard toggle shown2023-11-05T20:22:39ZDevin Linnavigationpanel: Add setting to always have keyboard toggle shownUseful for users who just want a button to toggle the keyboard shown at all times.Useful for users who just want a button to toggle the keyboard shown at all times.6https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/425Flashlight : Use udev instead of hardcoded pinephone device file2024-02-23T15:56:51ZFlorian RICHERFlashlight : Use udev instead of hardcoded pinephone device file# Goal of this patch
Use udev to change or detect flash device instead of hardcoded pinephone device file.
Inspired by phosh flash manager because it works in many devices. https://gitlab.gnome.org/World/Phosh/phosh/-/blob/main/src/torc...# Goal of this patch
Use udev to change or detect flash device instead of hardcoded pinephone device file.
Inspired by phosh flash manager because it works in many devices. https://gitlab.gnome.org/World/Phosh/phosh/-/blob/main/src/torch-manager.c?ref_type=heads#L168-198
# Remaining work
- [x] Minimal project for testing
- [x] Try to build for pmOS to test in my device (OP6)
- [x] Need udev rules to work (Require write permission in brightness)
# Stabilization
- [x] read permission removed in max_brightness to check if no crash
> "Failed to read max_brightness from udev device" in log
- [x] read permission removed in brightness to check if no crash
> "Failed to read brightness from udev device" in log
- [x] "Break" match in my side to check if no crash occured when no device found
> "No flashlight found" in log
# Minimal project
It run in my device perfectly, it find device, get current value and max value and toggle flashlight. It require **root** permissions to write in device file.
```cpp
#include <iostream>
#include <cstring>
#include <libudev.h>
#define TORCH_SUBSYSTEM "leds"
int main() {
struct udev* udev = udev_new();
struct udev_enumerate* enumerate = udev_enumerate_new(udev);
// Use to find all devices in subsystem "leds"
// And use match sysname to filter only flash or torch
// Example:
// - /sys/devices/platform/soc@0/c440000.spmi/spmi-0/0-03/c440000.spmi:pmic@3:led-controller@d300/leds/white:flash On OP6
// - /sys/devices/platform/soc@0/c440000.spmi/spmi-0/0-03/c440000.spmi:pmic@3:led-controller@d300/leds/yellow:flash On OP6
// - /sys/devices/platform/led-controller/leds/white:flash/brightness On pinephone
udev_enumerate_add_match_subsystem(enumerate, TORCH_SUBSYSTEM);
udev_enumerate_add_match_sysname(enumerate, "*:torch");
udev_enumerate_add_match_sysname(enumerate, "*:flash");
udev_enumerate_scan_devices(enumerate);
struct udev_list_entry *devices = udev_enumerate_get_list_entry(enumerate);
struct udev_list_entry *entry = udev_list_entry_get_next(devices);
if (entry == nullptr) {
std::cout << "No flashlight found" << std::endl;
return 1;
}
const char *path = udev_list_entry_get_name(entry);
struct udev_device *torch = udev_device_new_from_syspath(udev, path);
const char *max_brightness = udev_device_get_sysattr_value(torch, "max_brightness");
const char *brightness = udev_device_get_sysattr_value(torch, "brightness");
bool enabled = std::strcmp(brightness, "0") != 0;
udev_device_set_sysattr_value(torch, "brightness", const_cast<char*>(enabled ? "0" : max_brightness));
udev_device_unref(torch);
udev_enumerate_unref(enumerate);
udev_unref(udev);
return 0;
}
```
Build with `g++ torch.cpp -ludev -o torch`
Run with `sudo ./torch`
# Important info
- **udev** dependencies added
- destructor for flashlightutil added to unref udev_device
# Require udev rules
Files `/etc/udev/rules.d/99-flashlight.rules`
```bash
# Allow everyone to set brightness of flashlight (Required for plasma-mobile flashlightplugin)
SUBSYSTEMS=="leds", KERNEL=="*:flash|*:torch", RUN+="/bin/chmod 666 %S%p/brightness"
```
pmOS : See to add depends `eudev` and makedepends `eudev-dev`6https://invent.kde.org/plasma/plasma-mobile/-/merge_requests/417kded/autodetectapn: Add background service to automatically add APN connections2024-03-21T18:21:27ZDevin Linkded/autodetectapn: Add background service to automatically add APN connectionsWe use the Android APN list here in order to determine the APN settings from SIM information.
Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/285, addresses https://invent.kde.org/plasma/plasma-mobile/-/issues/289
Needs http...We use the Android APN list here in order to determine the APN settings from SIM information.
Fixes https://invent.kde.org/plasma/plasma-mobile/-/issues/285, addresses https://invent.kde.org/plasma/plasma-mobile/-/issues/289
Needs https://invent.kde.org/frameworks/modemmanager-qt/-/merge_requests/32
~~TODO: we need to update modemmanager-qt with new API to get gid1 for SIMs, it's very outdated and missing a bunch of functions, and only run in plasma mobile~~6.1