Ubuntu 11.10にxmonadを入れた記録

Ubuntu 11.10に移行したのでまずxmonadを入れる。sudo apt-get install xmonadしたら次のように設定する。

[LennMars ~]$ cat /usr/share/xsessions/xmonad-gnome.desktop
[Desktop Entry]
Name=xmonad/GNOME
Comment=benri
TryExec=/usr/bin/gnome-session
Exec=gnome-session --session=xmonad
Type=XSession

[LennMars ~]$ cat /usr/share/gnome-session/sessions/xmonad.session
[GNOME Session]
Name=xmonad/GNOME
RequiredComponents=gnome-settings-daemon;
RequiredProviders=windowmanager;panel;
DefaultProvider-windowmanager=xmonad
DefaultProvider-panel=unity-2d-panel

[LennMars ~]$ cat /etc/lightdm/lightdm.conf
[SeatDefaults]
greeter-session=unity-greeter
user-session=xmonad-gnome

[LennMars ~] $ cat .xmonad/xmonad.hs
import qualified Data.Map as M
import XMonad
import XMonad.Core
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Config.Gnome
import qualified XMonad.StackSet as W
import System.Exit
import Graphics.X11.Xlib

myManageHook = composeAll (
        [ manageHook gnomeConfig
        , className =? "Unity-2d-panel" --> doIgnore
        ])

main = xmonad gnomeConfig
        { manageHook = myManageHook
        , logHook = logHook gnomeConfig
        , modMask = mod4Mask
        , keys = keys'
        , borderWidth = 3
        }

keys' :: XConfig Layout -> M.Map (KeyMask, KeySym) (X ())
keys' conf@(XConfig {XMonad.modMask = modMask}) = (後略)

[LennMars ~] $ xmonad --recompile && xmonad --restart

Unityについてはpanelはともかくlauncherはどう考えても要らないので切った。欲しければxmonadのRequiredProvidersにlauncher;を、末尾にDefaultProvider-launcher=unity-2d-launcherを付け加えればよい。(後略)部分はキーバインドの設定であり、デフォルト値http://xmonad.org/xmonad-docs/xmonad/src/XMonad-Config.htmlをコピペして適当に改造した。mod-bがコメントアウトされているのはxmonadの現在のバージョンではエラーになるからである。modifyGap〜の代わりにsendMessage ToggleStrutsとすればよいらしい。ちなみにmod-pで呼ばれるdmenuを含むパッケージ名はUbuntu 11.10では"suckless-tools"である。