aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormail <mail@joachim-breitner.de>2007-10-07 11:16:48 +0200
committermail <mail@joachim-breitner.de>2007-10-07 11:16:48 +0200
commitb636fe8472c0e306834b0c757891278bc28559fa (patch)
treeb79e0aa59f3bda7bc68289f9c8318e27b39f979a
parentb11eeded64e725997d3d341dc7ab8773001234a0 (diff)
downloadXMonadContrib-b636fe8472c0e306834b0c757891278bc28559fa.tar.gz
XMonadContrib-b636fe8472c0e306834b0c757891278bc28559fa.tar.xz
XMonadContrib-b636fe8472c0e306834b0c757891278bc28559fa.zip
Better EWMH support
Yay, SetWMName contains just what I need! Thanks Ivan, that saved me quite some work. Now the panel switch should work even when you start with xmonad right away, and don’t run it after metacity has run before :-] Greetings, Joachim darcs-hash:20071007091648-c9905-07a7cac149dabdffab79db3a3f12789237230e12.gz
-rw-r--r--EwmhDesktops.hs16
1 files changed, 16 insertions, 0 deletions
diff --git a/EwmhDesktops.hs b/EwmhDesktops.hs
index abce277..0fbe0fa 100644
--- a/EwmhDesktops.hs
+++ b/EwmhDesktops.hs
@@ -27,6 +27,8 @@ import qualified StackSet as W
import Graphics.X11.Xlib
import Graphics.X11.Xlib.Extras
+import XMonadContrib.SetWMName
+
-- $usage
-- Add the imports to your configuration file and add the logHook:
--
@@ -51,6 +53,8 @@ ewmhDesktopsLogHook = withWindowSet $ \s -> do
let ws = sortBy (comparing W.tag) $ W.workspaces s
let wins = W.allWindows s
+ setSupported
+
-- Number of Workspaces
setNumberOfDesktops (length ws)
@@ -112,3 +116,15 @@ setWindowDesktop win i = withDisplay $ \dpy -> do
a <- getAtom "_NET_WM_DESKTOP"
c <- getAtom "CARDINAL"
io $ changeProperty32 dpy win a c propModeReplace [fromIntegral i]
+
+setSupported :: X ()
+setSupported = withDisplay $ \dpy -> do
+ r <- asks theRoot
+ a <- getAtom "_NET_SUPPORTED"
+ c <- getAtom "ATOM"
+ supp <- mapM getAtom ["_NET_WM_STATE_HIDDEN"]
+ io $ changeProperty32 dpy r a c propModeReplace supp
+
+ setWMName "xmonad"
+
+