dreamedge.net

GNU Screenのcaptionにコマンドの出力結果を表示する

2009-09-29T21:10:00+0000

backtickを使うことによって,何らかのコマンドの出力をcaptionに表示できる.
具体的には,.screenrcの中に”backtick id lifespan autorefresh cmd args …”という形で実行するコマンドを書き込んで,captionの設定中で”%id`”で参照する.

backtick 0 0 10 date -u
caption always "%0`"

この場合id=0, lifespan=0, autorefresh=10という設定で,”date -u”を実行する指定になる.結果として10秒に1度captionに時刻が更新されるようになる.

このlifespanとautorefreshの関係が理解しづらいのだが,
lifespanは前にコマンドを実行した内容が,有効でなくなるまでの時間.
autorefreshはcaptionの内容を再作成して更新する時間.
なので,autorefreshの時刻が来ときに前にコマンドを実行してからlifespan以上の秒数が立っていると,コマンドは再実行されているので表示内容が変わる.

lifespan=5, autorefresh=3の場合

            0    5   10   15
   lifespan |----|----|----|
autorefresh |--|--|--|--|--|
            o  x  o  x  o  o

3秒と9秒でのrefreshでは,lifespanが切れてないのでコマンドは実行されない

lifespan=3, autorefresh=5の場合

   lifespan |--|--|--|--|--|
autorefresh |----|----|----|
            o    o    o    o

どのrefresh時点でもlifespanが切れてるのでコマンドが実行される

こんなこと考えるのは面倒くさいので,更新したい秒数があるならlifespan, autorefreshの両方にそれを設定しておけばいい.

このエントリーをはてなブックマークに追加
Bookmark this on Delicious

Screenのコピー/バックスクロール機能

2009-01-01T08:33:00+0000

Screenのエスケープを^Aに設定している場合のコマンド

^A esc or ^A [ : コピー/スクロールバックモードに入る
esc : コピー/スクロールバックモードから出る

コピー/スクロールバックモード中での操作
SPC : コピーの始点を設定
SPC : コピー範囲指定を終了

^A ] : コピーした領域をペースト

このエントリーをはてなブックマークに追加
Bookmark this on Delicious

screenにタイトルを表示する

2008-08-17T22:20:00+0000

GNU screenの説明ページから抜粋.

以下の内容を.screenrcに記載すると,gnome-terminalのタイトル部分等に現在開いているscreenの情報が表示されるようになる.

defhstatus "screen ^E (^Et) | $USER@^EH"
hardstatus off
このエントリーをはてなブックマークに追加
Bookmark this on Delicious