Saya memiliki skema warna yang saya suka ketika saya berada di terminal, tetapi saya ssh ke mesin yang saya kerjakan dari berbagai sumber (secara lokal, Putty, netbook saya, dll.) dan saya ingin mempertahankan skema warna yang sama di seluruh . Apakah ini mungkin?
Saya terutama menginginkannya di Putty; sulit untuk mengubah warna Putty.
Jawaban yang Diterima:
Warna di terminal ditentukan dalam dua langkah:
- program yang berjalan di terminal memberitahu terminal untuk menggunakan nomor warna tertentu;
- terminal menerjemahkan setiap nomor warna menjadi nilai warna.
Xterm memiliki escape sequence untuk mengubah nilai warna yang terkait dengan nomor warna. Saya tidak ingat apakah Putty mendukung urutan ini; Saya tahu Mintty melakukannya.
set_color_value () {
printf "\e]4;$1;$2\a"
}
set_color_value 4 '#6495ed' # set color 4 (blue) to CornflowerBlue
Pengaturan ini tidak akan bertahan dari reset terminal. Anda dapat mengatasi kesulitan ini dengan menambahkan urutan perubahan konfigurasi kursor ke string reset terminal Anda.
- Pada sistem berbasis terminfo yang menggunakan ncurses, simpan pengaturan terminfo terminal Anda ke file dengan
infocmp >>~/etc/terminfo.txt
. Edit deskripsi untuk mengubahrs1
(reset dasar), mis. gantirs1=Ec
olehrs1=EcE]4;4;#6495edE\
. Dengan beberapa program dan pengaturan, Anda mungkin perlu mengubahrs2
(reset penuh) juga. Kemudian kompilasi deskripsi terminfo dengantic ~/etc/terminfo.txt
(ini ditulis di bawah direktori$TERMINFO
, atau~/.terminfo
jika tidak disetel). - Pada sistem berbasis termcap, ambil pengaturan termcap dari database termcap Anda (biasanya
/etc/termcap
). Ubahis
(reset dasar) danrs
(reset penuh) urutan untuk menambahkan pengaturan Anda, mis.:is=EcEcE]4;4;#6495edE\:
. SetelTERMCAP
variabel lingkungan ke nilai yang diedit (diawali dan diakhiri dengan:
).
Sekarang Anda dapat menempatkan sesuatu seperti ini di ~/.profile
. Anda :
if [ "$(ps -p $PPID -o comm=)" = sshd ] &&
[ "$TERM" = "xterm" ]; then
set_color_value … # set color scheme
TERMCAP=… # if necessary
fi