enhance window switch debugging (#4)

This commit is contained in:
T.v.Dein
2025-08-25 09:02:14 +02:00
committed by GitHub
parent 7a5657b778
commit 8e48b42bad

17
main.go
View File

@@ -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{}