dbus
Version 1.3.9 revision 0 uploaded by blaze.
Package meta
- Synopsis
- A client library for the D-Bus IPC system.
- Description
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.
{-# LANGUAGE OverloadedStrings #-} import Data.List (sort) import DBus import DBus.Client main = do client <- connectSession -- Request a list of connected clients from the bus reply <- call_ client (methodCall "/org/freedesktop/DBus" "org.freedesktop.DBus" "ListNames") { methodCallDestination = Just "org.freedesktop.DBus" } -- org.freedesktop.DBus.ListNames() returns a single value, which is -- a list of names (here represented as [String]) let Just names = fromVariant (methodReturnBody reply !! 0) -- Print each name on a line, sorted so reserved names are below -- temporary names. 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
- Author
- John Millikin <john@john-millikin.com>
- Bug reports
- n/a
- Category
- Network, Desktop
- Copyright
- n/a
- Homepage
- https://github.com/rblaze/haskell-dbus#readme
- Maintainer
- Andrey Sverdlichenko <blaze@rusty.zone>
- Package URL
- n/a
- Stability
- experimental