|
|
@ -4,7 +4,9 @@ import XMonad.Hooks.ManageDocks (manageDocks, avoidStruts)
|
|
4
|
4
|
import XMonad.Hooks.ManageHelpers
|
|
5
|
5
|
import XMonad.Layout.Tabbed (simpleTabbed)
|
|
6
|
6
|
import XMonad.Util.Run (spawnPipe)
|
|
|
7
|
import XMonad.Util.EZConfig (additionalKeys)
|
|
7
|
8
|
import System.IO (hPutStrLn)
|
|
|
9
|
import Data.IORef.MonadIO (newIORef, readIORef, modifyIORef)
|
|
8
|
10
|
|
|
9
|
11
|
import Monad (when)
|
|
10
|
12
|
import Data.Monoid (All (All))
|
|
|
@ -17,6 +19,7 @@ import qualified XMonad.StackSet as W
|
|
17
|
19
|
-- * Logging framework (like reading urls from Firefox and the like)
|
|
18
|
20
|
|
|
19
|
21
|
main = do
|
|
|
22
|
kbMap <- newIORef "us"
|
|
20
|
23
|
xmobar <- spawnPipe "xmobar"
|
|
21
|
24
|
xmonad $ defaultConfig {
|
|
22
|
25
|
modMask = mod4Mask,
|
|
|
@ -34,7 +37,14 @@ main = do
|
|
34
|
37
|
ppTitle = xmobarColor "green" ""
|
|
35
|
38
|
},
|
|
36
|
39
|
handleEventHook = evHook
|
|
37
|
|
}
|
|
|
40
|
} `additionalKeys` [
|
|
|
41
|
((mod4Mask, xK_l), changeKbMap kbMap)
|
|
|
42
|
]
|
|
|
43
|
where changeKbMap kbMap = do
|
|
|
44
|
kb <- readIORef kbMap
|
|
|
45
|
let switchLang cur = if cur == "us" then "de" else "us"
|
|
|
46
|
spawn $ "setxkbmap " ++ switchLang kb
|
|
|
47
|
modifyIORef kbMap switchLang
|
|
38
|
48
|
|
|
39
|
49
|
evHook :: Event -> X All
|
|
40
|
50
|
evHook (ClientMessageEvent _ _ _ dpy win typ dat) = do
|