From aa3b030a26ed9c17b56618acd0a001db5cf50150 Mon Sep 17 00:00:00 2001 From: E1int <110526002+E1int@users.noreply.github.com> Date: Wed, 30 Jul 2025 21:42:39 +0200 Subject: [PATCH] Add CLI flag to start app minimized --- backend/app.go | 2 ++ backend/cmdlineoptions.go | 23 ++++++++++++++--------- main.go | 6 +++++- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/backend/app.go b/backend/app.go index b63bf38..51def8a 100644 --- a/backend/app.go +++ b/backend/app.go @@ -537,6 +537,8 @@ func (a *App) checkFlagsAndSendIPCMsg(cli *ipc.Client) error { return cli.SeekBackOrPrevious() case *FlagNext: return cli.SeekNext() + case *FlagShow: + return cli.Show() case VolumeCLIArg >= 0: return cli.SetVolume(VolumeCLIArg) case VolumePctCLIArg != 0: diff --git a/backend/cmdlineoptions.go b/backend/cmdlineoptions.go index 9f022b1..c7252ed 100644 --- a/backend/cmdlineoptions.go +++ b/backend/cmdlineoptions.go @@ -12,13 +12,15 @@ var ( SeekByCLIArg float64 = 0 VolumePctCLIArg float64 = 0 - FlagPlay = flag.Bool("play", false, "unpause or begin playback") - FlagPause = flag.Bool("pause", false, "pause playback") - FlagPlayPause = flag.Bool("play-pause", false, "toggle play/pause state") - FlagPrevious = flag.Bool("previous", false, "seek to previous track or beginning of current") - FlagNext = flag.Bool("next", false, "seek to next track") - FlagVersion = flag.Bool("version", false, "print app version and exit") - FlagHelp = flag.Bool("help", false, "print command line options and exit") + FlagPlay = flag.Bool("play", false, "unpause or begin playback") + FlagPause = flag.Bool("pause", false, "pause playback") + FlagPlayPause = flag.Bool("play-pause", false, "toggle play/pause state") + FlagPrevious = flag.Bool("previous", false, "seek to previous track or beginning of current") + FlagNext = flag.Bool("next", false, "seek to next track") + FlagStartMinimized = flag.Bool("start-minimized", false, "start app minimized") + FlagShow = flag.Bool("show", false, "show minimized app") + FlagVersion = flag.Bool("version", false, "print app version and exit") + FlagHelp = flag.Bool("help", false, "print command line options and exit") ) func init() { @@ -50,8 +52,11 @@ func init() { func HaveCommandLineOptions() bool { visitedAny := false - flag.Visit(func(*flag.Flag) { - visitedAny = true + flag.Visit(func(f *flag.Flag) { + // We skip `start-minimized` because it should't send an IPC message. + if f.Name != "start-minimized" { + visitedAny = true + } }) return visitedAny } diff --git a/main.go b/main.go index e5ec0f5..1dc6302 100644 --- a/main.go +++ b/main.go @@ -103,7 +103,11 @@ func main() { }) fyneApp.Lifecycle().SetOnEnteredForeground(windowStartupTasks) - mainWindow.ShowAndRun() + if *backend.FlagStartMinimized { + fyneApp.Run() + } else { + mainWindow.ShowAndRun() + } log.Println("Running shutdown tasks...") myApp.Shutdown()