xmonad設定

音量調整の設定とかではまった。余計な設定とかも残っているが、とりあえず晒しておく。

import System.IO
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Actions.Volume
import XMonad.Util.EZConfig 

main = do
  xmproc <- spawnPipe "xmobar"
  xmonad $ defaultConfig
    { manageHook = manageDocks <+> manageHook defaultConfig
    , layoutHook = avoidStruts $ layoutHook defaultConfig
    , logHook = dynamicLogWithPP $ xmobarPP --xmoberにウインドウタイトルを表示
              { ppOutput = hPutStrLn xmproc
              , ppTitle = xmobarColor "green" "" . shorten 50
              }
    , terminal           = "gnome-terminal"
    , borderWidth        = 2
    , normalBorderColor  = "#333333"
    , focusedBorderColor = "#cd8b00"
    }
    `additionalKeysP` --音量調整のための追加キーマップ
    [ ("<XF86AudioMute>",        toggleMute    >> return ())
    , ("<XF86AudioLowerVolume>", lowerVolume 4 >> return ())
    , ("<XF86AudioRaiseVolume>", raiseVolume 4 >> return ())
    ]
  • xmobarrc
Config { font = "xft:Sans-9:bold"
       , bgColor = "black"
       , fgColor = "grey"
       , position = Top
       , lowerOnStart = False
       , commands = [ Run Network "wlan0" ["-L","0","-H","32","--normal","green","--high","red"] 10
                    , Run Network "eth0" ["-L","0","-H","32","--normal","green","--high","red"] 10
                    , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
                    , Run Memory ["-t","Mem: <usedratio>%"] 10
                    , Run Swap [] 10
    		    , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
                    , Run BatteryP ["BATA"] [] 30
                    , Run StdinReader
                    ]
       , sepChar = "%"
       , alignSep = "}{"
       , template = "%StdinReader%}{<fc=#ee9a00>%date%</fc> [%battery%]"
       }

音量調整を設定するためのノウハウは以下を参照。

音量調整のキーバインドはfnキーで修飾したものにしたかったので以下を参照。

XMonad.Actions.VolumeはXMonad.Actions.Volumeのコードを .xmonad/lib/XMonad/Actions/Volume.hs にコピペ。
他のライブラリに依存しているため、xmonadをapt-getまたはaptitudeで入れただけの状態では動かない。とりあえずghclib*と言う名前のパッケージを全部入れたらうごいた。