diff --git a/core/cmd/dms/commands_greeter.go b/core/cmd/dms/commands_greeter.go index 176cce23..166e073a 100644 --- a/core/cmd/dms/commands_greeter.go +++ b/core/cmd/dms/commands_greeter.go @@ -277,9 +277,9 @@ func enableGreeter() error { } } - wrapperCmd := "dms-greeter" - if !commandExists("dms-greeter") { - wrapperCmd = "/usr/local/bin/dms-greeter" + wrapperCmd, err := findCommandPath("dms-greeter") + if err != nil { + return fmt.Errorf("dms-greeter not found in PATH. Please ensure it is installed and accessible") } compositorLower := strings.ToLower(selectedCompositor) @@ -444,7 +444,7 @@ func checkGreeterStatus() error { desc: "Session state", }, { - source: filepath.Join(homeDir, ".cache", "quickshell", "dankshell", "dms-colors.json"), + source: filepath.Join(homeDir, ".cache", "DankMaterialShell", "dms-colors.json"), target: filepath.Join(cacheDir, "colors.json"), desc: "Color theme", }, diff --git a/core/cmd/dms/utils.go b/core/cmd/dms/utils.go index fe9dceef..f58240c8 100644 --- a/core/cmd/dms/utils.go +++ b/core/cmd/dms/utils.go @@ -1,12 +1,24 @@ package main -import "os/exec" +import ( + "fmt" + "os/exec" +) func commandExists(cmd string) bool { _, err := exec.LookPath(cmd) return err == nil } +// findCommandPath returns the absolute path to a command in PATH +func findCommandPath(cmd string) (string, error) { + path, err := exec.LookPath(cmd) + if err != nil { + return "", fmt.Errorf("command '%s' not found in PATH", cmd) + } + return path, nil +} + func isArchPackageInstalled(packageName string) bool { cmd := exec.Command("pacman", "-Q", packageName) err := cmd.Run() diff --git a/core/internal/greeter/installer.go b/core/internal/greeter/installer.go index bf78e7ac..aed27870 100644 --- a/core/internal/greeter/installer.go +++ b/core/internal/greeter/installer.go @@ -342,7 +342,7 @@ func SyncDMSConfigs(dmsPath string, logFunc func(string), sudoPassword string) e desc: "state (wallpaper configuration)", }, { - source: filepath.Join(homeDir, ".cache", "quickshell", "dankshell", "dms-colors.json"), + source: filepath.Join(homeDir, ".cache", "DankMaterialShell", "dms-colors.json"), target: filepath.Join(cacheDir, "colors.json"), desc: "wallpaper based theming", }, diff --git a/quickshell/Modules/Greetd/README.md b/quickshell/Modules/Greetd/README.md index d0a6ab3b..b7a7f96c 100644 --- a/quickshell/Modules/Greetd/README.md +++ b/quickshell/Modules/Greetd/README.md @@ -46,8 +46,8 @@ setfacl -m u:greeter:x ~ ~/.config ~/.local ~/.cache ~/.local/state # Set group ownership on config directories sudo chgrp -R greeter ~/.config/DankMaterialShell sudo chgrp -R greeter ~/.local/state/DankMaterialShell -sudo chgrp -R greeter ~/.cache/quickshell -sudo chmod -R g+rX ~/.config/DankMaterialShell ~/.local/state/DankMaterialShell ~/.cache/quickshell +sudo chgrp -R greeter ~/.cache/DankMaterialShell +sudo chmod -R g+rX ~/.config/DankMaterialShell ~/.cache/DankMaterialShell ~/.cache/quickshell # Create symlinks sudo ln -sf ~/.config/DankMaterialShell/settings.json /var/cache/dms-greeter/settings.json