1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00

Enhance DMS Greeter automation

- Thanks @brunodsf05 for doing some legwork to hunt this down!
This commit is contained in:
purian23
2025-11-27 23:12:33 -05:00
parent 966021bfd4
commit 0221021078
2 changed files with 89 additions and 18 deletions

View File

@@ -322,11 +322,74 @@ func enableGreeter() error {
}
fmt.Printf("✓ Updated greetd configuration to use %s\n", selectedCompositor)
// Check and set graphical.target as default
getDefaultCmd := exec.Command("systemctl", "get-default")
currentTarget, err := getDefaultCmd.Output()
if err != nil {
fmt.Println("⚠ Warning: Could not detect current default systemd target")
} else {
currentTargetStr := strings.TrimSpace(string(currentTarget))
if currentTargetStr != "graphical.target" {
fmt.Printf("\nSetting graphical.target as default (current: %s)...\n", currentTargetStr)
setDefaultCmd := exec.Command("sudo", "systemctl", "set-default", "graphical.target")
setDefaultCmd.Stdout = os.Stdout
setDefaultCmd.Stderr = os.Stderr
if err := setDefaultCmd.Run(); err != nil {
fmt.Println("⚠ Warning: Failed to set graphical.target as default")
fmt.Println(" Greeter may not start on boot. Run manually:")
fmt.Println(" sudo systemctl set-default graphical.target")
} else {
fmt.Println("✓ Set graphical.target as default")
}
} else {
fmt.Println("✓ Default target already set to graphical.target")
}
}
// Check for conflicting display managers and disable them
fmt.Println("\nChecking for conflicting display managers...")
conflictingDMs := []string{"gdm", "lightdm", "sddm"}
disabledAny := false
for _, dm := range conflictingDMs {
checkCmd := exec.Command("systemctl", "is-enabled", dm)
output, err := checkCmd.Output()
if err == nil && strings.TrimSpace(string(output)) == "enabled" {
fmt.Printf("⚠ Found enabled display manager: %s\n", dm)
fmt.Printf(" Disabling %s...\n", dm)
disableCmd := exec.Command("sudo", "systemctl", "disable", dm)
disableCmd.Stdout = os.Stdout
disableCmd.Stderr = os.Stderr
if err := disableCmd.Run(); err != nil {
fmt.Printf(" ⚠ Warning: Failed to disable %s\n", dm)
} else {
fmt.Printf(" ✓ Disabled %s\n", dm)
disabledAny = true
}
}
}
if !disabledAny {
fmt.Println("✓ No conflicting display managers found")
}
// Enable greetd service
fmt.Println("\nEnabling greetd service...")
enableCmd := exec.Command("sudo", "systemctl", "enable", "greetd")
enableCmd.Stdout = os.Stdout
enableCmd.Stderr = os.Stderr
if err := enableCmd.Run(); err != nil {
fmt.Println("⚠ Warning: Failed to enable greetd service")
fmt.Println(" Run manually: sudo systemctl enable greetd")
} else {
fmt.Println("✓ Enabled greetd service")
}
fmt.Println("\n=== Enable Complete ===")
fmt.Println("\nTo start the greeter, run:")
fmt.Println("\nTo start the greeter now, run:")
fmt.Println(" sudo systemctl start greetd")
fmt.Println("\nTo enable on boot, run:")
fmt.Println(" sudo systemctl enable --now greetd")
fmt.Println("\nOr reboot to see the greeter at boot time.")
return nil
}