タイル型ウィンドウマネージャ 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っぽいキーバインドで操作可能にしてます。
ウィンドウ切り替えからブラウザまで、できるだけ左手で完結出きるようにしておくと、案外便利なのでおすすめです。
トラックバックURI
最近の記事
システム開発エンジニア募集! [2012年02月03日 : 小林有佳]
OpenVPNで細々便利な設定 [2012年01月31日 : 門脇優児]
【iOS】Viewの開発・デバッグに役立つ色々 [2012年01月23日 : 中川善樹]
PHPDocumentorの利用方法まとめ [2012年01月19日 : 笹亀弘]
Google Chart Toolsを使ってサイトマップを描こう! [2011年12月21日 : 志田仁美]
stumpwm設定v2 [2011年12月19日 : 門脇優児]
Mashup Awards 7の授賞式が行われました [2011年12月16日 : 中川善樹]
社員旅行に行きました [2011年12月12日 : 大橋寛子]
iCloud風のアイコンを作成する(Fireworks) [2011年12月07日 : 和田記光]
iScroll4でネイティブに近いスマホ向けHTMLページを作成する [2011年12月02日 : 松田惇]













コメントフォーム