Ratpoison

提供: ArchWiki
2023年8月23日 (水) 20:42時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎Focus follows mouse: 飜訳)
ナビゲーションに移動 検索に移動

Ratpoison は C で書かれたタイル型ウィンドウマネージャです。マウスを使わないでアプリケーションを管理することができます。ユーザーインターフェイスは Screen の影響を受けています。

インストール

Ratpoison は ratpoison パッケージでインストールできます。

設定

ratpoison をウィンドウマネージャとして使うには、~/.xinitrc ファイルを作成・編集する必要があります。

~/.xinitrc
# The black/white grid as background doesn't suit my taste.
xsetroot -solid black &
# Ratpoison is compatible with xcompmgr! now you can have real transparency
xcompmgr -c -f -D 5 &
#fire up ratpoison!
exec /usr/bin/ratpoison

ratpoison を使う

X11 を起動すると黒い画面に "Welcome to Ratpoison" と書かれたテキストボックスが右上に表示されます。Ctrl+t と入力してから ? を押すことでキーバインドのリストを表示できます。GNU screen を使っている場合、すぐに操作に慣れるでしょう。

~/.ratpoisonrc を書き換えることでカスタムキーバインドを定義したり既存のキーバインドを上書きすることができます:

~/.ratpoisonrc
# Overriding CTRL+t 'c' to start aterm instead of xterm
bind c exec aterm

bind f exec firefox

上記のように設定することで Ctrl+t と入力してから f を押すことで、ratpoison は Firefox を立ち上げます。他の例:

~/.ratpoisonrc
exec xsetroot -cursor_name left_ptr
startup_message off

escape C-z

# Make a screenshot
alias sshot exec import -window root ~/screenshot-$(date +%F).jpg
definekey top M-C-Print sshot

#virtual desks
gnewbg one
gnewbg two

definekey top M-l exec ratpoison -c "select -" -c "gprev" -c "next"
definekey top M-h exec ratpoison -c "select -" -c "gnext" -c "next"

#switch between windows
definekey top M-j next
definekey top M-k prev

#apps
unbind c
bind c exec urxvt -tr
#bind c exec aterm

bind g exec gftp
bind f exec firefox

キーバインド

キーバインド 説明
Ctrl+t ! <Program Name> プログラムを起動
Ctrl+t ? キーバインドを表示
Ctrl+t c X 端末を起動
Ctrl+t n 次のウィンドウに移動
Ctrl+t p 前のウィンドウに移動
Ctrl+t 1-9 ウィンドウ 1-9 に移動
Ctrl+t k 現在のウィンドウを閉じる
Ctrl+t Shift+k 現在のアプリケーションを XKill
Ctrl+t s, Shift+s 現在のフレームを縦横のフレームに分割
Ctrl+t Tab, , , , 次, 左, 上, 右, 下のフレームに移動。
Ctrl+t Shift+q 現在のフレームだけを表示。
Ctrl+t : ratpoison コマンドを実行。

Ratpoison とディスプレイマネージャ

大抵のディスプレイマネージャ (LightDM など) は /usr/share/xsessions/ からセッションを読み込みます。ほとんどのウィンドウマネージャやデスクトップ環境は /usr/share/xsessions/.desktop ファイルを作成しますが、ratpoison は /etc/X11/sessions/ratpoison.desktop ファイルを作成します。ディスプレイマネージャから ratpoison が使えるようにするには ratpoison.desktop ファイルを /etc/X11/sessions/ratpoison.desktop から /usr/share/xsessions/ratpoison.desktop にコピーする必要があります。/usr/share/xsessions ディレクトリが存在しない場合は、root で作成してください。

ヒントとテクニック

Java Swing アプリケーション

Java Swing GUI アプリケーションはタイル型ウィンドウマネージャに対応していますが、ratpoison のデフォルト設定では正しくフルスクリーンになりません。Java の Swing アプリケーションにタイル型ウィンドウマネージャを使用していることを認識させて、正しくフルスクリーンが使われるようにする "trick" が存在します。

wmname パッケージをインストールしてください。そして以下の行を .ratpoisonrc に追加してください:

~/.ratpoisonrc
exec wmname LG3D

これで Java Swing アプリケーションは正しくフルスクリーンになるはずです。

マルチワークスペース

デフォルトでは ratpoison にはワークスペースが一つしかありませんが、(デフォルトでインストールされる) rpws と呼ばれるスクリプトを使うことで複数のワークスペースが使えます。

.ratpoisonrc を編集して、以下を追加してください:

~/.ratpoisonrc
exec /usr/bin/rpws init 6 -k

上記の設定でワークスペースが6つになります。デフォルトでは、Alt+F1 で1番目のワークスペース、Alt+F2 で2番目のワークスペースを使用することができます。以下のようにバインドすることも可能です:

bind C-1 exec rpws 1
bind C-2 exec rpws 2
...

上記の設定であれば Ctrl+t Ctrl+1 でワークスペースを切り替えることができます (Ctrl+t は Escape キー)。

Urxvt と xterm

デフォルトでインストールされる Urxvt と xterm はリサイズのヒント情報をウィンドウマネージャに送信します。ほとんどのタイル型ウィンドウマネージャでは機能しますが、ratpoison では上手くいきません。結果的に URxvt/xterm がフォントサイズの倍にリサイズして、隙間が出来てしまう可能性があります。この問題を解決する方法は2つあります。

パッチを適用した URxvt をインストールする

URxvt を使っている場合、rxvt-unicode-fontspacing-noinc-vteclear-secondarywheelAUR パッケージを使うことでリサイズヒントがウィンドウマネージャに送られなくなります。ratpoison では、デフォルトの URxvt の代わりに修正が加えられた URxvt をインストールすることで適切にリサイズするようになります。

ボーダーを調整する

xterm/urxvt のオプションである internalBorder を使って ratpoison のボーダーを 0 に設定することができます。

解像度とフォントサイズの組み合わせにあわせて、internalBorder の正確な値は何度も試して調べる必要があります (テストする前に ratpoison のボーダーを 0 に設定してください)。ターミナルコマンドラインオプションの -b を使うことで適当な値をテストできます。値がわかったら、以下のファイルに保存してください:

~/.Xresources
urxvt*internalBorder: 8 #change urxvt to xterm if necessary. Using the font terminus in urxvt at 14px size, 8 is the correct number here.
~/.ratpoisonrc
set border 0

組み合わせが見つけられない場合、フォントサイズやフォントファミリーも変更してみてください (ボーダーの数字も変わります)。

自動起動

ratpoison が起動したときにプログラムを実行することができます。起動時には ~/.ratpoisonrc ファイルが実行されます。

tmux セッションの urxvt を起動:

exec urxvt -e bash -c "tmux -q has-session && exec tmux attach-session -d || exec tmux new-session -n$USER -s$USER@$HOSTNAME"

chromium を起動:

exec bash -c 'pidof chromium &>/dev/null || exec /usr/bin/chromium --disk-cache-dir=~/tmp/cache'

壁紙と透過

xcompmgr と nitrogen を使うことで透過を設定できます。まず nitrogen を起動して適当な壁紙を設定してください。そして .ratpoisonrc で以下を設定:

exec xcompmgr -c -f -D 5 &
exec nitrogen --restore

フォーカスはマウスに追従

Arch linux の ratpoison パッケージは /usr/share/ratpoison/ にビルドスクリプトの sloppy.c をインストールします。ビルドスクリプトを使うことで ratpoison でマウスポインタにあわせてウィンドウをフォーカスさせることができます。有効化するには:

# cd /usr/share/ratpoison/
# gcc -o sloppy sloppy.c -lX11
# ./sloppy

ratpoison の起動時に有効化させるには、~/.ratpoisonrc に以下を記述:

exec /usr/share/ratpoison/sloppy

参照