Copyright | (c) Roman Cheplyaka Ivan N. Veselov <veselov@gmail.com> |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Roman Cheplyaka <roma@ro-che.info> |
Stability | unstable |
Portability | unportable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Layout modfier suitable for workspace with multi-windowed instant messenger (like Psi or Tkabber).
Usage
You can use this module with the following in your 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 the tutorial and 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
Most of the property constructors are quite self-explaining.
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 | |
Tagged String | Tagged via XMonad.Actions.TagWindows |
This is for compatibility with old configs only and will be removed in future versions!
Instances
LayoutClass IM Window Source # | |
Defined in XMonad.Layout.IM 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 # | |
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 type for LayoutModifier which converts given layout to IM-layout (with dedicated space for the roster and original layout for chat windows)