1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-05-11 23:09:42 -04:00

quickshell: drop support for 0.2, require 0.3+

- Remove all compat code
- Rewire LegacyNetworkService to use Quickshell.Networking
- Add parentWindow to settings child windows
This commit is contained in:
bbedward
2026-05-11 13:04:29 -04:00
parent 3989c7f801
commit b8f4c350a8
52 changed files with 1472 additions and 2064 deletions

View File

@@ -6,7 +6,6 @@ import Quickshell
import Quickshell.Io
import Quickshell.Hyprland
import Quickshell.I3
import Quickshell.Wayland
import qs.Common
import qs.Services
@@ -22,14 +21,6 @@ Singleton {
property string inhibitReason: "Keep system awake"
property string nvidiaCommand: ""
readonly property bool nativeInhibitorAvailable: {
try {
return typeof IdleInhibitor !== "undefined";
} catch (e) {
return false;
}
}
property bool loginctlAvailable: false
property bool wtypeAvailable: false
property string sessionId: ""
@@ -66,8 +57,6 @@ Singleton {
detectHibernateProcess.running = true;
detectPrimeRunProcess.running = true;
detectWtypeProcess.running = true;
cleanupOrphanedInhibitors();
log.info("Native inhibitor available:", nativeInhibitorAvailable);
if (!SettingsData.loginctlLockIntegration) {
log.debug("loginctl lock integration disabled by user");
return;
@@ -396,19 +385,15 @@ Singleton {
signal inhibitorChanged
function enableIdleInhibit() {
if (idleInhibited) {
if (idleInhibited)
return;
}
log.debug("Enabling idle inhibit (native:", nativeInhibitorAvailable, ")");
idleInhibited = true;
inhibitorChanged();
}
function disableIdleInhibit() {
if (!idleInhibited) {
if (!idleInhibited)
return;
}
log.debug("Disabling idle inhibit (native:", nativeInhibitorAvailable, ")");
idleInhibited = false;
inhibitorChanged();
}
@@ -423,64 +408,6 @@ Singleton {
function setInhibitReason(reason) {
inhibitReason = reason;
if (idleInhibited && !nativeInhibitorAvailable) {
const wasActive = idleInhibited;
idleInhibited = false;
Qt.callLater(() => {
if (wasActive) {
idleInhibited = true;
}
});
}
}
Process {
id: idleInhibitProcess
command: {
if (!idleInhibited || nativeInhibitorAvailable) {
return ["true"];
}
log.debug("Starting systemd/elogind inhibit process");
return [isElogind ? "elogind-inhibit" : "systemd-inhibit", "--what=idle", "--who=quickshell", `--why=${inhibitReason}`, "--mode=block", "sleep", "infinity"];
}
running: idleInhibited && !nativeInhibitorAvailable
onRunningChanged: {
log.debug("Inhibit process running:", running, "(native:", nativeInhibitorAvailable, ")");
}
onExited: function (exitCode) {
if (idleInhibited && exitCode !== 0 && !nativeInhibitorAvailable) {
log.warn("Inhibitor process crashed with exit code:", exitCode);
idleInhibited = false;
ToastService.showWarning("Idle inhibitor failed");
}
}
}
// Kill orphaned idle inhibitor processes left behind by previous quickshell sessions.
// When quickshell crashes or is force-killed, the child systemd-inhibit process gets
// reparented to PID 1 and continues to block idle indefinitely.
function cleanupOrphanedInhibitors() {
if (nativeInhibitorAvailable) return;
orphanCleanupProcess.running = true;
}
Process {
id: orphanCleanupProcess
running: false
command: ["pkill", "-f", "systemd-inhibit --what=idle --who=quickshell.*sleep infinity"]
onExited: function (exitCode) {
if (exitCode === 0) {
log.info("Cleaned up orphaned idle inhibitor process(es) from a previous session");
}
}
}
Connections {