GUIのウィンドウを自由自在に操ることができる タイル型ウィンドウマネージャ、Xmonadを導入しました。
タイル型ウィンドウマネージャとは
コマンドラインにこだわりはじめると、なんでもかんでもコマンドラインで完結させたくなる。
screenやtmuxのようなマルチプレクサは、とても快適だがそれをGUIでも実施するにはどうすればいいか調べたところ、タイル型ウィンドウマネージャの存在を知った。
タイル型ウィンドウマネージャとは、ウィンドウをコマンドラインで操ることのできるツール。
説明は、Wikipediaに譲るとして、タイル型ウィンドウマネージャを知ったことは、カルチャーショックだった。初めてコマンドラインの世界にふれて、コンピュータにはこういう側面もあるのか、というような感動を受けた。
タイル型WMには様々な種類があるようだ。XmonadとAwesomeが2大勢力のようなので、XMonadの方を導入してみた。
環境
- Linux Mint 16 Cinnamon
セットアップ
公式サイトの Documentation - Quick start for the impatientに従いセットアップします。
インストール
Linux MintはUbuntuと同様に3つのパッケージが必要。
$ sudo apt-get xmonad
$ sudo apt-get instasll libghc-xmonad-dev
$ sudo apt-get instasll libghc-xmonad-contrib-dev
設定ファイルの作成
$HOME/.xmonad/xmonad.hsに設定ファイルを新規作成する。
もっとも基本的な設定ファイルは以下。Haskellで記述されている。
import XMonad
main = do
xmonad $ defaultConfig
Xmonadの起動
ログアウトする。ログイン画面で、「セッション」とかかれた部分を選択。「XMonad」を選択し、ログインする。ログインすると、なんと真っ黒な画面!
ここでかなりあせったが、実はこれはXMonadでログインしている証拠。あせらず騒がず【右Alt + Shift + Enter】を入力。これで、ターミナルが起動され、操作が可能になる。
Xmonadの使い方
ここまで着たら、ガイダンスに従って操作を覚えていく。
基本をメモ
-
mod-shift-return: ターミナル起動
-
mod-shift-q: xmonad終了
-
mod-p: dmenu起動
-
mod-q: 再起動
-
mod-space: レイアウト配置変更
-
mod-j/k/m: focus変更
-
mod-h/l: サイズ変更
-
mod-tab: レイアウト移動
manコマンドでも使い方がわかる。
man xmonad
カスタマイズ
一通り操作を覚えたら、カスタマイズを飽きるまで行う。以下のページをベースにカスタマイズ。
dmenuの導入
アプリケーションランチャーである、dmenuを導入する。
$ sudo apt-get install dmenu
Mod-pで上部にランチャーが表示されるので、適当に検索してツールを実行。例えばchromeで検索すると、google-chromeがすぐに引っかかる。
ショートカットキーの変更
Mod Keyはデフォルト 右Altなので、これをカタカナ・ひらがなキーに変更する。(
~/.Xmodmapを新規作成して、以下を書く。既存のmod3をクリアして、Henkan_Modeを設定。
clear mod3
add mod3 = Hiragana_Katakana
キーに対応する名前は、xevを起動して調べることができる。
xmonad.hsの defaultConfig内に以下を追記。
modMask = mod3Mask,
最後に、以下で有効にする。
xmodmap $HOME/.Xmodmape
起動時にこの設定を有効にするために、~/.xsessionに追記しておく。
これで、使いやすくなったか???いや・・・微妙だ。
ターミナルの変更
ターミナルはMint defaultのgnome-terminalではなくて、軽量なterminalである、unicode-rvxtを利用。xmonad.hsの defaultConfigに以下を追記。
terminal = "urxvt"
XMobar
ステータスバーを表示させるために、xmobarを入れる。他にも、dzen2というツールがある。
$ sudo apt-get install xmobar
次に、設定ファイル~/.xmobarrcを作成。テンプレートを利用してみる。
$ cp /usr/share/doc/xmobar/examples/xmobar.config ~/.xmobarrc
.xmobar/xmobar.hsの mainのすぐ下の行に以下を追記することで、xmonad起動の延長でxmobarを起動することができる。
xmproc <- spawnPipe "/usr/bin/xmobar /home/tsu-nera/.xmobarrc"
キーボードショートカットの設定
以下のように書くことで、キーボードショートカットが設定できる。ここでは、Winキーとの組み合わせで設定
import XMonad.Actions.WindowGo
-- for keyboard shortcut
modm = mod4Mask
`additionalKeys`
[
((modm, xK_e), runOrRaise "emacs" (className =? "Emacs"))
, ((modm, xK_t), runOrRaise "urxvt" (className =? "URxvt"))
, ((modm, xK_g), runOrRaise "chrome" (className =? "Google-chrome-stable"))
]
クラス名は、このコマンドを端末から実行して、+ のカーソルで調べたいWindowをクリックする。
xprop | grep WM_CLASS
背景の設定
fehという軽量な画像ビューアーで表示する方法が載っていたので、これを利用。
インストール。
sudo apt-get install feh
以下で背景を設定できる。
feh --bg-scale ~/Pictures/wallpaper/moonlight.png
これを.xsessionに書くと、なぜか動作しなかった。しかたがないので、.profileに記入した。
ファイルマネージャー
Mintのファイルマネージャー、nemoを利用すると、勝手にデスクトップを変更されるので、nemoは -no-desktopモードで起動する。aliasを.zshenvに切る。
alias nemo='nemo --no-display'
ショートカットでフルスクリーン
Mod + Spaceを押したときのデフォルトでは、複数回キーを押さないとフルスクリーンにならないので、これを改善。以下のサイトを参考に設定した。これは便利!
まとめ
ほかにも、いろいろと細かい設定が必要だけれども、きりがないので今日はこんなところで。
いろいろな作業をコマンドラインで実施することができるので、とても快適。しかし、残念ながらマウスを使わざるを得ないところもある。たとえば、ブラウザ操作のコピぺはマウスに頼らざるを得ない。
タイル型WMとの出会いはとても感動的だ。
さらなる精進をつんで、立派なCUIマスターになりたい。