Bug 469487 - New OSD to swap between power profiles
Summary: New OSD to swap between power profiles
Status: RESOLVED FIXED
Alias: None
Product: Powerdevil
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR wishlist
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-05-08 12:21 UTC by Justin Zobel
Modified: 2024-09-10 20:05 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Justin Zobel 2023-05-08 12:21:08 UTC
Meta/Super/Win + P currently opens a nice OSD for managing outputs for displays purely from a keyboard without any mouse interaction.

I would like to see a similar implementation for Power Profiles which could be set to Meta/Super/Win + B (currently does nothing on my laptop).

This would allow users who are typing or keyboard focussed to quickly adjust the Power Profile of their system if they see their laptop is now at a critical battery level or quickly boost to the Performance profile for some resource intensive task.
Comment 1 Bug Janitor Service 2023-06-01 15:44:44 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/powerdevil/-/merge_requests/186
Comment 2 Nate Graham 2023-07-14 16:16:16 UTC
Git commit fd29e77b5e6320ad072fbf38c50823438936a382 by Nate Graham, on behalf of Natalie Clarius.
Committed on 14/07/2023 at 16:16.
Pushed by ngraham into branch 'master'.

Add interactive OSD to switch power profiles

To trigger the OSD, press Meta+B. It should also work with the battery
function key that some laptops have

There's a lot of copy-paste from the KScreen OSD so eventually we might
want to make it some sort of reusable component.
FIXED-IN: 6.0

M  +10   -0    CMakeLists.txt
M  +19   -0    daemon/powerdevilapp.cpp
M  +1    -0    daemon/powerdevilapp.h
A  +26   -0    osd/CMakeLists.txt
A  +20   -0    osd/main.cpp     [License: GPL(v2.0+)]
A  +9    -0    osd/org.kde.powerdevil.powerProfileOsdService.xml
A  +86   -0    osd/osd.cpp     [License: GPL(v2.0+)]
A  +50   -0    osd/osd.h     [License: GPL(v2.0+)]
A  +27   -0    osd/osdaction.cpp     [License: GPL(v2.0+)]
A  +35   -0    osd/osdaction.h     [License: GPL(v2.0+)]
A  +86   -0    osd/osdmanager.cpp     [License: GPL(v2.0+)]
A  +41   -0    osd/osdmanager.h     [License: GPL(v2.0+)]
A  +12   -0    osd/plasma-powerprofile-osd.service
A  +6    -0    osd/qml.qrc
A  +137  -0    osd/qml/OsdSelector.qml     [License: GPL(v2.0+)]

https://invent.kde.org/plasma/powerdevil/-/commit/fd29e77b5e6320ad072fbf38c50823438936a382
Comment 3 Natalie Clarius 2023-07-14 16:52:16 UTC
Git commit 54a805765d7f06f016b23fcab9703c63449b6c52 by Natalie Clarius.
Committed on 11/07/2023 at 22:57.
Pushed by nclarius into branch 'power-profiles-osd'.

add interactive osd to switch power profiles
FIXED-IN: 6.0

M  +10   -0    CMakeLists.txt
M  +19   -0    daemon/powerdevilapp.cpp
M  +1    -0    daemon/powerdevilapp.h
A  +26   -0    osd/CMakeLists.txt
A  +20   -0    osd/main.cpp     [License: GPL(v2.0+)]
A  +9    -0    osd/org.kde.powerdevil.powerProfileOsdService.xml
A  +86   -0    osd/osd.cpp     [License: GPL(v2.0+)]
A  +50   -0    osd/osd.h     [License: GPL(v2.0+)]
A  +27   -0    osd/osdaction.cpp     [License: GPL(v2.0+)]
A  +35   -0    osd/osdaction.h     [License: GPL(v2.0+)]
A  +86   -0    osd/osdmanager.cpp     [License: GPL(v2.0+)]
A  +41   -0    osd/osdmanager.h     [License: GPL(v2.0+)]
A  +12   -0    osd/plasma-powerprofile-osd.service
A  +6    -0    osd/qml.qrc
A  +137  -0    osd/qml/OsdSelector.qml     [License: GPL(v2.0+)]

https://invent.kde.org/plasma/powerdevil/-/commit/54a805765d7f06f016b23fcab9703c63449b6c52
Comment 4 Bug Janitor Service 2024-08-20 20:46:48 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/powerdevil/-/merge_requests/416
Comment 5 Jakob Petsovits 2024-09-10 20:05:55 UTC
Git commit 4ef20b2160b47a70764fff57e9a273f9e5ecf0f0 by Jakob Petsovits.
Committed on 10/09/2024 at 12:01.
Pushed by jpetso into branch 'master'.

Cycle through power profiles on Meta+B with non-interactive OSD

The interactive OSD implementation from MR !186 was a lot of work,
but little discussion happened at the time about whether it should
be interactive at all.

Arguments have since been made that the low number of selectable
power profiles, and the non-destructive character of switching
between them, would make power profiles a better fit for immediately
switching profiles on shortcut presses with a non-interactive OSD.

This commit implements simple power profile cycling on Meta+B in
the PowerProfile action, and uses the Plasma OSD service's
pre-existing "powerProfileChanged" method to display a
non-interactive OSD popup once the profile was applied.

In turn, the entire interactive OSD service can be deleted
from PowerDevil, reducing complexity. The corresponding global
shortcut definition moves from PowerDevilApp to the PowerProfile
action, similar to global shortcuts from other PowerDevil actions.
(This makes PowerDevil shortcuts actually show up in the Shortcuts
KCM as "Power Management" rather than the default app title from
KAboutData called "KDE Power Management System".)
Related: bug 476921

M  +0    -9    CMakeLists.txt
M  +42   -10   daemon/actions/bundled/powerprofile.cpp
M  +9    -6    daemon/actions/bundled/powerprofile.h
M  +0    -18   daemon/powerdevilapp.cpp
M  +0    -1    daemon/powerdevilapp.h
D  +0    -28   osd/CMakeLists.txt
D  +0    -6    osd/Messages.sh
D  +0    -23   osd/main.cpp
D  +0    -9    osd/org.kde.powerdevil.powerProfileOsdService.xml
D  +0    -85   osd/osd.cpp
D  +0    -47   osd/osd.h
D  +0    -29   osd/osdaction.cpp
D  +0    -35   osd/osdaction.h
D  +0    -102  osd/osdmanager.cpp
D  +0    -39   osd/osdmanager.h
D  +0    -12   osd/plasma-powerprofile-osd.service
D  +0    -6    osd/qml.qrc
D  +0    -140  osd/qml/OsdSelector.qml

https://invent.kde.org/plasma/powerdevil/-/commit/4ef20b2160b47a70764fff57e9a273f9e5ecf0f0