setf
terbatas hanya 8 warna. setaf
dapat mengatur hingga 256 warna.
(semua informasi berikut akan spesifik untuk urxvt, karena itu adalah terminal saya, tetapi infonya akan serupa dengan, jika tidak sama, seperti terminal lainnya)
Keduanya setf
dan setaf
memberikan kode pelarian yang berbeda. Anda dapat melihatnya di berikut ini:
# tput setf 2 | xxd
0000000: 1b5b 3332 6d .[32m
# tput setaf 2 | xxd
0000000: 1b5b 3338 3b35 3b32 6d .[38;5;2m
Dari urxvt(7)
halaman manual saya :
"ESC [ Pm m"
Character Attributes (SGR)
...
Pm = 30 / 40 fg/bg Black
Pm = 31 / 41 fg/bg Red
Pm = 32 / 42 fg/bg Green
Pm = 33 / 43 fg/bg Yellow
Pm = 34 / 44 fg/bg Blue
Pm = 35 / 45 fg/bg Magenta
Pm = 36 / 46 fg/bg Cyan
Pm = 37 / 47 fg/bg White
Pm = 38;5 / 48;5 set fg/bg to colour #m (ISO 8613-6)
Jadi dari xxd
output di atas , kita bisa melihat yang tput setf 2
menggunakan Pm = 32
, yang akan mengatur warna menjadi hijau. tput setaf 2
di sisi lain menggunakan Pm = 38;5
, yang akan mewakili kode warna yang didefinisikan dalam ISO 8613-6 (juga hijau).
Dalam ISO 8613-6, warna 0x00-0x07 sama dengan warna standar, dan 0x08 - 0x0f adalah warna standar "tebal". Setelah Anda mendapatkan 0x10-0xff Anda mendapatkan warna baru.
Dicuri dari wikipedia :
0x00-0x07: standard colors (as in ESC [ 30..37 m)
0x08-0x0f: high intensity colors (as in ESC [ 90..97 m)
0x10-0xe7: 6*6*6=216 colors: 16 + 36*r + 6*g + b (0≤r,g,b≤5)
0xe8-0xff: grayscale from black to white in 24 steps
terminfo(5)
halaman manual yang datang denganncurses
detail.