回答:
これは私の他の答えに関連していますが、ANSIエスケープシーケンスを使用して、現在の端末だけでリバースビデオモードのオンとオフを切り替えます。
あなたのこれを入れてください~/.bashrc
:
_terminal_reverse_video_cwd(){
if [[ $PWD == ~/Desktop ||
$PWD == ~/Desktop/* ]]
then
printf '\e[?5h' # Reverse
else
printf '\e[?5l' # Non-reverse
fi
}
PROMPT_COMMAND="_terminal_reverse_video_cwd"
リバースビデオモードには2つの問題があります。
$PROMPT_COMMAND
端末の色設定を変更することもできますが、現在の端末ウィンドウだけでなく、すべての端末ウィンドウの配色が変更されます。
14.04の場合、以下をに入れます~/.bashrc
。先に進む前に、現在のgconf設定をバックアップすることをお勧めします。
_terminal_colors(){
local dir="/apps/gnome-terminal/profiles/$TERMINAL_PROFILE"
local bg_default="#30300A0A2424"
local bg_xterm="#147A147A147A"
local bg
local fg_default="#FFFFFFFFFFFF"
local fg_xterm="#EEEEEEEEECEC"
local fg
local palette_default="#2E2E34343636:#CCCC00000000:#4E4E9A9A0606:#C4C4A0A00000:#34346565A4A4:#757550507B7B:#060698209A9A:#D3D3D7D7CFCF:#555557575353:#EFEF29292929:#8A8AE2E23434:#FCFCE9E94F4F:#72729F9FCFCF:#ADAD7F7FA8A8:#3434E2E2E2E2:#EEEEEEEEECEC"
local palette_xterm="#000000000000:#CDCB00000000:#0000CDCB0000:#CDCBCDCB0000:#1E1A908FFFFF:#CDCB0000CDCB:#0000CDCBCDCB:#E5E2E5E2E5E2:#4CCC4CCC4CCC:#FFFF00000000:#0000FFFF0000:#FFFFFFFF0000:#46458281B4AE:#FFFF0000FFFF:#0000FFFFFFFF:#FFFFFFFFFFFF"
local palette
if [[ $PWD == ~/Desktop ||
$PWD == ~/Desktop/* ]]
then
palette="$palette_xterm"
bg="$bg_xterm"
fg="$fg_xterm"
else
palette="$palette_default"
bg="$bg_default"
fg="$fg_default"
fi
gconftool-2 --set "$dir/palette" --type=string "$palette"
gconftool-2 --set "$dir/background_color" --type=string "$bg"
gconftool-2 --set "$dir/foreground_color" --type=string "$fg"
}
TERMINAL_PROFILE="" # Your profile here.
PROMPT_COMMAND="_terminal_colors"
16.04以降では、のdconf
代わりに使用するコマンドを調整する必要がありますgconftool-2
。まったく異なる構文とディレクトリ構造です。
上記の複雑さを考えると、PS1プロンプトでpwdの色を設定する方が簡単だと思います。これは前方および後方互換性があり、おそらくクロスプラットフォームでもあります。
_PROMPT_pwd_color(){
if [[ $PWD == ~/Desktop ||
$PWD == ~/Desktop/* ]]
then
printf "\e[1;31m" # Red
else
printf "\e[1;32m" # Green
fi
}
PS1='${debian_chroot:+($debian_chroot)}\[\e[1;32m\]\u@\h\[\e[m\]:\[$(_PROMPT_pwd_color)\]\w\[\e[m\]\n\$ '