diff --git a/core/cmd/dms/commands_greeter.go b/core/cmd/dms/commands_greeter.go index c1982bfb..68cd3789 100644 --- a/core/cmd/dms/commands_greeter.go +++ b/core/cmd/dms/commands_greeter.go @@ -1490,6 +1490,19 @@ func checkGreeterStatus() error { } if stat, err := os.Stat(cacheDir); err == nil && stat.IsDir() { fmt.Printf(" ✓ %s exists\n", cacheDir) + requiredSubdirs := []string{".local/state", ".local/share", ".cache"} + missingSubdirs := false + for _, sub := range requiredSubdirs { + subPath := filepath.Join(cacheDir, sub) + if _, err := os.Stat(subPath); os.IsNotExist(err) { + fmt.Printf(" ⚠ Missing required subdir: %s\n", subPath) + missingSubdirs = true + } + } + if missingSubdirs { + fmt.Println(" Run 'dms greeter sync' to initialize the cache directory structure.") + allGood = false + } } else { fmt.Printf(" ✗ %s not found\n", cacheDir) fmt.Printf(" %s\n", packageInstallHint()) diff --git a/quickshell/Modules/Greetd/GreetdMemory.qml b/quickshell/Modules/Greetd/GreetdMemory.qml index 541e6af5..da949d30 100644 --- a/quickshell/Modules/Greetd/GreetdMemory.qml +++ b/quickshell/Modules/Greetd/GreetdMemory.qml @@ -22,7 +22,6 @@ Singleton { property bool nightModeEnabled: false Component.onCompleted: { - Quickshell.execDetached(["mkdir", "-p", greetCfgDir]); loadMemory(); loadSessionConfig(); } diff --git a/quickshell/Modules/Greetd/assets/dms-greeter b/quickshell/Modules/Greetd/assets/dms-greeter index 1e9ef6d2..96bddb53 100755 --- a/quickshell/Modules/Greetd/assets/dms-greeter +++ b/quickshell/Modules/Greetd/assets/dms-greeter @@ -87,8 +87,7 @@ exec_compositor() { exec "$@" > >(systemd-cat -t "dms-greeter/$log_tag" -p info) 2>&1 fi - local log_file="$CACHE_DIR/$log_tag.log" - exec "$@" >> "$log_file" 2>&1 + exec "$@" } while [[ $# -gt 0 ]]; do @@ -180,19 +179,10 @@ export QT_WAYLAND_DISABLE_WINDOWDECORATION=1 export EGL_PLATFORM=gbm export DMS_RUN_GREETER=1 -ensure_cache_tree() { - local base="$1" - mkdir -p "$base/.local/state" "$base/.local/state/wireplumber" "$base/.local/share" "$base/.cache" -} - -if ! ensure_cache_tree "$CACHE_DIR" 2>/dev/null; then - FALLBACK_CACHE_DIR="/tmp/dms-greeter-${UID:-$(id -u)}" - echo "Warning: cache directory '$CACHE_DIR' is not writable; falling back to '$FALLBACK_CACHE_DIR'" >&2 - CACHE_DIR="$FALLBACK_CACHE_DIR" - if ! ensure_cache_tree "$CACHE_DIR"; then - echo "Error: failed to initialize fallback cache directory '$CACHE_DIR'" >&2 - exit 1 - fi +if [[ ! -d "$CACHE_DIR" ]]; then + echo "Error: cache directory '$CACHE_DIR' does not exist." >&2 + echo " Run 'dms greeter sync' to initialize it, or pass --cache-dir to an existing directory." >&2 + exit 1 fi export DMS_GREET_CFG_DIR="$CACHE_DIR"