タイル型ウィンドウマネージャ stumpwm 導入
stumpwmとは、タイル型ウィンドウマネージャの一種。
ratpoisonの後継でcommon lispで実装されています。
Cで書かれたratpoisonより若干重くはなりますが、拡張性に優れており、設定ファイルもcommon lispでかけるのでいろいろと便利。
ついこの間ratpoisonからstumpwmへ乗り換えたので、導入について書いてみたいと思います。
1・乗り換えた理由
ratpoisonでもほとんど満足でしたか、一つ不満点がありました。
xrandrで解像度を変更するときに、ratpoisonを再起動しないと解像度が反映されないのが非常に面倒なことです。
再起動するとグループも再構成されてしまい、ウィンドウを再配置する必要があります。
(さらに自分の環境が悪いのかもしれませんが、既存のウィンドウを他のグループに移動しようとするとウィンドウが消えると言う妙な事柄になります)
最近割と頻繁にディスプレイを変えることがあり面倒なので、その辺に対応しているstumpwmをインストールしてみました。
2・インストール
common lispだとかいろいろ入ります。
3・設定
設定ファイルは ~/.stumpwmrc にcommon lispで記述します。
上記で、*top-map*は地味に便利です。
ツーストロークは指がもつれたりするので、連続でタイプする場合はシングルの方が便利です。
3・xmodmapなどのおまけ
脱線ですが、大抵の日本語キーボードは
|無変換|カナ|Alt|
みたいな配列になっていると思います。
自分の場合はカナは使わないので、Altにしています。
ratpoisonの時は keycode の設定だけで動いていましたが、stumpwmにしてから動かなくなったのでModの設定を追加しました。(環境依存かもしれません)
余談ですが、半角全角をエスケープにしておくと便利です。
(IMを有効にするのはソフト側で Ctrl-無変換にしています)
カスタマイズと言えば、vimperatorについても、~/.vimperatorrc を
上記のようにし、FPSっぽいキーバインドで操作可能にしてます。
ウィンドウ切り替えからブラウザまで、できるだけ左手で完結出きるようにしておくと、案外便利なのでおすすめです。
ratpoisonの後継でcommon lispで実装されています。
Cで書かれたratpoisonより若干重くはなりますが、拡張性に優れており、設定ファイルもcommon lispでかけるのでいろいろと便利。
ついこの間ratpoisonからstumpwmへ乗り換えたので、導入について書いてみたいと思います。
1・乗り換えた理由
ratpoisonでもほとんど満足でしたか、一つ不満点がありました。
xrandrで解像度を変更するときに、ratpoisonを再起動しないと解像度が反映されないのが非常に面倒なことです。
再起動するとグループも再構成されてしまい、ウィンドウを再配置する必要があります。
(さらに自分の環境が悪いのかもしれませんが、既存のウィンドウを他のグループに移動しようとするとウィンドウが消えると言う妙な事柄になります)
最近割と頻繁にディスプレイを変えることがあり面倒なので、その辺に対応しているstumpwmをインストールしてみました。
2・インストール
- $
sudo apt-get install stumpwm
common lispだとかいろいろ入ります。
3・設定
設定ファイルは ~/.stumpwmrc にcommon lispで記述します。
- ;;
-*- lisp -*- - (in-package
:stumpwm) - (setf
*shell-program* "/bin/zsh") - ;;
色 - (set-fg-color
"#000000") - (set-bg-color
"#FFFFFF") - (set-border-color
"#000000") - ;;
フォーカスがあるウィンドウの色 - ;;
デフォルトは白ですが、何か自己主張が激しい(?)ので暗い赤に - (set-focus-color
"#883333") - ;;
フォーカスが無いのは暗い青に - (set-unfocus-color
"#333388") - ;;
フォント - (set-font
"-xos4-terminus-bold-r-normal--14-140-72-72-c-0-iso8859-7") - ;;
あらかじめグループを作成しておく - (run-commands
"gnewbg 1") - (run-commands
"gnewbg 2") - (run-commands
"gnewbg 3") - (run-commands
"gnewbg 4") - (run-commands
"gnewbg 5") - (run-commands
"gnewbg 6") - (run-commands
"gnewbg 7") - (run-commands
"gnewbg 8") - (run-commands
"gnewbg 9") - (run-commands
"gnewbg 10") - ;;
1番を選択 - (run-commands
"gselect 1") - ;;
以下、独自コマンド - ;
urxvt起動 - (defcommand
urxvt () () (run-shell-command "urxvt")) - ;
音楽プレーヤのコントロール - ;
audio_ctlはシェルスクリプトで、 - ;
playが渡されたら rhythmbox-client --play 実行するように書いている - (defcommand
mprev () () (run-shell-command "audio_ctl prev")) - (defcommand
mplay () () (run-shell-command "audio_ctl play")) - (defcommand
mpause () () (run-shell-command "audio_ctl pause")) - (defcommand
mstop () () (run-shell-command "audio_ctl stop")) - (defcommand
mnext () () (run-shell-command "audio_ctl next")) - (defcommand
mshuffle () () (run-shell-command "audio_ctl shuffle")) - (defcommand
mrepeat () () (run-shell-command "audio_ctl repeat")) - (defcommand
volup () () (run-shell-command "audio_ctl volup")) - (defcommand
voldown () () (run-shell-command "audio_ctl voldown")) - (defcommand
mnotify () () (run-shell-command "audio_ctl notify")) - ;
music - (define-key
*root-map* (kbd "M-z") "mprev") - (define-key
*root-map* (kbd "M-x") "mplay") - (define-key
*root-map* (kbd "M-c") "mpause") - (define-key
*root-map* (kbd "M-v") "mstop") - (define-key
*root-map* (kbd "M-b") "mnext") - (define-key
*root-map* (kbd "M-s") "mshuffle") - (define-key
*root-map* (kbd "M-r") "mrepeat") - (define-key
*root-map* (kbd "C-0") "volup") - (define-key
*root-map* (kbd "C-9") "voldown") - (define-key
*root-map* (kbd "x") "mnotify") - ;
term - (define-key
*root-map* (kbd "C-c") "urxvt") - (define-key
*root-map* (kbd "c") "urxvt") - ;
colon - ;
stumpwmのデフォルトはセミコロンなため、コロンに変更して置く - (define-key
*root-map* (kbd "C-:") "colon") - (define-key
*root-map* (kbd ":") "colon") - ;;
group - ;;
M-Fxで切り替え *top-map* とすることでシングルストロークで実行出来る - (define-key
*top-map* (kbd "M-F1") "gselect 1") - (define-key
*top-map* (kbd "M-F2") "gselect 2") - (define-key
*top-map* (kbd "M-F3") "gselect 3") - (define-key
*top-map* (kbd "M-F4") "gselect 4") - (define-key
*top-map* (kbd "M-F5") "gselect 5") - (define-key
*top-map* (kbd "M-F6") "gselect 6") - (define-key
*top-map* (kbd "M-F7") "gselect 7") - (define-key
*top-map* (kbd "M-F8") "gselect 8") - (define-key
*top-map* (kbd "M-F9") "gselect 9") - (define-key
*top-map* (kbd "M-F10") "gselect 10") - (define-key
*root-map* (kbd ",") "gmove") - ;;
window - ;;
今いるウィンドウが分かりずらかったため書いてみた - ;;
慣れれば必要ない - (defcommand
sfnext () () (run-commands "fnext" "echo ######################################### - #########################################
C U R R E N T F R A M E - #########################################
- #########################################
- "))
- (define-key
*root-map* (kbd "C-b") "sfnext") - (define-key
*root-map* (kbd "b") "sfnext") - ;
カーソルキーでフォーカス切り替え - (define-key
*top-map* (kbd "M-Left") "move-focus left") - (define-key
*top-map* (kbd "M-Right") "move-focus right") - (define-key
*top-map* (kbd "M-Up") "move-focus up") - (define-key
*top-map* (kbd "M-Down") "move-focus down") - ;
vim風のキーバインドでフォーカス切り替え - (define-key
*top-map* (kbd "C-M-h") "move-focus left") - (define-key
*top-map* (kbd "C-M-l") "move-focus right") - (define-key
*top-map* (kbd "C-M-k") "move-focus up") - (define-key
*top-map* (kbd "C-M-j") "move-focus down") - ;
FPS風(?)のキーバインドでフォーカス切り替え(左手だけで変更可能にするため) - (define-key
*top-map* (kbd "C-M-a") "move-focus left") - (define-key
*top-map* (kbd "C-M-d") "move-focus right") - (define-key
*top-map* (kbd "C-M-w") "move-focus up") - (define-key
*top-map* (kbd "C-M-s") "move-focus down")
上記で、*top-map*は地味に便利です。
ツーストロークは指がもつれたりするので、連続でタイプする場合はシングルの方が便利です。
3・xmodmapなどのおまけ
脱線ですが、大抵の日本語キーボードは
|無変換|カナ|Alt|
みたいな配列になっていると思います。
自分の場合はカナは使わないので、Altにしています。
- clear
Mod1 - keycode
101 = Alt_R Meta_R - add
Mod1 = Alt_L Alt_R
ratpoisonの時は keycode の設定だけで動いていましたが、stumpwmにしてから動かなくなったのでModの設定を追加しました。(環境依存かもしれません)
余談ですが、半角全角をエスケープにしておくと便利です。
(IMを有効にするのはソフト側で Ctrl-無変換にしています)
- keycode
49 = Escape Kanji Kanji
カスタマイズと言えば、vimperatorについても、~/.vimperatorrc を
- "2.3.1
(created: 2010/04/07 18:56:53) - set
runtimepath=/home/yuji/.vimperator - source!
/home/yuji/.vimperatorrc.local - "
vim: set ft=vimperator: - map
A H - map
S j - map
D L - map
W k - map
Q - map
E
上記のようにし、FPSっぽいキーバインドで操作可能にしてます。
ウィンドウ切り替えからブラウザまで、できるだけ左手で完結出きるようにしておくと、案外便利なのでおすすめです。
コメントフォーム
トラックバック
最近の記事
- もうすぐ健康診断があるんだ・・・ [2010年09月02日 : 阿部恵]
- Photoshopで壁紙を作りながら、基本的な使い方を覚える [2010年09月01日 : 鴨田健次]
- はじめての共同作業 Canvas編 (node.js + websocket) [2010年09月01日 : 中川善樹]
- 「PHP×Flex(後編)」PHPテクニカルセミナー(無料)第4弾の募集を開始しました!! [2010年08月26日 : 和田記光]
- 【HTML5】Canvasでお絵かきしてみた(前編) [2010年08月25日 : 橋本章史]
- MacにgroongaのMySQL用ストレージエンジン [2010年08月23日 : 笹亀弘]
- Appleのサイトで見たiPhone4をFireworksで描いてみました-1/2 [2010年08月19日 : 和田記光]
- iPad版の会社紹介を作ってみました [2010年08月19日 : 小林有佳]
- iPhoneアプリ開発開始時に気をつけるべきファイルの取り扱い (2) [2010年08月19日 : 亀本大地]
- symfonyセミナー動画無料公開! [2010年08月13日 : 岡本雄樹]



最近のコメント