summaryrefslogtreecommitdiffstats
path: root/xmonad.hs
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2010-02-13 18:31:17 +0100
committerMatthias Schiffer <matthias@gamezock.de>2010-02-13 18:31:17 +0100
commit2cc660607d728d0c93f891840f2b15b5dee51b1e (patch)
tree20f175eacba03f94d8325c35eeab969e95d06892 /xmonad.hs
downloadxmonad-conf-2cc660607d728d0c93f891840f2b15b5dee51b1e.tar
xmonad-conf-2cc660607d728d0c93f891840f2b15b5dee51b1e.zip
Initial commit
Diffstat (limited to 'xmonad.hs')
-rw-r--r--xmonad.hs68
1 files changed, 68 insertions, 0 deletions
diff --git a/xmonad.hs b/xmonad.hs
new file mode 100644
index 0000000..62965d1
--- /dev/null
+++ b/xmonad.hs
@@ -0,0 +1,68 @@
+import XMonad
+import XMonad.Config.Desktop
+import XMonad.Config.Gnome
+import XMonad.Actions.CycleWS
+import XMonad.Actions.NoBorders
+import XMonad.Hooks.ManageDocks
+import XMonad.Hooks.ManageHelpers
+import qualified XMonad.StackSet as W
+import XMonad.Util.EZConfig
+
+import Control.Monad
+import Control.Monad.Trans
+import Data.Monoid
+
+import ConfigurableBorders
+import FullscreenManager
+import NoBorders
+
+
+main = xmonad $ gnomeConfig
+ { modMask = mod4Mask -- set the mod key to the windows key
+ , manageHook = myManageHook
+ , layoutHook = desktopLayoutModifiers myLayoutHook
+ , startupHook = myStartupHook
+ , handleEventHook = handleFullscreen
+ }
+ `additionalKeysP`
+ [ ("M-<Left>", prevWS )
+ , ("M-<Right>", nextWS )
+ , ("M-S-<Left>", shiftToPrev )
+ , ("M-S-<Right>", shiftToNext )
+ , ("M-S-b", withFocused toggleBorder >> refresh)
+ , ("M1-<F4>", kill)
+ ]
+
+
+myStartupHook :: X ()
+myStartupHook = do
+ startupHook gnomeConfig
+ spawn "xcompmgr"
+
+myManageHook :: ManageHook
+myManageHook = composeAll
+ [ composeOne
+ [ className =? "Guake.py" -?> (doFloatMaybeFullscreen <+> doConfigBorderOff)
+ , className =? "Do" -?> (doFloat <+> doConfigBorderOff)
+ , className =? "MPlayer" -?> doCenterFloat
+ , className =? "Gimp" -?> doFloat
+ , className =? "Gajim.py" -?> doFloat
+ , isFullscreen -?> doFullscreen
+ ]
+ , manageHook gnomeConfig
+ ]
+
+
+myLayoutHook = manageFullscreen $ configureBorders $ smartBorders (tiled ||| Mirror tiled ||| Full)
+ where
+ -- default tiling algorithm partitions the screen into two panes
+ tiled = Tall nmaster delta ratio
+
+ -- The default number of windows in the master pane
+ nmaster = 1
+
+ -- Default proportion of screen occupied by master pane
+ ratio = 1/2
+
+ -- Percent of screen to increment by when resizing panes
+ delta = 3/100