1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-08 06:25:37 -05:00

Update dms greeter to scan system & local directories

This commit is contained in:
purian23
2025-11-14 15:36:14 -05:00
parent 1c5e31fea9
commit 8f5a9d6e9f

View File

@@ -1063,14 +1063,35 @@ Item {
Process {
id: sessionListProc
command: ["find"]
.concat("/usr/share/wayland-sessions")
.concat("/usr/share/xsessions")
.concat("/usr/local/share/wayland-sessions")
.concat("/usr/local/share/xsessions")
.concat(xdgDataDirs.split(":").map(d => d + "/wayland-sessions"))
.concat(xdgDataDirs.split(":").map(d => d + "/xsessions"))
.concat(["-name", "*.desktop", "-type", "f", "-follow"])
property string homeDir: Quickshell.env("HOME") || ""
property string xdgDirs: xdgDataDirs || ""
command: {
var paths = [
"/usr/share/wayland-sessions",
"/usr/share/xsessions",
"/usr/local/share/wayland-sessions",
"/usr/local/share/xsessions"
]
if (homeDir) {
paths.push(homeDir + "/.local/share/wayland-sessions")
paths.push(homeDir + "/.local/share/xsessions")
}
// Add XDG_DATA_DIRS paths
if (xdgDirs) {
xdgDirs.split(":").forEach(function(dir) {
if (dir) {
paths.push(dir + "/wayland-sessions")
paths.push(dir + "/xsessions")
}
})
}
// 1. Explicit system/user paths
var explicitFind = "find " + paths.join(" ") + " -maxdepth 1 -name '*.desktop' -type f 2>/dev/null"
// 2. Scan all /home user directories for local session files
var homeScan = "find /home -maxdepth 4 \\( -path '*/wayland-sessions/*.desktop' -o -path '*/xsessions/*.desktop' \\) -type f 2>/dev/null"
var findCmd = "(" + explicitFind + "; " + homeScan + ") | sort -u"
return ["sh", "-c", findCmd]
}
running: false
stdout: SplitParser {