diff options
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/utils/dbus.go')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/utils/dbus.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/utils/dbus.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/utils/dbus.go new file mode 100644 index 0000000..bafd51f --- /dev/null +++ b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/utils/dbus.go @@ -0,0 +1,37 @@ +package utils + +import ( + "slices" + + "github.com/godbus/dbus/v5" +) + +func IsDBusServiceAvailable(busName string) bool { + conn, err := dbus.ConnectSystemBus() + if err != nil { + return false + } + defer conn.Close() + + obj := conn.Object("org.freedesktop.DBus", "/org/freedesktop/DBus") + var owned bool + if err := obj.Call("org.freedesktop.DBus.NameHasOwner", 0, busName).Store(&owned); err != nil { + return false + } + return owned +} + +func IsDBusServiceActivatable(busName string) bool { + conn, err := dbus.ConnectSystemBus() + if err != nil { + return false + } + defer conn.Close() + + obj := conn.Object("org.freedesktop.DBus", "/org/freedesktop/DBus") + var activatable []string + if err := obj.Call("org.freedesktop.DBus.ListActivatableNames", 0).Store(&activatable); err != nil { + return false + } + return slices.Contains(activatable, busName) +} |