Compare commits
No commits in common. 'ubuntu/plucky' and 'ubuntu/hirsute' have entirely different histories.
ubuntu/plu
...
ubuntu/hir
@ -1,6 +1,6 @@
|
|||||||
# there will be no manpages in a foreseable future
|
# there will be no manpages in a foreseable future
|
||||||
lxqt-powermanagement: no-manual-page [usr/bin/lxqt-config-powermanagement]
|
lxqt-powermanagement: binary-without-manpage usr/bin/lxqt-config-powermanagement
|
||||||
lxqt-powermanagement: no-manual-page [usr/bin/lxqt-powermanagement]
|
lxqt-powermanagement: binary-without-manpage usr/bin/lxqt-powermanagement
|
||||||
|
|
||||||
# category LXQt in not yet in freedesktop specs - no bug
|
# category LXQt in not yet in freedesktop specs - no bug
|
||||||
lxqt-powermanagement: desktop-entry-invalid-category LXQt [usr/share/applications/lxqt-config-powermanagement.desktop]
|
lxqt-powermanagement: desktop-entry-invalid-category LXQt usr/share/applications/lxqt-config-powermanagement.desktop
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
# This is expected
|
|
||||||
lxqt-powermanagement: desktop-entry-lacks-keywords-entry [usr/share/applications/lxqt-config-powermanagement.desktop]
|
|
||||||
lxqt-powermanagement: desktop-entry-invalid-category LXQt [usr/share/applications/lxqt-config-powermanagement.desktop]
|
|
||||||
lxqt-powermanagement: no-manual-page *
|
|
@ -1,114 +0,0 @@
|
|||||||
Description: Show a notification when the battery is present, not absent
|
|
||||||
In virtual machines especially, it is odd to see a message about the battery not being present. This commit moves that message to only display when there is a battery present.
|
|
||||||
Author: Simon Quigley <tsimonq2@lubuntu.me>
|
|
||||||
Origin: upstream
|
|
||||||
Forwarded: https://github.com/lxqt/lxqt-powermanagement/pull/382
|
|
||||||
Last-Update: 2023-10-03
|
|
||||||
---
|
|
||||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
|
||||||
--- a/src/batterywatcher.cpp
|
|
||||||
+++ b/src/batterywatcher.cpp
|
|
||||||
@@ -43,13 +43,6 @@ BatteryWatcher::BatteryWatcher(QObject *
|
|
||||||
{
|
|
||||||
const QList<Solid::Device> devices = Solid::Device::listFromType(Solid::DeviceInterface::Battery, QString());
|
|
||||||
|
|
||||||
- if (devices.isEmpty())
|
|
||||||
- {
|
|
||||||
- LXQt::Notification::notify(tr("No battery!"),
|
|
||||||
- tr("LXQt could not find data about any battery - monitoring disabled"),
|
|
||||||
- QSL("lxqt-powermanagement"));
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
for (Solid::Device device : devices)
|
|
||||||
{
|
|
||||||
Solid::Battery *battery = device.as<Solid::Battery>();
|
|
||||||
@@ -57,11 +50,24 @@ BatteryWatcher::BatteryWatcher(QObject *
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
mBatteries << battery;
|
|
||||||
connect(battery, &Solid::Battery::energyChanged, this, &BatteryWatcher::batteryChanged);
|
|
||||||
connect(battery, &Solid::Battery::chargeStateChanged, this, &BatteryWatcher::batteryChanged);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ bool discharging;
|
|
||||||
+ double chargeLevel;
|
|
||||||
+ chargeLevelAndStatus(discharging, chargeLevel);
|
|
||||||
+
|
|
||||||
+ if (!devices.isEmpty()) {
|
|
||||||
+ QString status = discharging ? QStringLiteral("Discharging") : QStringLiteral("Charging");
|
|
||||||
+ QString message = tr("%1 (%2%)").arg(status).arg(chargeLevel);
|
|
||||||
+ LXQt::Notification::notify(tr("Battery Present"),
|
|
||||||
+ message,
|
|
||||||
+ QSL("lxqt-powermanagement"));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
mBatteryInfoDialog = new BatteryInfoDialog(mBatteries);
|
|
||||||
|
|
||||||
connect(&mSettings, &PowerManagementSettings::settingsChanged, this, &BatteryWatcher::settingsChanged);
|
|
||||||
@@ -85,19 +91,10 @@ void BatteryWatcher::batteryChanged()
|
|
||||||
static QTime actionTime;
|
|
||||||
static LXQt::Notification *notification = nullptr;
|
|
||||||
|
|
||||||
- double totalEnergyFull = 0;
|
|
||||||
- double totalEnergyNow = 0;
|
|
||||||
- bool discharging = true;
|
|
||||||
+ bool discharging;
|
|
||||||
double chargeLevel;
|
|
||||||
|
|
||||||
- for (const Solid::Battery *battery : std::as_const(mBatteries))
|
|
||||||
- {
|
|
||||||
- totalEnergyFull += battery->energyFull();
|
|
||||||
- totalEnergyNow += battery->energy();
|
|
||||||
- discharging &= (battery->chargeState() == Solid::Battery::Discharging);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- chargeLevel = 100 * totalEnergyNow / totalEnergyFull;
|
|
||||||
+ chargeLevelAndStatus(discharging, chargeLevel);
|
|
||||||
|
|
||||||
qDebug() << "BatteryChanged"
|
|
||||||
<< "discharging:" << discharging
|
|
||||||
@@ -160,6 +157,31 @@ void BatteryWatcher::batteryChanged()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+void BatteryWatcher::chargeLevelAndStatus(bool &discharging, double &chargeLevel)
|
|
||||||
+{
|
|
||||||
+ double totalEnergyFull = 0;
|
|
||||||
+ double totalEnergyNow = 0;
|
|
||||||
+ bool batteries = false;
|
|
||||||
+ discharging = true;
|
|
||||||
+
|
|
||||||
+ for (const Solid::Battery *battery : std::as_const(mBatteries))
|
|
||||||
+ {
|
|
||||||
+ batteries = true;
|
|
||||||
+
|
|
||||||
+ totalEnergyFull += battery->energyFull();
|
|
||||||
+ totalEnergyNow += battery->energy();
|
|
||||||
+ discharging &= (battery->chargeState() == Solid::Battery::Discharging);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!batteries) {
|
|
||||||
+ discharging = false;
|
|
||||||
+ chargeLevel = 0;
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ chargeLevel = 100 * totalEnergyNow / totalEnergyFull;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void BatteryWatcher::settingsChanged()
|
|
||||||
{
|
|
||||||
if (!mSettings.isShowIcon())
|
|
||||||
--- a/src/batterywatcher.h
|
|
||||||
+++ b/src/batterywatcher.h
|
|
||||||
@@ -51,6 +51,8 @@ private slots:
|
|
||||||
void setPause(TrayIcon::PAUSE duration);
|
|
||||||
|
|
||||||
private:
|
|
||||||
+ void chargeLevelAndStatus(bool &discharging, double &chargeLevel);
|
|
||||||
+
|
|
||||||
QList<Solid::Battery*> mBatteries;
|
|
||||||
QList<TrayIcon*> mTrayIcons;
|
|
||||||
QTimer mPauseTimer;
|
|
@ -1,115 +0,0 @@
|
|||||||
Description: Remove DPMS-related and screensaver-suspending-related code
|
|
||||||
lxqt-powermanagement added some code that allows the power manager to mess
|
|
||||||
with DPMS stuff. However it appears that DPMS is oftentimes not available in
|
|
||||||
Lubuntu, making lxqt-powermanagement crash over and over until it finally
|
|
||||||
gets disabled by LXQt until the next login. Some screensaver-related stuff
|
|
||||||
was also thrown in which seems unrelated but is in with a function that
|
|
||||||
sets DPMS timeouts. This patch removes all of that code, fixing the crashes.
|
|
||||||
Author: Aaron Rainbolt
|
|
||||||
Origin: ubuntu
|
|
||||||
Last-Update: 2024-06-26
|
|
||||||
---
|
|
||||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
|
||||||
|
|
||||||
--- lxqt-powermanagement-2.0.0.orig/CMakeLists.txt
|
|
||||||
+++ lxqt-powermanagement-2.0.0/CMakeLists.txt
|
|
||||||
@@ -29,7 +29,6 @@ find_package(KF6IdleTime ${KF6_MINIMUM_V
|
|
||||||
find_package(KF6Solid ${KF6_MINIMUM_VERSION} REQUIRED)
|
|
||||||
find_package(lxqt ${LXQT_MINIMUM_VERSION} REQUIRED)
|
|
||||||
find_package(lxqt-globalkeys-ui ${LXQT_GLOBALKEYS_MINIMUM_VERSION} REQUIRED)
|
|
||||||
-find_package(XCB REQUIRED COMPONENTS xcb-dpms xcb-screensaver)
|
|
||||||
|
|
||||||
message(STATUS "Building with Qt${Qt6Core_VERSION}")
|
|
||||||
|
|
||||||
--- lxqt-powermanagement-2.0.0.orig/src/idlenesswatcher.cpp
|
|
||||||
+++ lxqt-powermanagement-2.0.0/src/idlenesswatcher.cpp
|
|
||||||
@@ -35,8 +35,6 @@
|
|
||||||
#include <QDebug>
|
|
||||||
#include <LXQt/lxqtnotification.h>
|
|
||||||
#include <QObject>
|
|
||||||
-#include <xcb/dpms.h>
|
|
||||||
-#include <xcb/screensaver.h>
|
|
||||||
|
|
||||||
IdlenessWatcher::IdlenessWatcher(QObject* parent):
|
|
||||||
Watcher(parent)
|
|
||||||
@@ -70,47 +68,14 @@ IdlenessWatcher::IdlenessWatcher(QObject
|
|
||||||
|
|
||||||
connect(&mPSettings, &LXQt::Settings::settingsChanged, this, &IdlenessWatcher::onSettingsChanged);
|
|
||||||
|
|
||||||
- // retrieve DPMS timeouts
|
|
||||||
- mDpmsStandby = mDpmsSuspend = mDpmsOff = 0;
|
|
||||||
- if (QGuiApplication::platformName() == QStringLiteral("xcb")) {
|
|
||||||
- if (auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>()) {
|
|
||||||
- xcb_connection_t* c = x11NativeInterface->connection();
|
|
||||||
- xcb_dpms_get_timeouts_cookie_t cookie = xcb_dpms_get_timeouts(c);
|
|
||||||
- xcb_dpms_get_timeouts_reply_t* reply = xcb_dpms_get_timeouts_reply(c, cookie, nullptr);
|
|
||||||
- if (reply) {
|
|
||||||
- mDpmsStandby = reply->standby_timeout;
|
|
||||||
- mDpmsSuspend = reply->suspend_timeout;
|
|
||||||
- mDpmsOff = reply->off_timeout;
|
|
||||||
- free(reply);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
setup();
|
|
||||||
}
|
|
||||||
|
|
||||||
IdlenessWatcher::~IdlenessWatcher()
|
|
||||||
{
|
|
||||||
- setDpmsTimeouts(true);
|
|
||||||
KIdleTime::instance()->removeAllIdleTimeouts();
|
|
||||||
}
|
|
||||||
|
|
||||||
-void IdlenessWatcher::setDpmsTimeouts(bool restore) {
|
|
||||||
- if (QGuiApplication::platformName() == QStringLiteral("xcb")) {
|
|
||||||
- if (auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>()) {
|
|
||||||
- xcb_connection_t* c = x11NativeInterface->connection();
|
|
||||||
- if (restore) {
|
|
||||||
- xcb_dpms_set_timeouts(c, mDpmsStandby, mDpmsSuspend, mDpmsOff);
|
|
||||||
- xcb_screensaver_suspend(c, 0); // WARNING: This is not documented but works.
|
|
||||||
- }
|
|
||||||
- else {
|
|
||||||
- xcb_dpms_set_timeouts(c, 0, 0, 0);
|
|
||||||
- xcb_screensaver_suspend(c, XCB_SCREENSAVER_SUSPEND);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
void IdlenessWatcher::setup()
|
|
||||||
{
|
|
||||||
if(mPSettings.isIdlenessWatcherEnabled()) {
|
|
||||||
@@ -144,13 +109,6 @@ void IdlenessWatcher::setup()
|
|
||||||
milliseconds = 1000;
|
|
||||||
mIdleBacklightWatcher = KIdleTime::instance()->addIdleTimeout(milliseconds);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- // override DPMS settings
|
|
||||||
- setDpmsTimeouts(false);
|
|
||||||
- }
|
|
||||||
- else {
|
|
||||||
- // restore DPMS settings
|
|
||||||
- setDpmsTimeouts(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
--- lxqt-powermanagement-2.0.0.orig/src/idlenesswatcher.h
|
|
||||||
+++ lxqt-powermanagement-2.0.0/src/idlenesswatcher.h
|
|
||||||
@@ -45,8 +45,6 @@ private Q_SLOTS:
|
|
||||||
void onSettingsChanged();
|
|
||||||
|
|
||||||
private:
|
|
||||||
- void setDpmsTimeouts(bool restore);
|
|
||||||
-
|
|
||||||
PowerManagementSettings mPSettings;
|
|
||||||
int mIdleACWatcher;
|
|
||||||
int mIdleBatteryWatcher;
|
|
||||||
@@ -54,7 +52,6 @@ private:
|
|
||||||
LXQt::Backlight *mBacklight;
|
|
||||||
int mBacklightActualValue;
|
|
||||||
bool mDischarging;
|
|
||||||
- quint16 mDpmsStandby, mDpmsSuspend, mDpmsOff;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // IDLENESSWATCHER_H
|
|
@ -1,2 +0,0 @@
|
|||||||
battery-ux.patch
|
|
||||||
revert-dpms-changes.patch
|
|
@ -1,2 +0,0 @@
|
|||||||
# We won't be forwarding this patch upstream
|
|
||||||
lxqt-powermanagement source: patch-not-forwarded-upstream [debian/patches/revert-dpms-changes.patch]
|
|
@ -1,5 +1,3 @@
|
|||||||
version=4
|
version=4
|
||||||
opts="searchmode=plain, \
|
opts="pgpsigurlmangle=s/$/.asc/" \
|
||||||
pgpsigurlmangle=s/$/.asc/, \
|
https://github.com/lxqt/lxqt-powermanagement/releases .*/lxqt-powermanagement-([\d\.]+).tar.xz
|
||||||
uversionmangle=s/(\d+\.\d+\.\d+).*/$1/" \
|
|
||||||
https://api.github.com/repos/lxqt/@PACKAGE@/releases https:\/\/github.com\/lxqt\/@PACKAGE@\/releases\/download\/@ANY_VERSION@\/@PACKAGE@-@ANY_VERSION@.tar.xz
|
|
||||||
|
Loading…
Reference in new issue