PowerDevil merge requestshttps://invent.kde.org/plasma/powerdevil/-/merge_requests2023-04-23T16:18:30Zhttps://invent.kde.org/plasma/powerdevil/-/merge_requests/148Extend systemd unit timeout2023-04-23T16:18:30ZAdam HoeseExtend systemd unit timeoutOn slower devices Powerdevil startup can take more than 5 seconds.
I have seen Powerdevil startup take up to as much as 17 seconds when the system is under heavy load from startup of other units.
30 seconds seems like a safe bet even fo...On slower devices Powerdevil startup can take more than 5 seconds.
I have seen Powerdevil startup take up to as much as 17 seconds when the system is under heavy load from startup of other units.
30 seconds seems like a safe bet even for the slowest of devices.https://invent.kde.org/plasma/powerdevil/-/merge_requests/106Make it possible for other processes to access PowerManagement Actions2022-10-20T01:30:18ZAleix Pol GonzalezMake it possible for other processes to access PowerManagement ActionsIt's useful to leverage the abstraction we already have instead needing
explicit semantic APIs.It's useful to leverage the abstraction we already have instead needing
explicit semantic APIs.5.27https://invent.kde.org/plasma/powerdevil/-/merge_requests/104Guard against nullable battery objects on disconnect2022-12-16T17:53:55Zivan tkachenkoGuard against nullable battery objects on disconnectThere's a similar check in `onDeviceAdded` above, but this check is
structured such that any possible leftovers will be removed in any case.
---
Note: this patch doesn't prevent Plasma from crashing in presence of a "glitched device", ...There's a similar check in `onDeviceAdded` above, but this check is
structured such that any possible leftovers will be removed in any case.
---
Note: this patch doesn't prevent Plasma from crashing in presence of a "glitched device", but it gets rid of two annoying errors in logs:
```
Sep 05 23:10:31 orange org_kde_powerdevil[50765]: QObject::disconnect: Unexpected nullptr parameter
Sep 05 23:10:31 orange org_kde_powerdevil[50765]: QObject::disconnect: Unexpected nullptr parameter
```5.26ivan tkachenkoivan tkachenkohttps://invent.kde.org/plasma/powerdevil/-/merge_requests/71Add a series of kconfigxt modules for PowerDevil2023-10-30T04:44:19ZTomaz CanabravaAdd a series of kconfigxt modules for PowerDevilThis is the port of KConfigXT for PowerProfiles, without the QML Codebase.
The code has been extensively rebased, and I tried to make as low commits as possible, to help review.
I know that @ngraham had problems with the loading of the s...This is the port of KConfigXT for PowerProfiles, without the QML Codebase.
The code has been extensively rebased, and I tried to make as low commits as possible, to help review.
I know that @ngraham had problems with the loading of the settings using this patch (as it's mostly what the Qml version has, too) and I'm investigating this.
How this works:
The KConfigXT modules will try to load settings for Three particcular "supergroups":
- AC
- Battery
- LowBattery
The file used to fetch those settings is the same as the old configuration, so things *should* work:
```
<kcfgfile name="powermanagementprofilesrc">
<parameter name="profileGroup"/>
</kcfgfile>
<group name="KeyboardBrightness" parentGroupName="$(profileGroup)">
```
This way, if we create a PowerManagementProfile("AC") - we will have the data for the entries inside of the AC group.
All of the KConfig / KConfigGroup code is *removed* from the sources, on this patch, and instead we use a PowerManagementProfile.
this let to some big rewrites on parts of the code that used to do string concatenation and group management manually: those should be reviewed carefully.
If you try this patch and settings don't match, please tell me what side of the settings didn't match, send me a picture of the view, and also drop your configuration files here so I can take a look: I do not have access to `keyboardBrigthness`, `brigthness`, `kernelProfiles` on my laptop so I can't test those.
*I think the UI is not optimal* - I won't work on nitpicks for the interface, what I'm trying to get here is the correct KConfigXT port. interface nitpicks we can fix later on.
@crossi I'v read the documentation of the settings exporter but I failed to create a script for it, I appreciate any help.
Please ignore the `rebase-me` commits, this will be squashed.5.27https://invent.kde.org/plasma/powerdevil/-/merge_requests/43Port to Kconfigxt2021-11-02T10:03:17ZTomaz CanabravaPort to KconfigxtThe long run is to be able to ditch the code for UI from the plugins and to have a Qml interface for the KCM.
This is the start of this task.
Todos:
- [x] Port the old configuration to the new based on KConfigXT (simply reusing is not p...The long run is to be able to ditch the code for UI from the plugins and to have a Qml interface for the KCM.
This is the start of this task.
Todos:
- [x] Port the old configuration to the new based on KConfigXT (simply reusing is not possible since the old stored multiple groups on the same file, and now we store one file per profile.)
- [x] Make sure the code still works (because the profile files changed, I need to go through the code that read it and make sure that it's calling the correct code
- [x] Remove calls with KConfig / KConfigGroup with handwritten logic
- [x] Remove the plugins that provides UI elements to the KCM
- [x] Implement the KConfigXT spec with all of the used values so we have *one* place to look for possible values.
- [x] Makes sure the code compiles when the KConfig / KConfigGroup is removed from the UI.
- [x] Uses kcfg_* on the UI to simplify handling
- [x] uses default values computed using the <default type="code"> tags on the KConfigXT
- [x] uses the same configuration file as the original powerdevil
- [x] no need to port anything
- [x] Handle msecs to secs on the combobox without manual intervention
I'm using this for the past week without clear issues.
Test with caution.
The latest update rebased all 125 commits and removed a bunch of test code, making it easier to review and test.
New aditions:
- [x] Correctly remove / add elements on the view if the action is supported or not.
- [*] Removed the possibility of using Plugins for UI elements. I'm not sure if any other plugin does this but if it does, it should have a separate KCM screen for it.5.24https://invent.kde.org/plasma/powerdevil/-/merge_requests/34RFC: Support setting ACPI platform profiles2021-10-18T15:28:37ZKai Uwe BroulikRFC: Support setting ACPI platform profilesThis allows to switch between different ACPI platform profiles,
such as "low power", "cool", "balaned", or "performance".
It adds an action that can be configured to switch automatically
on AC (un)plugging or low power, as well as expos...This allows to switch between different ACPI platform profiles,
such as "low power", "cool", "balaned", or "performance".
It adds an action that can be configured to switch automatically
on AC (un)plugging or low power, as well as exposes that setting
on DBus for a future Battery Monitor UI.
---
Uses https://patchwork.kernel.org/project/linux-acpi/patch/20201218174759.667457-2-markpearson@lenovo.com/
Haven't actually managed to get this working on my ThinkPad yet but it seemed straightforward enough to implement blindly.
![Screenshot_20201225_003338](/uploads/7f633d9e380406a97cafb3522a10edbe/Screenshot_20201225_003338.png)
* TODO: nicer UX ;)
* TODO: should we set some profile by default on AC or bat?
@fvogt @bshah @idscott @bruns @jsalatashttps://invent.kde.org/plasma/powerdevil/-/merge_requests/14WIP: Energy Performance Preferences2021-01-23T12:11:54ZJohn SalatasWIP: Energy Performance PreferencesAction managing the CPU's energy performance preference and governor. You can assign values in the System Settings' Power Management profiles and it is also exposed in dbus in rg.kde.Solid.PowerManagement.Actions.EnergyPerformanceControl...Action managing the CPU's energy performance preference and governor. You can assign values in the System Settings' Power Management profiles and it is also exposed in dbus in rg.kde.Solid.PowerManagement.Actions.EnergyPerformanceControl path
This is a work in progress. I consider the powerdevil part complete, but I still need to expose these settings in the powermanagement dataengine and also add some controls in battery monitor plasmoid to manage these from there as well. In the mean time I would really appreciate if someone could do a quick review my code (I'm warning you that my C++ skills suck). I have some FIXME and TODO comments in some places that I need some advise, but there might be other issues as well.
See also https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/197
Screenshots
![Screenshot_20200718_150541](/uploads/df157e29e42de7ac8ad02edb580b5332/Screenshot_20200718_150541.png)
![Screenshot_20200718_145805](/uploads/b4d889720bdadcffd6ef208333f232b3/Screenshot_20200718_145805.png)5.21