しばらく.screenrcファイルを編集/作成していませんが、これは私が現在使用しているものです:
# Turn off the screen startup message
startup_message off
# Define format of bottom navigation/status/date/etc. line
hardstatus alwayslastline "%{yk}[ %H ] %-Lw%50>%{gk}(%{-}%n-%t%{gk})%{-}%+Lw%< %=%{yk}[ %c %d.%m.%Y ]"
# Increase scrollback buffer to 30000 lines
defscrollback 30000
正直に言って、hardstatus行のすべてが何を表しているのか覚えていませんが、ログインしているユーザーに基づいてホスト名の色を変更する方法を知りたいのですが、これは可能ですか?現在、どのユーザーでもログインしていると、ホスト名は黄色になります。でもルートなら赤にしたいです。これは私の.bashrcファイルで変更できるものですか?これを.bashrcに入れて、新しい画面ウィンドウ名を、接続しているサーバーのホスト名に変更します。
# Set screen window title
case "$TERM" in
screen)
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
;;
esac
助けてくれてありがとう!
編集
これを.bashrcファイルに追加しようとしましたが、ANSIコードが画面のハードステータスのホスト名の前に配置されています。
case "$TERM" in
screen)
if (( $UID == 0 )); then
PROMPT_COMMAND='echo -ne "\033k$FRED$HOSTNAME$RS\033\\"'
else
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
fi
;;
esac
編集2
実際のANSIカラーコード(ex:)\[\033[31m\]
と画面エスケープコード(ex:)%kr
をmyの上記のステートメントに追加しました.bashrc
が、どちらも機能しませんでした。
編集3
これをプロンプトコマンドラインとして使用すると、PS1の前にホスト名が赤で表示されます。
PROMPT_COMMAND='echo -ne "\033[31m$HOSTNAME\033\\"'
次のプロンプトを使用すると、ウィンドウ名がホスト名に変わります(YES!)。しかし、色はデフォルトのままです(NO!):
PROMPT_COMMAND='echo -ne "\033[31m\033k$HOSTNAME\033\\"'
私はまた、スクリーンカラーエスケープ(%kr)で\033[31m
(そして[31m
)を置き換えてみましたが、それも機能しませんでした。