diff --git a/README.md b/README.md index ed1f5cc..b2794d1 100644 --- a/README.md +++ b/README.md @@ -191,7 +191,7 @@ You can either download the effects from the KDE store (a), download a stable ve :warning: **You need at least KWin 5.25.0 for the Burn-My-Windows effects.** -:warning: **If the color picker widgets in the effect settings do not work for you, you may have to install a package called `libkf5widgetsaddons-dev` (Kubuntu, KDE Neon, ...) or `kwidgetsaddons-devel` (Fedora, OpenSuse, ...).** +:warning: **If the color picker widgets in the effect settings do not work for you, you may have to install a package called `libkf5widgetsaddons-dev` (Kubuntu, KDE Neon, ...) or `kf5-kwidgetsaddons-devel`, `kwidgetsaddons-devel` (Fedora, OpenSuse, ...).** ### a) Download from the [KDE Store](https://store.kde.org/p/1861183) diff --git a/docs/changelog.md b/docs/changelog.md index 2d9f7af..b1f002d 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -5,6 +5,14 @@ SPDX-License-Identifier: CC-BY-4.0 # Changelog of the Burn-My-Windows Extension +## [Burn My Windows 25](https://github.com/schneegans/Burn-My-Windows/releases/tag/v25) + +**Release Date:** 2023-01-17 + +#### Bug Fixes + +* Fixed an issue which prevented the extension from loading if `power-profiles-daemon` was masked. + ## [Burn My Windows 24](https://github.com/schneegans/Burn-My-Windows/releases/tag/v24) **Release Date:** 2023-01-14 diff --git a/extension.js b/extension.js index 0125c70..41dfe4b 100644 --- a/extension.js +++ b/extension.js @@ -89,10 +89,14 @@ class Extension { '/org/freedesktop/UPower'); // This is used to get the current power profile. - const PowerProfilesProxy = Gio.DBusProxy.makeProxyWrapper( - utils.getStringResource('/interfaces/net.hadess.PowerProfiles.xml')); - this._powerProfilesProxy = new PowerProfilesProxy( - Gio.DBus.system, 'net.hadess.PowerProfiles', '/net/hadess/PowerProfiles'); + try { + const PowerProfilesProxy = Gio.DBusProxy.makeProxyWrapper( + utils.getStringResource('/interfaces/net.hadess.PowerProfiles.xml')); + this._powerProfilesProxy = new PowerProfilesProxy( + Gio.DBus.system, 'net.hadess.PowerProfiles', '/net/hadess/PowerProfiles'); + } catch (e) { + // Maybe the service is masked... + } // We will monkey-patch these methods. Let's store the original ones. this._origAddWindowClone = Workspace.prototype._addWindowClone; @@ -390,7 +394,7 @@ class Extension { let disableOnBattery = this._settings.get_boolean('disable-on-battery') && this._upowerProxy.OnBattery; let disableOnPowerSave = this._settings.get_boolean('disable-on-power-save') && - this._powerProfilesProxy.ActiveProfile == 'power-saver'; + this._powerProfilesProxy && this._powerProfilesProxy.ActiveProfile == 'power-saver'; if ((disableOnBattery || disableOnPowerSave) && previewNick == '') { this._fixAnimationTimes(isDialogWindow, forOpening, null); diff --git a/prefs.js b/prefs.js index 22265ad..a00e998 100644 --- a/prefs.js +++ b/prefs.js @@ -103,15 +103,20 @@ var PreferencesDialog = class PreferencesDialog { // Check whether the power profiles daemon is available - if not, we hide the // corresponding settings row. - const PowerProfilesProxy = Gio.DBusProxy.makeProxyWrapper( - utils.getStringResource('/interfaces/net.hadess.PowerProfiles.xml')); - let powerProfilesProxy = new PowerProfilesProxy( - Gio.DBus.system, 'net.hadess.PowerProfiles', '/net/hadess/PowerProfiles'); + let hasPowerProfiles = false; + try { + const PowerProfilesProxy = Gio.DBusProxy.makeProxyWrapper( + utils.getStringResource('/interfaces/net.hadess.PowerProfiles.xml')); + let powerProfilesProxy = new PowerProfilesProxy( + Gio.DBus.system, 'net.hadess.PowerProfiles', '/net/hadess/PowerProfiles'); - if (powerProfilesProxy.get_name_owner() == null) { - this._builder.get_object('disable-on-power-save-row').set_visible(false); + hasPowerProfiles = powerProfilesProxy.get_name_owner() != null; + } catch (e) { + // Maybe the service is masked... } + this._builder.get_object('disable-on-power-save-row').set_visible(hasPowerProfiles); + // Starting with GNOME Shell 42, the settings dialog uses libadwaita (at least most of // the time - it seems that pop!_OS does not support libadwaita even on GNOME 42). We // have to use a different layout, as the stack sidebar looks pretty ugly with the