个人的 xmonad 配置

虽然从刚刚开始当程序员的那一年就开始用xmonad了,但是对于xmonad的配置却一直不怎么会,今天花了几个小时,总算是稍微学了一些皮毛。本来是有计划系统的看一下xmonad的源代码的,但是考虑到最近要看 SICP 还有努力转行 java 估计又要拖很久了。 把自己的配置附录一下吧。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import XMonad
import XMonad.Util.EZConfig(additionalKeys)
import XMonad.Util.Run(spawnPipe)
import XMonad.Config.Desktop
import XMonad.Actions.SpawnOn

web = "web"
code = "code"
term = "terminal"
myWorkspaces = [web, code, term] ++ map show [4..9]

main = do
  xmproc <- spawnPipe "xmobar"
  xmonad $ desktopConfig {
    startupHook = do
      spawnOn web "firefox"
      spawnOn code "emacs"
      spawnOn term "termite"
    ,terminal = "termite"
    ,modMask = mod4Mask
    ,workspaces = myWorkspaces
    ,manageHook= manageSpawn
  } `additionalKeys` [
        ((mod4Mask, xK_Up), spawn "amixer set Master 2%+ unmute"),
        ((mod4Mask, xK_Down), spawn "amixer set Master 2%- unmute")
    ]