| 1 | {-# OPTIONS_GHC -fno-warn-missing-signatures #-} |
|---|
| 2 | module XMonad.Config.Sjanssen (sjanssenConfig) where |
|---|
| 3 | |
|---|
| 4 | import XMonad hiding (Tall(..)) |
|---|
| 5 | import qualified XMonad.StackSet as W |
|---|
| 6 | import XMonad.Actions.CopyWindow |
|---|
| 7 | import XMonad.Layout.Tabbed |
|---|
| 8 | import XMonad.Layout.HintedTile |
|---|
| 9 | import XMonad.Config (defaultConfig) |
|---|
| 10 | import XMonad.Layout.NoBorders |
|---|
| 11 | import XMonad.Hooks.DynamicLog |
|---|
| 12 | import XMonad.Hooks.ManageDocks |
|---|
| 13 | import XMonad.Prompt |
|---|
| 14 | import XMonad.Prompt.Shell |
|---|
| 15 | import XMonad.Util.Run (spawnPipe) |
|---|
| 16 | import XMonad.Layout.DwmStyle |
|---|
| 17 | |
|---|
| 18 | import qualified Data.Map as M |
|---|
| 19 | import System.IO (hPutStrLn) |
|---|
| 20 | |
|---|
| 21 | sjanssenConfig = do |
|---|
| 22 | xmobar <- spawnPipe "xmobar" |
|---|
| 23 | return $ defaultConfig |
|---|
| 24 | { terminal = "urxvtc" |
|---|
| 25 | , workspaces = ["irc", "web"] ++ map show [3 .. 7 :: Int] ++ ["mail", "im"] |
|---|
| 26 | , logHook = dynamicLogWithPP $ sjanssenPP { ppOutput = hPutStrLn xmobar } |
|---|
| 27 | , modMask = mod4Mask |
|---|
| 28 | , mouseBindings = \(XConfig {modMask = modm}) -> M.fromList $ |
|---|
| 29 | [ ((modm, button1), (\w -> focus w >> mouseMoveWindow w)) |
|---|
| 30 | , ((modm, button2), (\w -> focus w >> windows W.swapMaster)) |
|---|
| 31 | , ((modm.|. shiftMask, button1), (\w -> focus w >> mouseResizeWindow w)) ] |
|---|
| 32 | , keys = \c -> mykeys c `M.union` keys defaultConfig c |
|---|
| 33 | , layoutHook = dwmStyle shrinkText myTheme $ avoidStruts $ smartBorders (tiled Tall ||| tiled Wide ||| Full ||| tabbed shrinkText myTheme) |
|---|
| 34 | , manageHook = manageHook defaultConfig <+> manageDocks |
|---|
| 35 | } |
|---|
| 36 | where |
|---|
| 37 | tiled = HintedTile 1 0.03 0.5 |
|---|
| 38 | |
|---|
| 39 | mykeys (XConfig {modMask = modm, workspaces = ws}) = M.fromList $ |
|---|
| 40 | [((modm, xK_p ), shellPrompt myPromptConfig) |
|---|
| 41 | ,((modm .|. shiftMask, xK_c ), kill1) |
|---|
| 42 | ,((modm .|. shiftMask .|. controlMask, xK_c ), kill) |
|---|
| 43 | ,((modm .|. shiftMask, xK_0 ), windows $ \w -> foldr copy w ws) |
|---|
| 44 | ,((modm, xK_b ), sendMessage ToggleStruts) |
|---|
| 45 | ] |
|---|
| 46 | |
|---|
| 47 | myFont = "xft:Bitstream Vera Sans Mono:pixelsize=10" |
|---|
| 48 | myTheme = defaultTheme { fontName = myFont } |
|---|
| 49 | myPromptConfig = defaultXPConfig |
|---|
| 50 | { position = Top |
|---|
| 51 | , font = myFont |
|---|
| 52 | , promptBorderWidth = 0 } |
|---|