Rules-based browser launcher for TUI + GNOME. switchyard.aly.codes
tui gome bowser go
0

Configure Feed

Select the types of activity you want to include in your feed.

remove --settings

Aly Raffauf (Jan 13, 2026, 2:48 PM EST) 60ed2373 aec789a1

+3 -25
+1 -1
README.md
··· 64 64 65 65 ```bash 66 66 # Open settings 67 - switchyard --settings 67 + switchyard 68 68 69 69 # Open a URL (typically called automatically by the system) 70 70 switchyard "https://example.com"
-4
data/io.github.alyraffauf.Switchyard.desktop
··· 10 10 MimeType=x-scheme-handler/http;x-scheme-handler/https; 11 11 StartupNotify=true 12 12 Keywords=browser;web;url;link; 13 - 14 - [Desktop Action Settings] 15 - Name=Settings 16 - Exec=switchyard --settings
+2 -20
src/main.go
··· 18 18 19 19 const appID = "io.github.alyraffauf.Switchyard" 20 20 21 - var showSettings bool 22 - 23 21 func main() { 24 - // Parse flags before GTK takes over 25 - for _, arg := range os.Args[1:] { 26 - if arg == "--settings" || arg == "-settings" { 27 - showSettings = true 28 - break 29 - } 30 - } 31 - 32 22 app := adw.NewApplication(appID, gio.ApplicationHandlesOpen) 33 23 34 24 app.ConnectActivate(func() { ··· 36 26 }) 37 27 38 28 app.ConnectOpen(func(files []gio.Filer, hint string) { 39 - if showSettings || len(files) == 0 { 29 + if len(files) == 0 { 40 30 showSettingsWindow(app) 41 31 return 42 32 } ··· 45 35 handleURL(app, url) 46 36 }) 47 37 48 - // Filter out our custom flags before passing to GTK 49 - gtkArgs := []string{os.Args[0]} 50 - for _, arg := range os.Args[1:] { 51 - if arg != "--settings" && arg != "-settings" { 52 - gtkArgs = append(gtkArgs, arg) 53 - } 54 - } 55 - 56 - if code := app.Run(gtkArgs); code > 0 { 38 + if code := app.Run(os.Args); code > 0 { 57 39 os.Exit(code) 58 40 } 59 41 }