画面内のスクリプトを呼び出すキーバインディングを付けたい。.screenrc で "bind ^k /path/to/script" を試し、画面をリロードし、Cak と Ck を試しましたが、何も実行されませんでした。
問題のスクリプト:
#!/bin/bash
INDEXFILE="$HOME/bin/screen/themes/theme_index"
# if this is the first time then set
# the index to 0
if [[ ! -e $INDEXFILE ]]
then
echo 0 > $INDEXFILE
fi
THEMENO=`cat $INDEXFILE`
THEMEMAX=5
if [[ $THEMENO -eq $THEMEMAX ]]
then
THEMENO=0
else
THEMENO=`expr $THEMENO + 1`
fi
echo $THEMENO > $INDEXFILE
THEMEFILE=$HOME/bin/screen/themes/theme${THEMENO}
これは、0 ~ 5 の数字を含むテーマインデックス ファイルを参照します。次のような「テーマファイル」と同様に:
#!/bin/bash
# yellow
SESSION=$1
screen -S $SESSION -X caption always "%{= KW}%-w%{= Yk}%n %t%{-}%+w %-="
screen -S $SESSION -X hardstatus alwayslastline "%{= kW} %-= %{= kY}Session: %u%{= kW}%5\` | %{= kY}Host:%{= kW} %H | %{= kY} Uptime:%{= kW} %4\` | %{= kY} MEM:%{= kW} %2\`MB |%{= kY} SW: %{= kW}%3\`MB | %{= kY} DATE:%{= kW} %m/%d/%y %C %A"
基本的に、Gnu Screen テーマの色を変更できます。視覚的にすぐに識別できるように、異なるセッションは異なる色になります。直接呼び出された場合、スクリプトは単独で動作しますが、キー バインディングにアタッチすることを本当に望んでいます。