From 8ce78e71343b1769b4c87cac9eae3a45510a4c03 Mon Sep 17 00:00:00 2001 From: purian23 Date: Sat, 6 Dec 2025 01:08:23 -0500 Subject: [PATCH] Dependency removals from Dankinstaller Distros - Removed grim, grimblast, slurp, hyprpicker & mate-polkit from all distros --- core/internal/distros/arch.go | 21 ------- core/internal/distros/debian.go | 48 +--------------- core/internal/distros/fedora.go | 28 --------- core/internal/distros/gentoo.go | 9 --- core/internal/distros/opensuse.go | 19 ------- core/internal/distros/ubuntu.go | 95 +------------------------------ 6 files changed, 2 insertions(+), 218 deletions(-) diff --git a/core/internal/distros/arch.go b/core/internal/distros/arch.go index 38b8592c..6cf17080 100644 --- a/core/internal/distros/arch.go +++ b/core/internal/distros/arch.go @@ -91,7 +91,6 @@ func (a *ArchDistribution) DetectDependenciesWithTerminal(ctx context.Context, w dependencies = append(dependencies, a.detectWindowManager(wm)) dependencies = append(dependencies, a.detectQuickshell()) dependencies = append(dependencies, a.detectXDGPortal()) - dependencies = append(dependencies, a.detectPolkitAgent()) dependencies = append(dependencies, a.detectAccountsService()) // Hyprland-specific tools @@ -107,7 +106,6 @@ func (a *ArchDistribution) DetectDependenciesWithTerminal(ctx context.Context, w // Base detections (common across distros) dependencies = append(dependencies, a.detectMatugen()) dependencies = append(dependencies, a.detectDgop()) - dependencies = append(dependencies, a.detectHyprpicker()) dependencies = append(dependencies, a.detectClipboardTools()...) return dependencies, nil @@ -127,20 +125,6 @@ func (a *ArchDistribution) detectXDGPortal() deps.Dependency { } } -func (a *ArchDistribution) detectPolkitAgent() deps.Dependency { - status := deps.StatusMissing - if a.packageInstalled("mate-polkit") { - status = deps.StatusInstalled - } - - return deps.Dependency{ - Name: "mate-polkit", - Status: status, - Description: "PolicyKit authentication agent", - Required: true, - } -} - func (a *ArchDistribution) detectAccountsService() deps.Dependency { status := deps.StatusMissing if a.packageInstalled("accountsservice") { @@ -178,18 +162,13 @@ func (a *ArchDistribution) GetPackageMappingWithVariants(wm deps.WindowManager, "cliphist": {Name: "cliphist", Repository: RepoTypeSystem}, "wl-clipboard": {Name: "wl-clipboard", Repository: RepoTypeSystem}, "xdg-desktop-portal-gtk": {Name: "xdg-desktop-portal-gtk", Repository: RepoTypeSystem}, - "mate-polkit": {Name: "mate-polkit", Repository: RepoTypeSystem}, "accountsservice": {Name: "accountsservice", Repository: RepoTypeSystem}, - "hyprpicker": {Name: "hyprpicker", Repository: RepoTypeSystem}, } switch wm { case deps.WindowManagerHyprland: packages["hyprland"] = a.getHyprlandMapping(variants["hyprland"]) - packages["grim"] = PackageMapping{Name: "grim", Repository: RepoTypeSystem} - packages["slurp"] = PackageMapping{Name: "slurp", Repository: RepoTypeSystem} packages["hyprctl"] = a.getHyprlandMapping(variants["hyprland"]) - packages["grimblast"] = PackageMapping{Name: "grimblast", Repository: RepoTypeManual, BuildFunc: "installGrimblast"} packages["jq"] = PackageMapping{Name: "jq", Repository: RepoTypeSystem} case deps.WindowManagerNiri: packages["niri"] = a.getNiriMapping(variants["niri"]) diff --git a/core/internal/distros/debian.go b/core/internal/distros/debian.go index 99d66055..b927026c 100644 --- a/core/internal/distros/debian.go +++ b/core/internal/distros/debian.go @@ -61,7 +61,6 @@ func (d *DebianDistribution) DetectDependenciesWithTerminal(ctx context.Context, dependencies = append(dependencies, d.detectWindowManager(wm)) dependencies = append(dependencies, d.detectQuickshell()) dependencies = append(dependencies, d.detectXDGPortal()) - dependencies = append(dependencies, d.detectPolkitAgent()) dependencies = append(dependencies, d.detectAccountsService()) if wm == deps.WindowManagerNiri { @@ -89,20 +88,6 @@ func (d *DebianDistribution) detectXDGPortal() deps.Dependency { } } -func (d *DebianDistribution) detectPolkitAgent() deps.Dependency { - status := deps.StatusMissing - if d.packageInstalled("mate-polkit") { - status = deps.StatusInstalled - } - - return deps.Dependency{ - Name: "mate-polkit", - Status: status, - Description: "PolicyKit authentication agent", - Required: true, - } -} - func (d *DebianDistribution) detectXwaylandSatellite() deps.Dependency { status := deps.StatusMissing if d.commandExists("xwayland-satellite") { @@ -149,7 +134,6 @@ func (d *DebianDistribution) GetPackageMappingWithVariants(wm deps.WindowManager "alacritty": {Name: "alacritty", Repository: RepoTypeSystem}, "wl-clipboard": {Name: "wl-clipboard", Repository: RepoTypeSystem}, "xdg-desktop-portal-gtk": {Name: "xdg-desktop-portal-gtk", Repository: RepoTypeSystem}, - "mate-polkit": {Name: "mate-polkit", Repository: RepoTypeSystem}, "accountsservice": {Name: "accountsservice", Repository: RepoTypeSystem}, // DMS packages from OBS with variant support @@ -158,9 +142,7 @@ func (d *DebianDistribution) GetPackageMappingWithVariants(wm deps.WindowManager "matugen": {Name: "matugen", Repository: RepoTypeOBS, RepoURL: "home:AvengeMedia:danklinux"}, "dgop": {Name: "dgop", Repository: RepoTypeOBS, RepoURL: "home:AvengeMedia:danklinux"}, "cliphist": {Name: "cliphist", Repository: RepoTypeOBS, RepoURL: "home:AvengeMedia:danklinux"}, - - // Keep ghostty as manual (no OBS package yet) - "ghostty": {Name: "ghostty", Repository: RepoTypeManual, BuildFunc: "installGhostty"}, + "ghostty": {Name: "ghostty", Repository: RepoTypeOBS, RepoURL: "home:AvengeMedia:danklinux"}, } if wm == deps.WindowManagerNiri { @@ -664,30 +646,6 @@ func (d *DebianDistribution) installGo(ctx context.Context, sudoPassword string, return d.runWithProgress(installCmd, progressChan, PhaseSystemPackages, 0.87, 0.90) } -func (d *DebianDistribution) installGhosttyDebian(ctx context.Context, sudoPassword string, progressChan chan<- InstallProgressMsg) error { - d.log("Installing Ghostty using Debian installer script...") - - progressChan <- InstallProgressMsg{ - Phase: PhaseSystemPackages, - Progress: 0.1, - Step: "Running Ghostty Debian installer...", - IsComplete: false, - NeedsSudo: true, - CommandInfo: "curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh | sudo bash", - LogOutput: "Installing Ghostty using pre-built Debian package", - } - - installCmd := ExecSudoCommand(ctx, sudoPassword, - "/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)\"") - - if err := d.runWithProgress(installCmd, progressChan, PhaseSystemPackages, 0.1, 0.9); err != nil { - return fmt.Errorf("failed to install Ghostty: %w", err) - } - - d.log("Ghostty installed successfully using Debian installer") - return nil -} - func (d *DebianDistribution) InstallManualPackages(ctx context.Context, packages []string, variantMap map[string]deps.PackageVariant, sudoPassword string, progressChan chan<- InstallProgressMsg) error { if len(packages) == 0 { return nil @@ -697,10 +655,6 @@ func (d *DebianDistribution) InstallManualPackages(ctx context.Context, packages for _, pkg := range packages { switch pkg { - case "ghostty": - if err := d.installGhosttyDebian(ctx, sudoPassword, progressChan); err != nil { - return fmt.Errorf("failed to install ghostty: %w", err) - } default: if err := d.ManualPackageInstaller.InstallManualPackages(ctx, []string{pkg}, variantMap, sudoPassword, progressChan); err != nil { return fmt.Errorf("failed to install %s: %w", pkg, err) diff --git a/core/internal/distros/fedora.go b/core/internal/distros/fedora.go index 2f898d79..95f0323d 100644 --- a/core/internal/distros/fedora.go +++ b/core/internal/distros/fedora.go @@ -76,7 +76,6 @@ func (f *FedoraDistribution) DetectDependenciesWithTerminal(ctx context.Context, dependencies = append(dependencies, f.detectWindowManager(wm)) dependencies = append(dependencies, f.detectQuickshell()) dependencies = append(dependencies, f.detectXDGPortal()) - dependencies = append(dependencies, f.detectPolkitAgent()) dependencies = append(dependencies, f.detectAccountsService()) // Hyprland-specific tools @@ -92,7 +91,6 @@ func (f *FedoraDistribution) DetectDependenciesWithTerminal(ctx context.Context, // Base detections (common across distros) dependencies = append(dependencies, f.detectMatugen()) dependencies = append(dependencies, f.detectDgop()) - dependencies = append(dependencies, f.detectHyprpicker()) dependencies = append(dependencies, f.detectClipboardTools()...) return dependencies, nil @@ -112,20 +110,6 @@ func (f *FedoraDistribution) detectXDGPortal() deps.Dependency { } } -func (f *FedoraDistribution) detectPolkitAgent() deps.Dependency { - status := deps.StatusMissing - if f.packageInstalled("mate-polkit") { - status = deps.StatusInstalled - } - - return deps.Dependency{ - Name: "mate-polkit", - Status: status, - Description: "PolicyKit authentication agent", - Required: true, - } -} - func (f *FedoraDistribution) packageInstalled(pkg string) bool { cmd := exec.Command("rpm", "-q", pkg) err := cmd.Run() @@ -145,9 +129,7 @@ func (f *FedoraDistribution) GetPackageMappingWithVariants(wm deps.WindowManager "alacritty": {Name: "alacritty", Repository: RepoTypeSystem}, "wl-clipboard": {Name: "wl-clipboard", Repository: RepoTypeSystem}, "xdg-desktop-portal-gtk": {Name: "xdg-desktop-portal-gtk", Repository: RepoTypeSystem}, - "mate-polkit": {Name: "mate-polkit", Repository: RepoTypeSystem}, "accountsservice": {Name: "accountsservice", Repository: RepoTypeSystem}, - "hyprpicker": f.getHyprpickerMapping(variants["hyprland"]), // COPR packages "quickshell": f.getQuickshellMapping(variants["quickshell"]), @@ -160,10 +142,7 @@ func (f *FedoraDistribution) GetPackageMappingWithVariants(wm deps.WindowManager switch wm { case deps.WindowManagerHyprland: packages["hyprland"] = f.getHyprlandMapping(variants["hyprland"]) - packages["grim"] = PackageMapping{Name: "grim", Repository: RepoTypeSystem} - packages["slurp"] = PackageMapping{Name: "slurp", Repository: RepoTypeSystem} packages["hyprctl"] = f.getHyprlandMapping(variants["hyprland"]) - packages["grimblast"] = PackageMapping{Name: "grimblast", Repository: RepoTypeManual, BuildFunc: "installGrimblast"} packages["jq"] = PackageMapping{Name: "jq", Repository: RepoTypeSystem} case deps.WindowManagerNiri: packages["niri"] = f.getNiriMapping(variants["niri"]) @@ -194,13 +173,6 @@ func (f *FedoraDistribution) getHyprlandMapping(variant deps.PackageVariant) Pac return PackageMapping{Name: "hyprland", Repository: RepoTypeCOPR, RepoURL: "solopasha/hyprland"} } -func (f *FedoraDistribution) getHyprpickerMapping(variant deps.PackageVariant) PackageMapping { - if variant == deps.VariantGit { - return PackageMapping{Name: "hyprpicker-git", Repository: RepoTypeCOPR, RepoURL: "solopasha/hyprland"} - } - return PackageMapping{Name: "hyprpicker", Repository: RepoTypeCOPR, RepoURL: "avengemedia/danklinux"} -} - func (f *FedoraDistribution) getNiriMapping(variant deps.PackageVariant) PackageMapping { if variant == deps.VariantGit { return PackageMapping{Name: "niri", Repository: RepoTypeCOPR, RepoURL: "yalter/niri-git"} diff --git a/core/internal/distros/gentoo.go b/core/internal/distros/gentoo.go index aea037b2..0e5b12f0 100644 --- a/core/internal/distros/gentoo.go +++ b/core/internal/distros/gentoo.go @@ -108,7 +108,6 @@ func (g *GentooDistribution) DetectDependenciesWithTerminal(ctx context.Context, dependencies = append(dependencies, g.detectMatugen()) dependencies = append(dependencies, g.detectDgop()) - dependencies = append(dependencies, g.detectHyprpicker()) dependencies = append(dependencies, g.detectClipboardTools()...) return dependencies, nil @@ -190,7 +189,6 @@ func (g *GentooDistribution) GetPackageMappingWithVariants(wm deps.WindowManager "xdg-desktop-portal-gtk": {Name: "sys-apps/xdg-desktop-portal-gtk", Repository: RepoTypeSystem, UseFlags: "wayland X"}, "mate-polkit": {Name: "mate-extra/mate-polkit", Repository: RepoTypeSystem}, "accountsservice": {Name: "sys-apps/accountsservice", Repository: RepoTypeSystem}, - "hyprpicker": g.getHyprpickerMapping(variants["hyprland"]), "qtbase": {Name: "dev-qt/qtbase", Repository: RepoTypeSystem, UseFlags: "wayland opengl vulkan widgets"}, "qtdeclarative": {Name: "dev-qt/qtdeclarative", Repository: RepoTypeSystem, UseFlags: "opengl vulkan"}, @@ -207,10 +205,7 @@ func (g *GentooDistribution) GetPackageMappingWithVariants(wm deps.WindowManager switch wm { case deps.WindowManagerHyprland: packages["hyprland"] = g.getHyprlandMapping(variants["hyprland"]) - packages["grim"] = PackageMapping{Name: "gui-apps/grim", Repository: RepoTypeSystem} - packages["slurp"] = PackageMapping{Name: "gui-apps/slurp", Repository: RepoTypeSystem} packages["hyprctl"] = g.getHyprlandMapping(variants["hyprland"]) - packages["grimblast"] = PackageMapping{Name: "gui-wm/hyprland-contrib", Repository: RepoTypeGURU, AcceptKeywords: archKeyword} packages["jq"] = PackageMapping{Name: "app-misc/jq", Repository: RepoTypeSystem} case deps.WindowManagerNiri: packages["niri"] = g.getNiriMapping(variants["niri"]) @@ -236,10 +231,6 @@ func (g *GentooDistribution) getHyprlandMapping(variant deps.PackageVariant) Pac return PackageMapping{Name: "gui-wm/hyprland", Repository: RepoTypeSystem, UseFlags: "X", AcceptKeywords: archKeyword} } -func (g *GentooDistribution) getHyprpickerMapping(_ deps.PackageVariant) PackageMapping { - return PackageMapping{Name: "gui-apps/hyprpicker", Repository: RepoTypeGURU, AcceptKeywords: g.getArchKeyword()} -} - func (g *GentooDistribution) getNiriMapping(_ deps.PackageVariant) PackageMapping { return PackageMapping{Name: "gui-wm/niri", Repository: RepoTypeGURU, UseFlags: "dbus screencast", AcceptKeywords: g.getArchKeyword()} } diff --git a/core/internal/distros/opensuse.go b/core/internal/distros/opensuse.go index 43fcf31d..efb11bfb 100644 --- a/core/internal/distros/opensuse.go +++ b/core/internal/distros/opensuse.go @@ -66,7 +66,6 @@ func (o *OpenSUSEDistribution) DetectDependenciesWithTerminal(ctx context.Contex dependencies = append(dependencies, o.detectWindowManager(wm)) dependencies = append(dependencies, o.detectQuickshell()) dependencies = append(dependencies, o.detectXDGPortal()) - dependencies = append(dependencies, o.detectPolkitAgent()) dependencies = append(dependencies, o.detectAccountsService()) // Hyprland-specific tools @@ -101,20 +100,6 @@ func (o *OpenSUSEDistribution) detectXDGPortal() deps.Dependency { } } -func (o *OpenSUSEDistribution) detectPolkitAgent() deps.Dependency { - status := deps.StatusMissing - if o.packageInstalled("mate-polkit") { - status = deps.StatusInstalled - } - - return deps.Dependency{ - Name: "mate-polkit", - Status: status, - Description: "PolicyKit authentication agent", - Required: true, - } -} - func (o *OpenSUSEDistribution) packageInstalled(pkg string) bool { cmd := exec.Command("rpm", "-q", pkg) err := cmd.Run() @@ -134,7 +119,6 @@ func (o *OpenSUSEDistribution) GetPackageMappingWithVariants(wm deps.WindowManag "alacritty": {Name: "alacritty", Repository: RepoTypeSystem}, "wl-clipboard": {Name: "wl-clipboard", Repository: RepoTypeSystem}, "xdg-desktop-portal-gtk": {Name: "xdg-desktop-portal-gtk", Repository: RepoTypeSystem}, - "mate-polkit": {Name: "mate-polkit", Repository: RepoTypeSystem}, "accountsservice": {Name: "accountsservice", Repository: RepoTypeSystem}, "cliphist": {Name: "cliphist", Repository: RepoTypeSystem}, @@ -148,10 +132,7 @@ func (o *OpenSUSEDistribution) GetPackageMappingWithVariants(wm deps.WindowManag switch wm { case deps.WindowManagerHyprland: packages["hyprland"] = PackageMapping{Name: "hyprland", Repository: RepoTypeSystem} - packages["grim"] = PackageMapping{Name: "grim", Repository: RepoTypeSystem} - packages["slurp"] = PackageMapping{Name: "slurp", Repository: RepoTypeSystem} packages["hyprctl"] = PackageMapping{Name: "hyprland", Repository: RepoTypeSystem} - packages["grimblast"] = PackageMapping{Name: "grimblast", Repository: RepoTypeManual, BuildFunc: "installGrimblast"} packages["jq"] = PackageMapping{Name: "jq", Repository: RepoTypeSystem} case deps.WindowManagerNiri: // Niri stable has native package support on openSUSE diff --git a/core/internal/distros/ubuntu.go b/core/internal/distros/ubuntu.go index d254aa6e..ebc2fcd8 100644 --- a/core/internal/distros/ubuntu.go +++ b/core/internal/distros/ubuntu.go @@ -3,9 +3,7 @@ package distros import ( "context" "fmt" - "os" "os/exec" - "path/filepath" "strings" "github.com/AvengeMedia/DankMaterialShell/core/internal/deps" @@ -66,7 +64,6 @@ func (u *UbuntuDistribution) DetectDependenciesWithTerminal(ctx context.Context, dependencies = append(dependencies, u.detectWindowManager(wm)) dependencies = append(dependencies, u.detectQuickshell()) dependencies = append(dependencies, u.detectXDGPortal()) - dependencies = append(dependencies, u.detectPolkitAgent()) dependencies = append(dependencies, u.detectAccountsService()) // Hyprland-specific tools @@ -101,20 +98,6 @@ func (u *UbuntuDistribution) detectXDGPortal() deps.Dependency { } } -func (u *UbuntuDistribution) detectPolkitAgent() deps.Dependency { - status := deps.StatusMissing - if u.packageInstalled("mate-polkit") { - status = deps.StatusInstalled - } - - return deps.Dependency{ - Name: "mate-polkit", - Status: status, - Description: "PolicyKit authentication agent", - Required: true, - } -} - func (u *UbuntuDistribution) detectXwaylandSatellite() deps.Dependency { status := deps.StatusMissing if u.commandExists("xwayland-satellite") { @@ -161,7 +144,6 @@ func (u *UbuntuDistribution) GetPackageMappingWithVariants(wm deps.WindowManager "alacritty": {Name: "alacritty", Repository: RepoTypeSystem}, "wl-clipboard": {Name: "wl-clipboard", Repository: RepoTypeSystem}, "xdg-desktop-portal-gtk": {Name: "xdg-desktop-portal-gtk", Repository: RepoTypeSystem}, - "mate-polkit": {Name: "mate-polkit", Repository: RepoTypeSystem}, "accountsservice": {Name: "accountsservice", Repository: RepoTypeSystem}, // DMS packages from PPAs @@ -170,19 +152,14 @@ func (u *UbuntuDistribution) GetPackageMappingWithVariants(wm deps.WindowManager "matugen": {Name: "matugen", Repository: RepoTypePPA, RepoURL: "ppa:avengemedia/danklinux"}, "dgop": {Name: "dgop", Repository: RepoTypePPA, RepoURL: "ppa:avengemedia/danklinux"}, "cliphist": {Name: "cliphist", Repository: RepoTypePPA, RepoURL: "ppa:avengemedia/danklinux"}, - - // Keep ghostty as manual (no PPA available) - "ghostty": {Name: "ghostty", Repository: RepoTypeManual, BuildFunc: "installGhostty"}, + "ghostty": {Name: "ghostty", Repository: RepoTypePPA, RepoURL: "ppa:avengemedia/danklinux"}, } switch wm { case deps.WindowManagerHyprland: // Use the cppiber PPA for Hyprland packages["hyprland"] = PackageMapping{Name: "hyprland", Repository: RepoTypePPA, RepoURL: "ppa:cppiber/hyprland"} - packages["grim"] = PackageMapping{Name: "grim", Repository: RepoTypeSystem} - packages["slurp"] = PackageMapping{Name: "slurp", Repository: RepoTypeSystem} packages["hyprctl"] = PackageMapping{Name: "hyprland", Repository: RepoTypePPA, RepoURL: "ppa:cppiber/hyprland"} - packages["grimblast"] = PackageMapping{Name: "grimblast", Repository: RepoTypeManual, BuildFunc: "installGrimblast"} packages["jq"] = PackageMapping{Name: "jq", Repository: RepoTypeSystem} case deps.WindowManagerNiri: niriVariant := variants["niri"] @@ -577,10 +554,6 @@ func (u *UbuntuDistribution) installBuildDependencies(ctx context.Context, manua buildDeps["libxcb1-dev"] = true buildDeps["libpipewire-0.3-dev"] = true buildDeps["libpam0g-dev"] = true - case "ghostty": - buildDeps["curl"] = true - buildDeps["libgtk-4-dev"] = true - buildDeps["libadwaita-1-dev"] = true case "matugen": buildDeps["curl"] = true case "cliphist": @@ -594,10 +567,6 @@ func (u *UbuntuDistribution) installBuildDependencies(ctx context.Context, manua if err := u.installRust(ctx, sudoPassword, progressChan); err != nil { return fmt.Errorf("failed to install Rust: %w", err) } - case "ghostty": - if err := u.installZig(ctx, sudoPassword, progressChan); err != nil { - return fmt.Errorf("failed to install Zig: %w", err) - } case "cliphist", "dgop": if err := u.installGo(ctx, sudoPassword, progressChan); err != nil { return fmt.Errorf("failed to install Go: %w", err) @@ -661,40 +630,6 @@ func (u *UbuntuDistribution) installRust(ctx context.Context, sudoPassword strin return nil } -func (u *UbuntuDistribution) installZig(ctx context.Context, sudoPassword string, progressChan chan<- InstallProgressMsg) error { - if u.commandExists("zig") { - return nil - } - - homeDir, err := os.UserHomeDir() - if err != nil { - return fmt.Errorf("failed to get user home directory: %w", err) - } - - cacheDir := filepath.Join(homeDir, ".cache", "dankinstall") - if err := os.MkdirAll(cacheDir, 0755); err != nil { - return fmt.Errorf("failed to create cache directory: %w", err) - } - - zigUrl := "https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz" - zigTmp := filepath.Join(cacheDir, "zig.tar.xz") - - downloadCmd := exec.CommandContext(ctx, "curl", "-L", zigUrl, "-o", zigTmp) - if err := u.runWithProgress(downloadCmd, progressChan, PhaseSystemPackages, 0.84, 0.85); err != nil { - return fmt.Errorf("failed to download Zig: %w", err) - } - - extractCmd := ExecSudoCommand(ctx, sudoPassword, - fmt.Sprintf("tar -xf %s -C /opt/", zigTmp)) - if err := u.runWithProgress(extractCmd, progressChan, PhaseSystemPackages, 0.85, 0.86); err != nil { - return fmt.Errorf("failed to extract Zig: %w", err) - } - - linkCmd := ExecSudoCommand(ctx, sudoPassword, - "ln -sf /opt/zig-linux-x86_64-0.11.0/zig /usr/local/bin/zig") - return u.runWithProgress(linkCmd, progressChan, PhaseSystemPackages, 0.86, 0.87) -} - func (u *UbuntuDistribution) installGo(ctx context.Context, sudoPassword string, progressChan chan<- InstallProgressMsg) error { if u.commandExists("go") { return nil @@ -742,30 +677,6 @@ func (u *UbuntuDistribution) installGo(ctx context.Context, sudoPassword string, return u.runWithProgress(installCmd, progressChan, PhaseSystemPackages, 0.89, 0.90) } -func (u *UbuntuDistribution) installGhosttyUbuntu(ctx context.Context, sudoPassword string, progressChan chan<- InstallProgressMsg) error { - u.log("Installing Ghostty using Ubuntu installer script...") - - progressChan <- InstallProgressMsg{ - Phase: PhaseSystemPackages, - Progress: 0.1, - Step: "Running Ghostty Ubuntu installer...", - IsComplete: false, - NeedsSudo: true, - CommandInfo: "curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh | sudo bash", - LogOutput: "Installing Ghostty using pre-built Ubuntu package", - } - - installCmd := ExecSudoCommand(ctx, sudoPassword, - "/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)\"") - - if err := u.runWithProgress(installCmd, progressChan, PhaseSystemPackages, 0.1, 0.9); err != nil { - return fmt.Errorf("failed to install Ghostty: %w", err) - } - - u.log("Ghostty installed successfully using Ubuntu installer") - return nil -} - func (u *UbuntuDistribution) InstallManualPackages(ctx context.Context, packages []string, variantMap map[string]deps.PackageVariant, sudoPassword string, progressChan chan<- InstallProgressMsg) error { if len(packages) == 0 { return nil @@ -775,10 +686,6 @@ func (u *UbuntuDistribution) InstallManualPackages(ctx context.Context, packages for _, pkg := range packages { switch pkg { - case "ghostty": - if err := u.installGhosttyUbuntu(ctx, sudoPassword, progressChan); err != nil { - return fmt.Errorf("failed to install ghostty: %w", err) - } default: if err := u.ManualPackageInstaller.InstallManualPackages(ctx, []string{pkg}, variantMap, sudoPassword, progressChan); err != nil { return fmt.Errorf("failed to install %s: %w", pkg, err)