Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2009-07-25

StumpWMの日々 (1)

| 14:46 | StumpWMの日々 (1) - わだばLisperになる を含むブックマーク はてなブックマーク - StumpWMの日々 (1) - わだばLisperになる

StumpWMとは

StumpWMとはCommon Lispで書かれたタイル型のウィンドウマネージャーです。

いつの間にやらUbuntuやDebianでは、パッケージでstumpwmというのが提供されるようになっていて、コマンド一発で導入できるようになっています。素晴らしい!

StumpWMをカスタマイズしたい

さて、StumpWMを使い初めて約2年になろうとしているのですが、最初の頃にちょっとカスタマイズした位で面倒になり、ずっとその頃の設定のまま使っていました。

しかし、普段からどうも使い難いなあというところが溜って来たので色々カスタマイズして遊んでみることにしてみました。

StumpWMを自分用にカスタマイズする

StumpWMでは、~/.stumpwmrcに設定記述することによって起動時に設定が読み込まれます。

  • 分割した画面の移動

デフォルトでは、(C-t 矢印キー)なのですが、手が矢印キーに移動するのは面倒なのでvi風にhjklに割付けてみました。

(define-key *root-map* (kbd "j") "move-focus down")
(define-key *root-map* (kbd "k") "move-focus up")
(define-key *root-map* (kbd "l") "move-focus right")
(define-key *root-map* (kbd "h") "move-focus left")

移動が面倒なためかウィンドウの分割機能も利用していなかったようなのですが、移動がスムースになったので以前より分割しては移動したり、ウィンドウを消したりするようになりました。どこがどう生活に影響してくるか分からないものです。

  • インプットウィンドウのキーバインド

デフォルトでは、コマンド入力の保管に(TAB)確定に(Return)という割付けなのですが、(TAB)も(Return)もあまり利用したくないので、(C-i)と(C-m)にもそれぞれ割り付けてみました。

また、文字単位での前方への削除も(C-h)でできるようにしました。(Backspace)もあまり使わない自分にはこれが便利です。

ついでに単語単位での前方削除も追加し、なんとなくインプットウィンドウも中央に出してみています。

これらのキーバインドは、*input-map*に格納されているようなので、これをいじればカスタマイズ可能です。

;; input windowを中央に出す。
(setq *input-window-gravity* :center)

(define-key *input-map* (kbd "C-i") 'input-complete-forward)
(define-key *input-map* (kbd "C-m") 'input-submit)
(define-key *input-map* (kbd "C-h") 'input-delete-backward-char)
(define-key *input-map* (kbd "M-C-h") 'input-backward-kill-word)
  • コマンド定義

コマンド定義はdefine-stumpwm-commandで以前から普通に行なっていますが、最近ではウェブアプリが多くなっているのでfirefoxを呼び出したりすることが多いかもしれません。

上記でコマンド入力が楽になったのでキーバインドに直接割り付けなくてもインプットウィンドウでの呼び出しが楽にできるようになり、沢山コマンドを作成して登録するようになりました。

(progn
  ;; LDR
  (define-stumpwm-command "ldr" ()
    (run-shell-command "/usr/bin/firefox \"http://reader.livedoor.com/reader/\"")))
  ;; gmail
...

という感じ。

まとめ

ちょっと工夫してみただけで随分使いやすくなりました。

これからも、ちょこちょこカスタマイズのエントリーを書いて行きたいと思っています。