xmonad-contrib-0.13: Third party extensions for xmonad

Copyright(c) 2007 Andrea Rossato
LicenseBSD-style (see xmonad/LICENSE)
Safe HaskellNone




A layout modifier to add a bar of tabs to your layouts.



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

import XMonad.Layout.TabBarDecoration

Then edit your layoutHook by adding the layout you want:

main = xmonad def { layoutHook = simpleTabBar $ layoutHook def}

For more detailed instructions on editing the layoutHook see:


tabBar will give you the possibility of setting a custom shrinker and a custom theme.

The deafult theme can be dynamically change with the xmonad theme selector. See XMonad.Prompt.Theme. For more themse, look at XMonad.Util.Themes

simpleTabBar :: Eq a => l a -> ModifiedLayout (Decoration TabBarDecoration DefaultShrinker) (ModifiedLayout ResizeScreen l) a Source #

Add, on the top of the screen, a simple bar of tabs to a given | layout, with the default theme and the default shrinker.

tabBar :: (Eq a, Shrinker s) => s -> Theme -> XPPosition -> l a -> ModifiedLayout (Decoration TabBarDecoration s) l a Source #

Same of simpleTabBar, but with the possibility of setting a custom shrinker, a custom theme and the position: Top or Bottom.

def :: Default a => a #

defaultTheme :: Theme Source #

Deprecated: Use def (from Data.Default, and re-exported by XMonad.Layout.Decoration) instead.

The default xmonad Theme.

data TabBarDecoration a Source #


TabBar XPPosition 


Eq a => DecorationStyle TabBarDecoration a Source # 


describeDeco :: TabBarDecoration a -> String Source #

shrink :: TabBarDecoration a -> Rectangle -> Rectangle -> Rectangle Source #

decorationEventHook :: TabBarDecoration a -> DecorationState -> Event -> X () Source #

decorationCatchClicksHook :: TabBarDecoration a -> Window -> Int -> Int -> X Bool Source #

decorationWhileDraggingHook :: TabBarDecoration a -> CInt -> CInt -> (Window, Rectangle) -> Position -> Position -> X () Source #

decorationAfterDraggingHook :: TabBarDecoration a -> (Window, Rectangle) -> Window -> X () Source #

pureDecoration :: TabBarDecoration a -> Dimension -> Dimension -> Rectangle -> Stack a -> [(a, Rectangle)] -> (a, Rectangle) -> Maybe Rectangle Source #

decorate :: TabBarDecoration a -> Dimension -> Dimension -> Rectangle -> Stack a -> [(a, Rectangle)] -> (a, Rectangle) -> X (Maybe Rectangle) Source #

Read (TabBarDecoration a) Source # 
Show (TabBarDecoration a) Source # 

data XPPosition Source #



Prompt will be placed in the center horizontally and in the certain place of screen vertically. If it's in the upper part of the screen, completion window will be placed below(like in Top) and otherwise above(like in Bottom)


  • xpCenterY :: Rational

    Rational between 0 and 1, giving y coordinate of center of the prompt relative to the screen height.

  • xpWidth :: Rational

    Rational between 0 and 1, giving width of the prompt relatave to the screen width.