From 8e48b42badb0a224fc6dcf39764a9a55a2799d1d Mon Sep 17 00:00:00 2001 From: "T.v.Dein" Date: Mon, 25 Aug 2025 09:02:14 +0200 Subject: [PATCH] enhance window switch debugging (#4) --- main.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index d539f1a..1ecec18 100644 --- a/main.go +++ b/main.go @@ -59,6 +59,7 @@ var ( Previous = false Debug = false Dumptree = false + Dumpvisibles = false Version = false Verbose = false Notswitch = false @@ -75,6 +76,7 @@ Options: -n, --no-switch do not switch windows -d, --debug enable debugging -D, --dump dump the sway tree (needs -d as well) + --dump-visibles dump a list of visible windows on current workspace (needs -d) -l, --logfile string write output to logfile -v, --version show program version @@ -86,6 +88,7 @@ func main() { flag.BoolVarP(&Previous, "prev", "p", false, "cycle backward") flag.BoolVarP(&Debug, "debug", "d", false, "enable debugging") flag.BoolVarP(&Dumptree, "dump", "D", false, "dump the sway tree (needs -d as well)") + flag.BoolVarP(&Dumpvisibles, "dump-visibles", "", false, "dump a list of visible windows on current workspace (needs -d)") flag.BoolVarP(&Notswitch, "no-switch", "n", false, "do not switch windows") flag.BoolVarP(&Version, "version", "v", false, "show program version") flag.BoolVarP(&Showhelp, "help", "h", Showhelp, "show help") @@ -172,7 +175,9 @@ func processJSON(sway *i3ipc.Node) error { } } - slog.Debug("processed visible windows", "visibles", Visibles) + if Dumpvisibles { + dumpVisibles() + } return nil } @@ -268,6 +273,16 @@ func recurseNodes(nodes []*i3ipc.Node) { } } +func dumpVisibles() { + windows := make([]string, len(Visibles)) + + for idx, node := range Visibles { + windows[idx] = fmt.Sprintf("id: %02d, focus: %5t, name: %s", node.Id, node.Focused, node.Name) + } + + slog.Debug("visible windows on current workspace", "visibles", windows) +} + // we use line wise logging, unless debugging is enabled func setupLogging(output io.Writer) { logLevel := &slog.LevelVar{}