ghc-dbus

A client library for the D-Bus IPC system

D-Bus is a simple, message-based protocol for inter-process communication, which allows applications to interact with other parts of the machine and the user's session using remote procedure calls. D-Bus is a essential part of the modern Linux desktop, where it replaces earlier protocols such as CORBA and DCOP. This library is an implementation of the D-Bus protocol in Haskell. It can be used to add D-Bus support to Haskell applications, without the awkward interfaces common to foreign bindings. Example: connect to the session bus, and get a list of active names. ' &#x7b;-# LANGUAGE OverloadedStrings #-&#x7d; import Data.List (sort) import DBus import DBus.Client main = do &#x20; client <- connectSession &#x20; &#x20; -- Request a list of connected clients from the bus &#x20; reply <- call_ client (methodCall "/org/freedesktop/DBus" "org.freedesktop.DBus" "ListNames") &#x20; &#x7b; methodCallDestination = Just "org.freedesktop.DBus" &#x20; &#x7d; &#x20; &#x20; -- org.freedesktop.DBus.ListNames() returns a single value, which is &#x20; -- a list of names (here represented as [String]) &#x20; let Just names = fromVariant (methodReturnBody reply !! 0) &#x20; &#x20; -- Print each name on a line, sorted so reserved names are below &#x20; -- temporary names. &#x20; mapM_ putStrLn (sort names) ' >$ ghc --make list-names.hs >$ ./list-names >:1.0 >:1.1 >:1.10 >:1.106 >:1.109 >:1.110 >ca.desrt.dconf >org.freedesktop.DBus >org.freedesktop.Notifications >org.freedesktop.secrets >org.gnome.ScreenSaver.

There is no official package available for openSUSE Leap 15.5

Distributions

openSUSE Tumbleweed

SUSE SLE-15-SP1

Unsupported distributions

The following distributions are not officially supported. Use these packages at your own risk.