cpupower icon indicating copy to clipboard operation
cpupower copied to clipboard

Add support for Gnome 43

Open aneverhopefulhelper opened this issue 2 years ago • 41 comments

Hiya, could you update this so that it is available/works on Gnome 43 please? As this is marked as incompatible with it currently. Thank you!

aneverhopefulhelper avatar Sep 27 '22 23:09 aneverhopefulhelper

+1 . Thank you!

sezcl avatar Sep 28 '22 23:09 sezcl

+1 please

vanastasis avatar Sep 29 '22 16:09 vanastasis

+1

gilvbp avatar Oct 08 '22 14:10 gilvbp

Non complete list of things not working with Gnome 43 / Ubuntu 22.10 by simply changing the metadata:

  • Tray Icon (its just blank)
  • Current Frequency (always .8 GHz, even tho /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq suggests otherwise with AMD ryzen)

Ubuntu 22.10 also brings amd p_state which seems to work fine (also confirmed with 5.17 OEM kernel on 22.04)

Mimoja avatar Oct 17 '22 16:10 Mimoja

yeah, that would be nice and really useful to have a version for Gnome 43. is there only one person on that project?

nietzschescodes avatar Oct 25 '22 19:10 nietzschescodes

yeah, that would be nice and really useful to have a version for Gnome 43. is there only one person on that project?

yes, currently I'm the only one working on this. I cannot give any ETA for an update. I currently have more important stuff to do. A realistic time to start working on this would be in December...

fin-ger avatar Oct 25 '22 19:10 fin-ger

thanks for your response. that is sad because your program is the only one that actually works on Gnome and it works perfectly. I don't get why Gnome includes their own power manager and it literally doesn't work on any of their gnome 4X. anyway, thanks for your great program. In the meantime, I might add another DE. They might have a good power manager. I know Cinnamon has one, but it never worked or freeze the laptop. Might try maybe KDE. Can't wait for your Gnome 43 version!

nietzschescodes avatar Oct 25 '22 20:10 nietzschescodes

If you are running an Intel CPU you might have a look at cpupower-gui. It is a DE-independent graphical program for managing Intel p-state. It does not have Shell integration like this extension, but might serve your needs. And most importantly it is independent of Gnome-Shell update shenanigans.

fin-ger avatar Oct 25 '22 20:10 fin-ger

Ok, thanks. I will try that before adding another DE.

nietzschescodes avatar Oct 25 '22 20:10 nietzschescodes

I have looked a bit and this is due to Gnome 43 changing the location of the battery toggle used for detection of the charging / not charging state, used in src/indicator.js. It was moved from aggregateMenu to Main.panel.statusArea.quickSettings. I found the source code here and here for the powerToggle but it seems to differ quite a bit, as _power do not exist anymore, but powerToggle does, which seems not to have _proxy.State. Edit: was not looking at the right place. See next comment!

NicolasDerumigny avatar Nov 03 '22 06:11 NicolasDerumigny

Support is back again on my PR :).

NicolasDerumigny avatar Nov 03 '22 06:11 NicolasDerumigny

that would be great to have that extension upgraded, Nicolas! I have found a temporary solution, but it is not as good as this CPU Power Manager.

nietzschescodes avatar Nov 03 '22 17:11 nietzschescodes

Support is back again on my PR :).

Thanks @NicolasDerumigny for finding solution. I can confirm that making changes like in your PR and restarting Gnome Shell brings extension back to life in Gnome 43 :) Thanks!

HydeFromT70s avatar Nov 03 '22 23:11 HydeFromT70s

I don't get it. what we have to do to have it bring back to life? downloading the system.js created by nicolas and put it where exactly? I downloaded it and put it in the file cpupower (in extensions in .locals) and nothing happened. what then should we do with that file? where we have to put it? do we have to remove a file in adding that file? sorry, I don't get what to do with that system.js file..

nietzschescodes avatar Nov 04 '22 01:11 nietzschescodes

I don't get it. what we have to do to have it bring back to life? downloading the system.js created by nicolas and put it where exactly? I downloaded it and put it in the file cpupower (in extensions in .locals) and nothing happened. what then should we do with that file? where we have to put it? do we have to remove a file in adding that file? sorry, I don't get what to do with that system.js file..

It's fairly simple. All you have to do is modify two files as you can see in @NicolasDerumigny PR.

Just edit file: /home/<YOUR_USERNAME>/.local/share/gnome-shell/extensions/[email protected]/src/indicator.js and change line 111 from: this.power = Main.panel.statusArea["aggregateMenu"]._power; to this.power = imports.ui.main.panel.statusArea.quickSettings._system._systemItem._powerToggle;

Also you need to modify file: /home/<YOUR_USERNAME>/.local/share/gnome-shell/extensions/[email protected]/metadata.json by adding your Gnome version to "shell-version": before: "shell-version": ["3.28", "3.30", "3.36", "3.38", "40", "41", "42"], after: "shell-version": ["3.28", "3.30", "3.36", "3.38", "40", "41", "42", "43"],

After modifying this two files, you need to log out or restart your Gnome Shell by ALT+F2 typing r and hitting enter.

HydeFromT70s avatar Nov 04 '22 02:11 HydeFromT70s

Only those 2 small steps + log-out? It is quite simple. Thanks for explaining, but unfortunately for me, it doesn't work. When I check on my list of extensions, it still not showing that extension so I can't turn it on.

nietzschescodes avatar Nov 04 '22 03:11 nietzschescodes

It depends how you installed the extension first. If it was done by the package manager, then the files are located in /usr/share/gnome-shell/extensions/[[email protected]](mailto:[email protected])/. Or wait until this PR got merged :).

NicolasDerumigny avatar Nov 04 '22 03:11 NicolasDerumigny

Hi Nicolas. Yes, I had find the file and made the changes that Hyde was talking about, but I don't know how to turn it on, because it does not appear back on my list of the extensions (see pic below). But no worry, I will wait until this PR got merged. Thanks so much for your work! Screenshot from 2022-11-04 04-46-51

nietzschescodes avatar Nov 04 '22 03:11 nietzschescodes

Hi folk! I have started looking a bit more into the code and updated it (not to break compatibility with older GNOME versions....). Now we need you help. I am running under Arch Linux and cannot test on other distributions, but (copy/paste from the GNOME 42 update / some versions may have updated their GNOME release since):

For such a version increment to happen, we need testing in the most popular Linux distributions, including

all supported Ubuntu LTS releases

  • [ ] 22.04 (Gnome 42)
  • [ ] 20.04 (Gnome 3.36)
  • [ ] 18.04 (Gnome 3.28)

latest debian testing, stable, and old-stable

  • [ ] testing (bookworm) (Gnome 43)
  • [ ] stable (bullseye) (Gnome 3.38)
  • [ ] old-stable (buster) (Gnome 3.30)

Fedora stable and old-stable

  • [ ] Fedora 35 (soon EOL, maybe skip?) (Gnome 41)
  • [ ] Fedora 36 (Gnome 42)
  • [ x ] Fedora 37 (???)

Other

  • [x] latest Arch (Gnome 43)
  • [ ] Latest PopOS! (22.04, Gnome 42)

Testing procedure

Run

$ make install PREFIX=$HOME/.local $ dbus-run-session -- gnome-shell --nested --wayland

and check for errors and warnings regarding cpupower in the console output while doing the following steps:

  1. Do clean installation (via the dropdown)
  2. Moving both sliders in the dropdown with i. Mouse ii. Arrow keys iii. Mouse wheel
  3. Toggle Turbo Boost
  4. Change Profile
  5. Toggle Auto-Switch (testing maybe not possible as VMs don't fire AC adapter events)
  6. Open Preferences and toggle all options
  7. Do 2-4 for all available backends
  8. Create a new profile and change its position (move up and down in the list)
  9. Set all values in that new profile
  10. Select it in the extensions dropdown menu
  11. Remove the profile
  12. Open About Window
  13. Uninstall tool and polkit rules (this is known to be flaky, if this fails this is not a stopper)
  14. Install latest version from Gnome Extensions
  15. Update with this version
  16. Check if update procedure is working (Note: this requires a version increment which is only done by make release which I have not done yet, so version in installer.sh and cpufreqctl needs to be incremented manually for testing)
  17. Native installs i. For debian-based distros a. do a clean install of the latest .deb for this extension b. build a deb for the new version and update with the package manager and check if the update is working ii. For red-hat based distros a. do a clean install of the latest .rpm for this extension b. build a rpm for the new version and update with the package manager and check if the update is working

Global installation method and all other installation methods are not tested (at least by me). You can do it if you want and if you encounter any issues, I will do my best to fix them.

Orca (screen reader) support can only be tested in "real" gnome-shells (non-nested). At least I couldn't get Orca running in the nested gnome-shell, but it would be nice to have basic testing for screen-readers in all distros (profile management in preferences dialog is known to be hard-to-impossible to use with orca, this will be fixed when redesigning the preferences dialog and not a stopper for a new release).

NicolasDerumigny avatar Nov 05 '22 04:11 NicolasDerumigny

Just a small heads up: Testing (bookworm) comes with Gnome 43 since September.

nietzschescodes avatar Nov 05 '22 10:11 nietzschescodes

Looks you can skip PopOS. They skipped 22.10 because it seems they don't want Gnome 43 and are making their own DE.

nietzschescodes avatar Nov 06 '22 02:11 nietzschescodes

I don't think PopOS! should be skipped, as long as GNOME is still supported by default on this distro (which is the case, right?)

NicolasDerumigny avatar Nov 06 '22 17:11 NicolasDerumigny

I don't think PopOS! should be skipped, as long as GNOME is still supported by default on this distro (which is the case, right?)

Yes, if PopOS skipped a release, the latest release is still the one that needs testing.

fin-ger avatar Nov 06 '22 17:11 fin-ger

I believe Gnome 42 is the default on PopOS 22.04 but they have decided to stop using Gnome for the future versions, that is why they won't release a 22.10. They don't want Gnome 43 and instead are working deeper on their own DE for the 23.04 edition. But right, ofc, the new extension should still be compatible with their Gnome 42.

nietzschescodes avatar Nov 06 '22 19:11 nietzschescodes

Oh, I just noticed something else. Gnome 3.36 is shipped on Ubuntu 20.04, not 3.30. Also I think it is Gnome 3.28 that is shipped on Ubuntu 18.04, not 3.22.

nietzschescodes avatar Nov 06 '22 19:11 nietzschescodes

Oh, I just noticed something else. Gnome 3.36 is shipped on Ubuntu 20.04, not 3.30. Also I think it is Gnome 3.28 that is shipped on Ubuntu 18.04, not 3.22.

Feel free to correct this if it's wrong. I looked this up with the packages provided for gnome-session in the official repositories of each distro without backports.

fin-ger avatar Nov 06 '22 19:11 fin-ger

Good call. I was looking at the gnome package which does not exactly match.

NicolasDerumigny avatar Nov 06 '22 20:11 NicolasDerumigny

If you are running an Intel CPU you might have a look at cpupower-gui. It is a DE-independent graphical program for managing Intel p-state. It does not have Shell integration like this extension, but might serve your needs. And most importantly it is independent of Gnome-Shell update shenanigans.

PLEASE DO NOT INSTALL THE MASTER BRANCH FROM cpupower-gui ON FEDORA 36 !!! IT BRICKS THE SYSTEM: https://github.com/vagnum08/cpupower-gui/issues/96

Will update comment when its fixed

LeSnake04 avatar Nov 21 '22 11:11 LeSnake04

I did try cpupower-gui when I was suggested that in this thread. It just doesn't work. You set a limit and the limit is crossed. My solution after was simply to install cpufrequitls and set manually what I want and it works perfectly.

nietzschescodes avatar Nov 21 '22 13:11 nietzschescodes

Thanks for the heads-up! This explains why this extension is still so popular although it is tightly coupled with GNOME and is constantly lacking behind in supporting new GNOME versions :joy: :see_no_evil:

fin-ger avatar Nov 22 '22 16:11 fin-ger