From cd3d9043fe669c8eb1a84e8a899555cc47461376 Mon Sep 17 00:00:00 2001 From: Pepe44DEV Date: Sun, 3 May 2026 23:41:48 +0200 Subject: [PATCH] Changed Default gui mode --- cmd/lazy-update-manager/main.go | 32 ++++++++++++++++++++++++++++++++ internal/config/config.go | 2 ++ 2 files changed, 34 insertions(+) diff --git a/cmd/lazy-update-manager/main.go b/cmd/lazy-update-manager/main.go index e3c9fe7..6877448 100644 --- a/cmd/lazy-update-manager/main.go +++ b/cmd/lazy-update-manager/main.go @@ -8,6 +8,7 @@ import ( "os" "os/exec" "path/filepath" + "runtime" "strings" "time" @@ -177,6 +178,20 @@ func runGUI(args []string) int { return 2 } + cfg, err := config.Load(defaultConfigPath()) + if err != nil { + fmt.Fprintln(os.Stderr, err) + return 1 + } + + // Check if Electron is preferred and available + if cfg.PreferElectron && runtime.GOOS == "linux" { + if err := tryElectronApp(); err == nil { + return 0 + } + // Fall through to browser if Electron fails + } + if err := gui.Run(defaultConfigPath(), defaultStatePath(), !*noOpen); err != nil { fmt.Fprintln(os.Stderr, err) return 1 @@ -249,6 +264,23 @@ func defaultConfigPath() string { return filepath.Join(configHome, "lazy-update-manager", "config.json") } +func tryElectronApp() error { + // Try to find and launch the Electron app + cmd := exec.Command("npm", "start") + cmd.Stdout = nil + cmd.Stderr = nil + cmd.Stdin = nil + if err := cmd.Run(); err != nil { + // Try electron directly + cmd = exec.Command("electron", ".") + cmd.Stdout = nil + cmd.Stderr = nil + cmd.Stdin = nil + return cmd.Run() + } + return nil +} + func usage() { fmt.Println(strings.TrimSpace(` LazyUpdateManager - Update helper for Arch / Hyprland diff --git a/internal/config/config.go b/internal/config/config.go index f09d290..50e1780 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -17,6 +17,7 @@ type Config struct { NotificationsEnabled bool `json:"notifications_enabled"` KeepTerminalOpen bool `json:"keep_terminal_open"` ConfirmSelectedInstalls bool `json:"confirm_selected_installs"` + PreferElectron bool `json:"prefer_electron"` IgnoredPackages []string `json:"ignored_packages"` } @@ -31,6 +32,7 @@ func Default() Config { NotificationsEnabled: true, KeepTerminalOpen: true, ConfirmSelectedInstalls: true, + PreferElectron: true, IgnoredPackages: []string{}, } }