| ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| Description | ||||||||||||||||||||||||||||||||||||
| Layout modfier for displaying some window (monitor) above other windows | ||||||||||||||||||||||||||||||||||||
| Synopsis | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| Usage | ||||||||||||||||||||||||||||||||||||
You can use this module with the following in your ~/.xmonad/xmonad.hs: import XMonad.Layout.Monitor Define Monitor record. monitor can be used as a template. At least prop and rect should be set here. Also consider setting persistent to True. Minimal example: myMonitor = monitor
{ prop = ClassName "SomeClass"
, rect = Rectangle 0 0 40 20 -- rectangle 40x20 in upper left corner
}
More interesting example: clock = monitor {
-- Cairo-clock creates 2 windows with the same classname, thus also using title
prop = ClassName "Cairo-clock" `And` Title "MacSlow's Cairo-Clock"
-- rectangle 150x150 in lower right corner, assuming 1280x800 resolution
, rect = Rectangle (1280-150) (800-150) 150 150
-- avoid flickering
, persistent = True
-- make the window transparent
, opacity = 0.6
-- hide on start
, visible = False
-- assign it a name to be able to toggle it independently of others
, name = "clock"
}
Add ManageHook to de-manage monitor windows and apply opacity settings. manageHook = myManageHook <+> manageMonitor clock Apply layout modifier. myLayout = ModifiedLayout clock $ tall ||| Full ||| ... After that, if there exists a window with specified properties, it will be displayed on top of all tiled (not floated) windows on specified position. It's also useful to add some keybinding to toggle monitor visibility: , ((mod1Mask, xK_u ), broadcastMessage ToggleMonitor >> refresh) Screenshot: http://www.haskell.org/haskellwiki/Image:Xmonad-clock.png | ||||||||||||||||||||||||||||||||||||
| Hints and issues | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| data Monitor a | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| monitor :: Monitor a | ||||||||||||||||||||||||||||||||||||
| Template for Monitor record. At least prop and rect should be redefined. Default settings: visible is True, persistent is False. | ||||||||||||||||||||||||||||||||||||
| data Property | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| data MonitorMessage | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| doHideIgnore :: ManageHook | ||||||||||||||||||||||||||||||||||||
| Hides window and ignores it. | ||||||||||||||||||||||||||||||||||||
| manageMonitor :: Monitor a -> ManageHook | ||||||||||||||||||||||||||||||||||||
| ManageHook which demanages monitor window and applies opacity settings. | ||||||||||||||||||||||||||||||||||||
| TODO | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| Produced by Haddock version 2.7.2 | ||||||||||||||||||||||||||||||||||||