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