Compare commits
8 Commits
ubuntu/man
...
ubuntu/nob
Author | SHA1 | Date |
---|---|---|
Aaron Rainbolt | 235a550c36 | 1 year ago |
Aaron Rainbolt | 928e094586 | 1 year ago |
Simon Quigley | dd5c5e0199 | 1 year ago |
Simon Quigley | e281b2507f | 1 year ago |
Simon Quigley | 5a6a3e97c9 | 1 year ago |
Simon Quigley | 55f23453c6 | 1 year ago |
Simon Quigley | 5409596e89 | 1 year ago |
Simon Quigley | e3b40ebf98 | 1 year ago |
@ -0,0 +1,114 @@
|
||||
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 : qAsConst(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 : qAsConst(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;
|
@ -0,0 +1,167 @@
|
||||
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: 2023-11-14
|
||||
---
|
||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 07f9549..6215d9c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -15,22 +15,18 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
|
||||
|
||||
-set(LXQTBT_MINIMUM_VERSION "0.13.0")
|
||||
set(KF5_MINIMUM_VERSION "5.101.0")
|
||||
set(LXQT_MINIMUM_VERSION "1.4.0")
|
||||
set(QT_MINIMUM_VERSION "5.15.0")
|
||||
|
||||
-find_package(lxqt-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED)
|
||||
find_package(Qt5DBus ${QT_MINIMUM_VERSION} REQUIRED)
|
||||
find_package(Qt5LinguistTools ${QT_MINIMUM_VERSION} REQUIRED)
|
||||
find_package(Qt5Svg ${QT_MINIMUM_VERSION} REQUIRED)
|
||||
find_package(Qt5Widgets ${QT_MINIMUM_VERSION} REQUIRED)
|
||||
-find_package(Qt5X11Extras ${QT_MINIMUM_VERSION} REQUIRED)
|
||||
find_package(KF5IdleTime ${KF5_MINIMUM_VERSION} REQUIRED)
|
||||
find_package(KF5Solid ${KF5_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${Qt5Core_VERSION}")
|
||||
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index b29362a..177ddb1 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -57,8 +57,6 @@ target_link_libraries(lxqt-powermanagement
|
||||
KF5::Solid
|
||||
KF5::IdleTime
|
||||
lxqt-globalkeys
|
||||
- Qt5::X11Extras
|
||||
- ${XCB_LIBRARIES}
|
||||
)
|
||||
|
||||
install(TARGETS
|
||||
diff --git a/src/idlenesswatcher.cpp b/src/idlenesswatcher.cpp
|
||||
index ecaa641..cb9d9e1 100644
|
||||
--- a/src/idlenesswatcher.cpp
|
||||
+++ b/src/idlenesswatcher.cpp
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
#include "idlenesswatcher.h"
|
||||
|
||||
-#include <QGuiApplication>
|
||||
+#include <QCoreApplication>
|
||||
#include <QTimer>
|
||||
#include <KIdleTime>
|
||||
#include <Solid/Device>
|
||||
@@ -35,9 +35,6 @@
|
||||
#include <QDebug>
|
||||
#include <LXQt/lxqtnotification.h>
|
||||
#include <QObject>
|
||||
-#include <QX11Info>
|
||||
-#include <xcb/dpms.h>
|
||||
-#include <xcb/screensaver.h>
|
||||
|
||||
IdlenessWatcher::IdlenessWatcher(QObject* parent):
|
||||
Watcher(parent)
|
||||
@@ -71,43 +68,14 @@ IdlenessWatcher::IdlenessWatcher(QObject* parent):
|
||||
|
||||
connect(&mPSettings, &LXQt::Settings::settingsChanged, this, &IdlenessWatcher::onSettingsChanged);
|
||||
|
||||
- // retrieve DPMS timeouts
|
||||
- mDpmsStandby = mDpmsSuspend = mDpmsOff = 0;
|
||||
- if (QGuiApplication::platformName() == QStringLiteral("xcb")) {
|
||||
- xcb_connection_t* c = QX11Info::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")) {
|
||||
- xcb_connection_t* c = QX11Info::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()) {
|
||||
@@ -141,13 +109,6 @@ void IdlenessWatcher::setup()
|
||||
milliseconds = 1000;
|
||||
mIdleBacklightWatcher = KIdleTime::instance()->addIdleTimeout(milliseconds);
|
||||
}
|
||||
-
|
||||
- // override DPMS settings
|
||||
- setDpmsTimeouts(false);
|
||||
- }
|
||||
- else {
|
||||
- // restore DPMS settings
|
||||
- setDpmsTimeouts(true);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/idlenesswatcher.h b/src/idlenesswatcher.h
|
||||
index dce9cc6..af0b585 100644
|
||||
--- a/src/idlenesswatcher.h
|
||||
+++ b/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
|
||||
diff --git a/src/main.cpp b/src/main.cpp
|
||||
index eedd360..493bf8b 100644
|
||||
--- a/src/main.cpp
|
||||
+++ b/src/main.cpp
|
||||
@@ -34,7 +34,7 @@
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
||||
- LXQt::Application a(argc, argv, true);
|
||||
+ LXQt::Application a(argc, argv);
|
||||
a.setQuitOnLastWindowClosed(false);
|
||||
|
||||
QCommandLineParser parser;
|
@ -0,0 +1,2 @@
|
||||
battery-ux.patch
|
||||
revert-dpms-changes.patch
|
Loading…
Reference in new issue