xmonad-contrib-0.13: Third party extensions for xmonad

Copyright(c) Roman Cheplyaka, Ivan N. Veselov <veselov@gmail.com>
LicenseBSD-style (see LICENSE)
MaintainerRoman Cheplyaka <roma@ro-che.info>
Stabilityunstable
Portabilityunportable
Safe HaskellNone
LanguageHaskell98

XMonad.Layout.IM

Contents

Description

Layout modfier suitable for workspace with multi-windowed instant messenger (like Psi or Tkabber).

Synopsis

Usage

You can use this module with the following in your ~/.xmonad/xmonad.hs:

import XMonad.Layout.IM
import Data.Ratio ((%))

Then edit your layoutHook by adding IM modifier to layout which you prefer for managing your chat windows (Grid in this example, another useful choice to consider is Tabbed layout).

myLayout = withIM (1%7) (ClassName "Tkabber") Grid ||| Full ||| etc..
main = xmonad def { layoutHook = myLayout }

Here 1%7 is the part of the screen which your roster will occupy, ClassName "Tkabber" tells xmonad which window is actually your roster.

Screenshot: http://haskell.org/haskellwiki/Image:Xmonad-layout-im.png

For more detailed instructions on editing the layoutHook see:

XMonad.Doc.Extending

Hints

To launch IM layout automatically on your IM workspace use XMonad.Layout.PerWorkspace.

By default the roster window will appear on the left side. To place roster window on the right side, use reflectHoriz from XMonad.Layout.Reflect module.

TODO

This item are questionable. Please let me know if you find them useful.

  • shrink/expand

data Property Source #

Most of the property constructors are quite self-explaining.

Constructors

Title String 
ClassName String 
Resource String 
Role String

WM_WINDOW_ROLE property

Machine String

WM_CLIENT_MACHINE property

And Property Property infixr 9 
Or Property Property infixr 8 
Not Property 
Const Bool 

data IM a Source #

This is for compatibility with old configs only and will be removed in future versions!

Constructors

IM Rational Property 

Instances

LayoutClass IM Window Source # 

Methods

runLayout :: Workspace WorkspaceId (IM Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (IM Window))

doLayout :: IM Window -> Rectangle -> Stack Window -> X ([(Window, Rectangle)], Maybe (IM Window))

pureLayout :: IM Window -> Rectangle -> Stack Window -> [(Window, Rectangle)]

emptyLayout :: IM Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (IM Window))

handleMessage :: IM Window -> SomeMessage -> X (Maybe (IM Window))

pureMessage :: IM Window -> SomeMessage -> Maybe (IM Window)

description :: IM Window -> String

Read (IM a) Source # 
Show (IM a) Source # 

Methods

showsPrec :: Int -> IM a -> ShowS #

show :: IM a -> String #

showList :: [IM a] -> ShowS #

withIM :: LayoutClass l a => Rational -> Property -> l a -> ModifiedLayout AddRoster l a Source #

Modifier which converts given layout to IM-layout (with dedicated space for roster and original layout for chat windows)

gridIM :: Rational -> Property -> ModifiedLayout AddRoster Grid a Source #

IM layout modifier applied to the Grid layout

data AddRoster a Source #

Data type for LayoutModifier which converts given layout to IM-layout (with dedicated space for the roster and original layout for chat windows)

Instances

LayoutModifier AddRoster Window Source # 

Methods

modifyLayout :: LayoutClass l Window => AddRoster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => AddRoster Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (AddRoster Window)) Source #

handleMess :: AddRoster Window -> SomeMessage -> X (Maybe (AddRoster Window)) Source #

handleMessOrMaybeModifyIt :: AddRoster Window -> SomeMessage -> X (Maybe (Either (AddRoster Window) SomeMessage)) Source #

pureMess :: AddRoster Window -> SomeMessage -> Maybe (AddRoster Window) Source #

redoLayout :: AddRoster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (AddRoster Window)) Source #

pureModifier :: AddRoster Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (AddRoster Window)) Source #

hook :: AddRoster Window -> X () Source #

unhook :: AddRoster Window -> X () Source #

modifierDescription :: AddRoster Window -> String Source #

modifyDescription :: LayoutClass l Window => AddRoster Window -> l Window -> String Source #

Read (AddRoster a) Source # 
Show (AddRoster a) Source #