1package main 2 3import ( 4 "fmt" 5 "os" 6 7 "github.com/godbus/dbus/v5" 8) 9 10func main() { 11 conn, err := dbus.SessionBus() 12 if err != nil { 13 fmt.Fprintln(os.Stderr, "Failed to connect to session bus:", err) 14 os.Exit(1) 15 } 16 17 for _, v := range []string{"method_call", "method_return", "error", "signal"} { 18 call := conn.BusObject().Call("org.freedesktop.DBus.AddMatch", 0, 19 "eavesdrop='true',type='"+v+"'") 20 if call.Err != nil { 21 fmt.Fprintln(os.Stderr, "Failed to add match:", call.Err) 22 os.Exit(1) 23 } 24 } 25 c := make(chan *dbus.Message, 10) 26 conn.Eavesdrop(c) 27 fmt.Println("Listening for everything") 28 for v := range c { 29 fmt.Println(v) 30 } 31} 32