1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-30 17:42:06 -04:00

logger: add a dedicated QML logging Singleton

- adds log.info/error/debug/warn/fatal
- adds ability to write logs to any file
- add CLI options in addition to env to set log levels
This commit is contained in:
bbedward
2026-04-29 15:40:44 -04:00
parent 3b96c6ab22
commit f76724f7cd
84 changed files with 1764 additions and 1297 deletions

View File

@@ -7,9 +7,11 @@ import Quickshell.I3
import Quickshell.Wayland
import Quickshell.Hyprland
import qs.Common
import qs.Services
Singleton {
id: root
readonly property var log: Log.scoped("CompositorService")
property bool isHyprland: false
property bool isNiri: false
@@ -52,7 +54,7 @@ Singleton {
randrScales = scales;
}
} catch (e) {
console.warn("CompositorService: failed to parse randr data:", e);
log.warn("failed to parse randr data:", e);
}
}
randrReady = true;
@@ -379,9 +381,7 @@ Singleton {
const focusedWin = NiriService.windows.find(nw => nw.is_focused);
if (!focusedWin)
return [];
const screenWsIds = new Set(
NiriService.allWorkspaces.filter(ws => ws.output === screenName).map(ws => ws.id)
);
const screenWsIds = new Set(NiriService.allWorkspaces.filter(ws => ws.output === screenName).map(ws => ws.id));
return screenWsIds.has(focusedWin.workspace_id) ? toplevels : [];
}
return NiriService.filterCurrentDisplay(toplevels, screenName);
@@ -454,7 +454,7 @@ Singleton {
}
}
} catch (e) {
console.warn("CompositorService: workspace snapshot failed:", e);
log.warn("workspace snapshot failed:", e);
}
if (currentWorkspaceId === null)
@@ -498,7 +498,7 @@ Singleton {
isMiracle = false;
isLabwc = false;
compositor = "hyprland";
console.info("CompositorService: Detected Hyprland");
log.info("Detected Hyprland");
return;
}
@@ -513,7 +513,7 @@ Singleton {
isMiracle = false;
isLabwc = false;
compositor = "niri";
console.info("CompositorService: Detected Niri with socket:", niriSocket);
log.info("Detected Niri with socket:", niriSocket);
NiriService.generateNiriBlurrule();
}
}, 0);
@@ -531,7 +531,7 @@ Singleton {
isMiracle = false;
isLabwc = false;
compositor = "sway";
console.info("CompositorService: Detected Sway with socket:", swaySocket);
log.info("Detected Sway with socket:", swaySocket);
}
}, 0);
return;
@@ -548,7 +548,7 @@ Singleton {
isMiracle = true;
isLabwc = false;
compositor = "miracle";
console.info("CompositorService: Detected Miracle WM with socket:", miracleSocket);
log.info("Detected Miracle WM with socket:", miracleSocket);
}
}, 0);
return;
@@ -565,7 +565,7 @@ Singleton {
isMiracle = false;
isLabwc = false;
compositor = "scroll";
console.info("CompositorService: Detected Scroll with socket:", scrollSocket);
log.info("Detected Scroll with socket:", scrollSocket);
}
}, 0);
return;
@@ -580,7 +580,7 @@ Singleton {
isMiracle = false;
isLabwc = true;
compositor = "labwc";
console.info("CompositorService: Detected LabWC with PID:", labwcPid);
log.info("Detected LabWC with PID:", labwcPid);
return;
}
@@ -595,7 +595,7 @@ Singleton {
isMiracle = false;
isLabwc = false;
compositor = "unknown";
console.warn("CompositorService: No compositor detected");
log.warn("No compositor detected");
}
}
@@ -618,7 +618,7 @@ Singleton {
isMiracle = false;
isLabwc = false;
compositor = "dwl";
console.info("CompositorService: Detected DWL via DMS capability");
log.info("Detected DWL via DMS capability");
}
}
@@ -638,7 +638,7 @@ Singleton {
if (isLabwc) {
Quickshell.execDetached(["dms", "dpms", "off"]);
}
console.warn("CompositorService: Cannot power off monitors, unknown compositor");
log.warn("Cannot power off monitors, unknown compositor");
}
function powerOnMonitors() {
@@ -657,12 +657,12 @@ Singleton {
if (isLabwc) {
Quickshell.execDetached(["dms", "dpms", "on"]);
}
console.warn("CompositorService: Cannot power on monitors, unknown compositor");
log.warn("Cannot power on monitors, unknown compositor");
}
function _dwlPowerOffMonitors() {
if (!Quickshell.screens || Quickshell.screens.length === 0) {
console.warn("CompositorService: No screens available for DWL power off");
log.warn("No screens available for DWL power off");
return;
}
@@ -676,7 +676,7 @@ Singleton {
function _dwlPowerOnMonitors() {
if (!Quickshell.screens || Quickshell.screens.length === 0) {
console.warn("CompositorService: No screens available for DWL power on");
log.warn("No screens available for DWL power on");
return;
}