Ticket #2121: Sjanssen.hs

File Sjanssen.hs, 2.2 KB (added by vladimir, 6 years ago)

src file which panics GHC

Line 
1{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
2module XMonad.Config.Sjanssen (sjanssenConfig) where
3
4import XMonad hiding (Tall(..))
5import qualified XMonad.StackSet as W
6import XMonad.Actions.CopyWindow
7import XMonad.Layout.Tabbed
8import XMonad.Layout.HintedTile
9import XMonad.Config (defaultConfig)
10import XMonad.Layout.NoBorders
11import XMonad.Hooks.DynamicLog
12import XMonad.Hooks.ManageDocks
13import XMonad.Prompt
14import XMonad.Prompt.Shell
15import XMonad.Util.Run (spawnPipe)
16import XMonad.Layout.DwmStyle
17
18import qualified Data.Map as M
19import System.IO (hPutStrLn)
20
21sjanssenConfig = 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 }