From b636fe8472c0e306834b0c757891278bc28559fa Mon Sep 17 00:00:00 2001 From: mail Date: Sun, 7 Oct 2007 11:16:48 +0200 Subject: Better EWMH support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- EwmhDesktops.hs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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" + + -- cgit v1.2.3