「Ratpoison」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(en:Ratpoisonへの転送ページ)
 
 
(2人の利用者による、間の5版が非表示)
1行目: 1行目:
  +
[[Category:タイル型ウィンドウマネージャ]]
#redirect[[en:Ratpoison]]
 
  +
[[en:Ratpoison]]
  +
[[uk:Ratpoison]]
  +
[[zh-hans:Ratpoison]]
  +
[https://www.nongnu.org/ratpoison/ Ratpoison] は C で書かれたタイル型[[ウィンドウマネージャ]]です。マウスを使わないでアプリケーションを管理することができます。ユーザーインターフェイスは [[Screen]] の影響を受けています。
  +
  +
== インストール ==
  +
  +
Ratpoison は {{Pkg|ratpoison}} パッケージで[[インストール]]できます。
  +
  +
== 設定 ==
  +
  +
ratpoison をウィンドウマネージャとして使うには、{{Ic|~/.xinitrc}} ファイルを作成・編集する必要があります。
  +
  +
{{hc|~/.xinitrc|<nowiki>
  +
# 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
  +
</nowiki>}}
  +
  +
== ratpoison を使う ==
  +
  +
X11 を起動すると黒い画面に "Welcome to Ratpoison" と書かれたテキストボックスが右上に表示されます。{{ic|Ctrl+t}} と入力してから {{ic|?}} を押すことでキーバインドのリストを表示できます。GNU screen を使っている場合、すぐに操作に慣れるでしょう。
  +
  +
{{Ic|~/.ratpoisonrc}} を書き換えることでカスタムキーバインドを定義したり既存のキーバインドを上書きすることができます:
  +
  +
{{hc|~/.ratpoisonrc|<nowiki>
  +
# Overriding CTRL+t 'c' to start aterm instead of xterm
  +
bind c exec aterm
  +
  +
bind f exec firefox
  +
</nowiki>}}
  +
  +
上記のように設定することで {{ic|Ctrl+t}} と入力してから {{ic|f}} を押すことで、ratpoison は Firefox を立ち上げます。他の例:
  +
  +
{{hc|~/.ratpoisonrc|<nowiki>
  +
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
  +
</nowiki>}}
  +
  +
=== キーバインド ===
  +
  +
  +
{| class="wikitable"
  +
! キーバインド !! 説明
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|!}} <''Program Name''> || プログラムを起動
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|?}} || キーバインドを表示
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|c}} || X 端末を起動
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|n}} || 次のウィンドウに移動
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|p}} || 前のウィンドウに移動
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|1}}-{{ic|9}} || ウィンドウ 1-9 に移動
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|k}} || 現在のウィンドウを閉じる
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|Shift+k}} || 現在のアプリケーションを XKill
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|s}}, {{ic|Shift+s}} || 現在のフレームを縦横のフレームに分割
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|Tab}}, {{ic|←}}, {{ic|↑}}, {{ic|→}}, {{ic|↓}} || 次, 左, 上, 右, 下のフレームに移動。
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|Shift+q}} || 現在のフレームだけを表示。
  +
|-
  +
| {{ic|Ctrl+t}} {{ic|:}} || ratpoison コマンドを実行。
  +
|}
  +
  +
=== Ratpoison とディスプレイマネージャ ===
  +
  +
大抵の[[ディスプレイマネージャ]] ([[LightDM]] など) は {{ic|/usr/share/xsessions/}} からセッションを読み込みます。ほとんどのウィンドウマネージャやデスクトップ環境は {{ic|/usr/share/xsessions/}} に ''.desktop'' ファイルを作成しますが、ratpoison は {{ic|/etc/X11/sessions/}} に {{ic|ratpoison.desktop}} ファイルを作成します。ディスプレイマネージャから ratpoison が使えるようにするには {{ic|ratpoison.desktop}} ファイルを {{ic|/etc/X11/sessions/ratpoison.desktop}} から {{ic|/usr/share/xsessions/ratpoison.desktop}} にコピーする必要があります。{{ic|/usr/share/xsessions}} ディレクトリが存在しない場合は、root で作成してください。
  +
  +
== ヒントとテクニック ==
  +
  +
=== Java Swing アプリケーション ===
  +
  +
Java Swing GUI アプリケーションはタイル型ウィンドウマネージャに対応していますが、ratpoison のデフォルト設定では正しくフルスクリーンになりません。Java の Swing アプリケーションにタイル型ウィンドウマネージャを使用していることを認識させて、正しくフルスクリーンが使われるようにする "trick" が存在します。
  +
  +
{{Pkg|wmname}} パッケージをインストールしてください。そして以下の行を {{ic|.ratpoisonrc}} に追加してください:
  +
  +
{{hc|~/.ratpoisonrc|
  +
exec wmname LG3D
  +
}}
  +
  +
これで Java Swing アプリケーションは正しくフルスクリーンになるはずです。
  +
  +
=== マルチワークスペース ===
  +
  +
デフォルトでは ratpoison にはワークスペースが一つしかありませんが、(デフォルトでインストールされる) rpws と呼ばれるスクリプトを使うことで複数のワークスペースが使えます。
  +
  +
{{ic|.ratpoisonrc}} を編集して、以下を追加してください:
  +
  +
{{hc|~/.ratpoisonrc|
  +
exec /usr/bin/rpws init 6 -k
  +
}}
  +
  +
上記の設定でワークスペースが6つになります。デフォルトでは、{{ic|Alt+F1}} で1番目のワークスペース、{{ic|Alt+F2}} で2番目のワークスペースを使用することができます。以下のようにバインドすることも可能です:
  +
  +
bind C-1 exec rpws 1
  +
bind C-2 exec rpws 2
  +
...
  +
  +
上記の設定であれば {{ic|Ctrl+t}} {{ic|Ctrl+1}} でワークスペースを切り替えることができます ({{ic|Ctrl+t}} は Escape キー)。
  +
  +
=== Urxvt と xterm ===
  +
  +
デフォルトでインストールされる Urxvt と xterm はリサイズのヒント情報をウィンドウマネージャに送信します。ほとんどのタイル型ウィンドウマネージャでは機能しますが、ratpoison では上手くいきません。結果的に URxvt/xterm がフォントサイズの倍にリサイズして、隙間が出来てしまう可能性があります。この問題を解決する方法は2つあります。
  +
  +
==== パッチを適用した URxvt をインストールする ====
  +
  +
URxvt を使っている場合、{{AUR|rxvt-unicode-fontspacing-noinc-vteclear-secondarywheel}} パッケージを使うことでリサイズヒントがウィンドウマネージャに送られなくなります。ratpoison では、デフォルトの URxvt の代わりに修正が加えられた URxvt をインストールすることで適切にリサイズするようになります。
  +
  +
==== ボーダーを調整する ====
  +
  +
xterm/urxvt のオプションである internalBorder を使って ratpoison のボーダーを 0 に設定することができます。
  +
  +
解像度とフォントサイズの組み合わせにあわせて、internalBorder の正確な値は何度も試して調べる必要があります (テストする前に ratpoison のボーダーを 0 に設定してください)。ターミナルコマンドラインオプションの -b を使うことで適当な値をテストできます。値がわかったら、以下のファイルに保存してください:
  +
  +
{{hc|~/.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.
  +
}}
  +
{{hc|~/.ratpoisonrc|
  +
set border 0
  +
}}
  +
  +
組み合わせが見つけられない場合、フォントサイズやフォントファミリーも変更してみてください (ボーダーの数字も変わります)。
  +
  +
=== 自動起動 ===
  +
  +
ratpoison が起動したときにプログラムを実行することができます。起動時には {{ic|~/.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 を起動して適当な壁紙を設定してください。そして {{ic|.ratpoisonrc}} で以下を設定:
  +
  +
exec xcompmgr -c -f -D 5 &
  +
exec nitrogen --restore
  +
  +
=== フォーカスはマウスに追従===
  +
  +
Arch linux の ratpoison パッケージは {{ic|/usr/share/ratpoison/}} にビルドスクリプトの {{ic|sloppy.c}} をインストールします。ビルドスクリプトを使うことで ratpoison でマウスポインタにあわせてウィンドウをフォーカスさせることができます。有効化するには:
  +
  +
# cd /usr/share/ratpoison/
  +
# gcc -o sloppy sloppy.c -lX11
  +
# ./sloppy
  +
  +
ratpoison の起動時に有効化させるには、{{ic|~/.ratpoisonrc}} に以下を記述:
  +
exec /usr/share/ratpoison/sloppy
  +
  +
== 参照 ==
  +
  +
* [http://ratpoison.wxcvbn.org/ The Ratpoison wiki]
  +
* [http://stumpwm.svkt.org/cgi-bin/ratpoison.pl?action=browse;id=keys X11 Keys in Ratpoison]
  +
* [http://www.ormiret.com/?q=node/11 Ratpoison config sample]
  +
* [https://bbs.archlinux.org/viewtopic.php?id=68622 Share your Ratpoison (experience) forum thread]
  +
* [https://github.com/jbaber/ratpoison_scripts Collection of scripts for the Ratpoison window manager]
  +
* [https://www.nongnu.org/stumpwm/ Stumpwm - a successor to Ratpoison written in Common lisp]

2023年8月23日 (水) 20:42時点における最新版

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

参照