From 71438530a8168ac72e4a4ae081acd7f0c0ac47e3 Mon Sep 17 00:00:00 2001 From: bbedward Date: Thu, 14 May 2026 10:13:37 -0400 Subject: [PATCH] dankinstall: fix gentoo parsing and use guru overlays for DMS/dgop --- core/internal/distros/gentoo.go | 22 ++++++++++++++++++---- core/internal/distros/osinfo.go | 2 +- core/internal/tui/views_install.go | 2 +- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/core/internal/distros/gentoo.go b/core/internal/distros/gentoo.go index 8e97ccf6..09526a2b 100644 --- a/core/internal/distros/gentoo.go +++ b/core/internal/distros/gentoo.go @@ -116,6 +116,20 @@ func (g *GentooDistribution) detectXDGPortal() deps.Dependency { return g.detectPackage("xdg-desktop-portal-gtk", "Desktop integration portal for GTK", g.packageInstalled("sys-apps/xdg-desktop-portal-gtk")) } +func (g *GentooDistribution) detectDMS() deps.Dependency { + dep := deps.Dependency{ + Name: "dms (DankMaterialShell)", + Status: deps.StatusMissing, + Description: "Desktop Management System configuration", + Required: true, + CanToggle: false, + } + if g.packageInstalled("gui-apps/dankmaterialshell") { + dep.Status = deps.StatusInstalled + } + return dep +} + func (g *GentooDistribution) detectXwaylandSatellite() deps.Dependency { return g.detectPackage("xwayland-satellite", "Xwayland support", g.packageInstalled("gui-apps/xwayland-satellite")) } @@ -150,8 +164,8 @@ func (g *GentooDistribution) GetPackageMappingWithVariants(wm deps.WindowManager "quickshell": g.getQuickshellMapping(variants["quickshell"]), "matugen": {Name: "x11-misc/matugen", Repository: RepoTypeGURU, AcceptKeywords: archKeyword}, - "dms (DankMaterialShell)": g.getDmsMapping(variants["dms (DankMaterialShell)"]), - "dgop": {Name: "dgop", Repository: RepoTypeManual, BuildFunc: "installDgop"}, + "dms (DankMaterialShell)": g.getDmsMapping(), + "dgop": {Name: "gui-apps/dgop", Repository: RepoTypeGURU, AcceptKeywords: archKeyword}, } switch wm { @@ -171,8 +185,8 @@ func (g *GentooDistribution) getQuickshellMapping(_ deps.PackageVariant) Package return PackageMapping{Name: "gui-apps/quickshell", Repository: RepoTypeGURU, UseFlags: "breakpad jemalloc sockets wayland layer-shell session-lock toplevel-management screencopy X pipewire tray mpris pam hyprland hyprland-global-shortcuts hyprland-focus-grab i3 i3-ipc bluetooth", AcceptKeywords: "**"} } -func (g *GentooDistribution) getDmsMapping(_ deps.PackageVariant) PackageMapping { - return PackageMapping{Name: "dms", Repository: RepoTypeManual, BuildFunc: "installDankMaterialShell"} +func (g *GentooDistribution) getDmsMapping() PackageMapping { + return PackageMapping{Name: "gui-apps/dankmaterialshell", Repository: RepoTypeGURU, AcceptKeywords: g.getArchKeyword()} } func (g *GentooDistribution) getHyprlandMapping(_ deps.PackageVariant) PackageMapping { diff --git a/core/internal/distros/osinfo.go b/core/internal/distros/osinfo.go index 8fc4b25e..f3639144 100644 --- a/core/internal/distros/osinfo.go +++ b/core/internal/distros/osinfo.go @@ -56,7 +56,7 @@ func GetOSInfo() (*OSInfo, error) { } key := parts[0] - value := strings.Trim(parts[1], "\"") + value := strings.Trim(parts[1], "\"'") switch key { case "ID": diff --git a/core/internal/tui/views_install.go b/core/internal/tui/views_install.go index c110711b..d4639ce3 100644 --- a/core/internal/tui/views_install.go +++ b/core/internal/tui/views_install.go @@ -156,7 +156,7 @@ func uninstallCommand(distroID string, dependencies []deps.Dependency) string { return "" } if config.Family == distros.FamilyGentoo { - return "rm -rf ~/.config/quickshell/dms && sudo rm /usr/local/bin/dms" + return "sudo emerge --deselect gui-apps/dankmaterialshell && sudo emerge --depclean gui-apps/dankmaterialshell" } pkg := dmsPackageName(distroID, dependencies) switch config.Family {