Skip to content

Commit

Permalink
Merge remote-tracking branch 'nguyentito/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
alexkay committed Apr 3, 2012
2 parents ed8363e + a4e7032 commit e6c1d0d
Showing 1 changed file with 19 additions and 23 deletions.
42 changes: 19 additions & 23 deletions xmonad.hs
@@ -1,21 +1,21 @@
{-# LANGUAGE OverloadedStrings #-}

import XMonad
import XMonad.Config.Gnome
import XMonad.Hooks.DynamicLog

import Control.OldException

import DBus
import DBus.Connection
import DBus.Message
import qualified DBus.Client.Simple as D
import qualified Codec.Binary.UTF8.String as UTF8

main :: IO ()
main = withConnection Session $ \dbus -> do
main = do
dbus <- D.connectSession
getWellKnownName dbus
xmonad $ gnomeConfig
{ logHook = dynamicLogWithPP (prettyPrinter dbus)
}

prettyPrinter :: Connection -> PP
prettyPrinter :: D.Client -> PP
prettyPrinter dbus = defaultPP
{ ppOutput = dbusOutput dbus
, ppTitle = pangoSanitize
Expand All @@ -27,22 +27,18 @@ prettyPrinter dbus = defaultPP
, ppSep = " "
}

getWellKnownName :: Connection -> IO ()
getWellKnownName dbus = tryGetName `catchDyn` (\(DBus.Error _ _) -> getWellKnownName dbus)
where
tryGetName = do
namereq <- newMethodCall serviceDBus pathDBus interfaceDBus "RequestName"
addArgs namereq [String "org.xmonad.Log", Word32 5]
sendWithReplyAndBlock dbus namereq 0
return ()

dbusOutput :: Connection -> String -> IO ()
dbusOutput dbus str = do
msg <- newSignal "/org/xmonad/Log" "org.xmonad.Log" "Update"
addArgs msg [String ("<b>" ++ str ++ "</b>")]
-- If the send fails, ignore it.
send dbus msg 0 `catchDyn` (\(DBus.Error _ _) -> return 0)
return ()
getWellKnownName :: D.Client -> IO ()
getWellKnownName dbus = do
D.requestName dbus (D.busName_ "org.xmonad.Log")
[D.AllowReplacement, D.ReplaceExisting, D.DoNotQueue]
return ()

dbusOutput :: D.Client -> String -> IO ()
dbusOutput dbus str = D.emit dbus
"/org/xmonad/Log"
"org.xmonad.Log"
"Update"
[D.toVariant ("<b>" ++ (UTF8.decodeString str) ++ "</b>")]

pangoColor :: String -> String -> String
pangoColor fg = wrap left right
Expand Down

0 comments on commit e6c1d0d

Please sign in to comment.