Livedoorブログからの移動

ネット上に転がっているxmonadの設定だと, M-fでフルスクリーンにするような設定がよく書かれている(こことか). 自分のxmonad.hsから該当する部分を抜き出すと, 以下のようなコードがその設定に該当する.

  ...
  ("M-f", sendMessage $ Toggle FULL) -- キーバインドの設定
  ...
  , layoutHook = mkToggle1 FULL $ (desktopLayoutModifiers (named "V" tall ||| (named "H" $ Mirror tall) ||| (named "F" $ Full)))
  ...

でも, xmobarを用いた場合, フルスクリーンにしてもそのステータスバーだけは見たいってこともあると思う. 自分野調べた限り, そういうような設定はネット上になかったので, メモしておく.

{-# LANGUAGE DeriveDataTypeable, TypeSynonymInstances,MultiParamTypeClasses #-}
...
xmobarLayoutHook = drawer `onTop` Full
    where
        drawer = simpleDrawer 0.019 0.3 (ClassName "xmobar") 
data MyTransformer = TOPXMOBAR deriving (Read, Show, Eq, Typeable)
instance Transformer MyTransformer Window where
    transform TOPXMOBAR x k = k xmobarLayoutHook (const x)
...
    ("M-f", sendMessage $ Toggle TOPXMOBAR)
...
    , layoutHook = mkToggle1 TOPXMOBAR $ (desktopLayoutModifiers (named "V" tall ||| (named "H" $ Mirror tall) ||| (named "F" $ Full))) 

ちなみにHaskellの構文は覚えているけど用語は全く知らないので, 詳しい人が見たら怒りそうなプログラムだと思う. 綺麗なコードを書きたい人は自分で書き直すのがおすすめ.

これ書いててわかったことは, xmonadは所詮行数少ない(1000行程度だっけ?)ので, 困ったらソース読むのが一番早いということ. Ubuntuでaptでインストールしているなら, /usr/share/doc/libghc-xmonad-contrib-doc/html/src/usr/share/doc/libghc-xmonad-doc/html/srcにソースコードが載っている.