参考サイト
基本的に下の2つに書かれている内容だけで、使えるようになった。
- HTTPS://WIKI.ARCHLINUXJP.ORG/INDEX.PHP/XMONAD:TITLE=ARCH LINUX JAPAN
- Archlinuxを使う気は全くないが、情報がまとまっているのが非常に助かる。
- タイル型ウィンドウマネージャという新たな世界観に衝撃を受けた!XmonadをつかってワクワクCUI生活 | Futurismo
- 必要最小限の情報がまとまっていて、取っ掛かりとして助かった。
Xmonad起動
mod(Altキー)-shift-returnでターミナルが起動だけをたよりに、ログインした。壁紙も何も表示されないので、いつ起動したのかよくわからない。頃合いを見計らって、キー入力してターミナルを起動した。
Emacsのキーと衝突する
AltキーはEmacsと衝突するので絶対に使えない。Windowsキーを使う例もあったけど、自分のキーボードにWindowsキーはないからダメだった。参考サイトをベースに、無変換キーを使うことにした。Xmodmapを使うのは15年ぶりぐらいで、完全に忘れていた。
$ xmodmap xmodmap: up to 4 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock Eisu_toggle (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
となっていたので、無変換キーと変換キーにSuper_LとSuper_Rを割り当てることにした。xevでkeycodeをしらべて、~/.Xmodmapに以下を記述した。
keycode 100 = Super_R keycode 102 = Super_L
xmonad.hsに以下を記述した。
import XMonad main = do xmonad $ defaultConfig {modMask = mod4Mask }
この時点では、マシンを起動するたびにターミナルを起動して
xmodmap ~/.Xmodmap
を行っていた。なので、上の変更を行ったあと、次のログインでターミナルが起動できなくなり、別マシンからsshでログインしてXmonadを終了させた。多分よくある話だと思う。
xmonad起動前にxmodmapを実行する
.xsessionからxmonadを起動していたわけでない*1ので、今の仕組みを調べてみた。/usr/share/xsessions/以下が起動設定みたいだったので、そこから辿って/usr/bin/xmonad-sessionを見ると
#!/bin/bash if [ -r ".xmonad/xmonad-session-rc" ] then . .xmonad/xmonad-session-rc fi exec xmonad "$@"
となっていたので、.xmonad/xmonad-session-rcに
xmodmap ~/.Xmodmap
とだけ書いた。
JAVAのUIアプリの表示がおかしくなる
Debianを使う目的が、JAVAのGUIアプリを必要としている。で、確かめてみたら表示がおかしい。参考サイトにあった対策を試したら、それで問題はなくなった。
xmonad.hsに以下を記述した。
import XMonad import XMonad.Hooks.SetWMName main = do xmonad $ defaultConfig {modMask = mod4Mask ,startupHook = setWMName "LG3D" }
dmenuの導入
参考サイトにあったdmenuを導入した。Windwosだとcraftlaunchを使っているので、気に入った。
urxvtの導入
参考サイトにあった、urxvtを導入した。ターミナルに強いこだわりはないので、これにした。
スクリーンショット
これでWindow Manager周りの設定は完了した。普段は大体この感じで作業している。EmacsとFirefoxでmaster windowを入れ替えたり、もうひとつターミナルを起動するぐらい。
*1:昔の知識をベースに今どきの自動化された設定に抵抗してもいいことは何もない。