turn any window into a statusbar or manage/unmage windows 'remotely'
Hi, as the question: 'How can I make xmonad ignore application "foo" and have it appear on every workspace?' is kind of a FAQ in xmonad's IRC channel, i wrote a tiny application just for this purpose. Source is attached below, usage is trivial: - retreive the window ID of the application you want to unmanage/manage with 'xwininfo' - invoke the program below, like: * unmanage <windowid> * manage <windowid> Compilation und usage instructions are in the code.. Have fun, Rob.
On Wed, Jul 11, 2007 at 09:19:45AM +0200, Robert Manea wrote:
Hi,
as the question:
'How can I make xmonad ignore application "foo" and have it appear on every workspace?'
is kind of a FAQ in xmonad's IRC channel, i wrote a tiny application just for this purpose.
Source is attached below, usage is trivial:
- retreive the window ID of the application you want to unmanage/manage with 'xwininfo'
- invoke the program below, like: * unmanage <windowid> * manage <windowid>
Ok, get this: does the same, in Haskell! Requires the patch to X11-extras I've just sent. It does not check if the windowID is correct, but who cares? ;-) ciao andrea (Competition with Robert is so fun, but without his help I would not be able to do anything like this. So Thanks Robert for your great help!!!!!!) ----------------------------------------------------------------------------- -- | -- Module : XMobar -- Copyright : (c) Andrea Rossato -- License : GPL2 -- -- Maintainer : Andrea Rossato <andrea.rossato@unibz.it> -- Stability : unstable -- Portability : unportable -- -- Toggle override_redirect for an X window (thanks to Robert Manea -- for suggestions on how to get this stuff to work!) -- ----------------------------------------------------------------------------- module Main where import Graphics.X11.Xlib import Graphics.X11.Xlib.Extras import System.Environment usage :: String -> String usage n = "Usage: " ++ n ++ "manage/unmanage windowID" main :: IO () main = do args <- getArgs pn <- getProgName let (win,ac) = case args of [] -> error $ usage pn w -> case (w !!0) of "manage" -> (window, False) "unmanage" -> (window, True) _ -> error $ usage pn where window = case (w !! 1) of [] -> error $ usage pn w -> read w :: Window dpy <- openDisplay "" unmapWindow dpy win sync dpy False allocaSetWindowAttributes $ \attributes -> do set_override_redirect attributes ac changeWindowAttributes dpy win cWOverrideRedirect attributes mapWindow dpy win sync dpy False
participants (2)
-
Andrea Rossato -
Robert Manea