O efeito do tipo de letra em negrito (ANSI: CSI 1 m
) parece depender do emulador de terminal. Por exemplo, executando o seguinte script em diferentes emuladores de terminal
#!/bin/sh
echo "TERM = $TERM"
for mode in 0 2 1 '1;2'; do
printf '\033[%s;38;5;%dm\033[48;5;%dm%s\033[0m\n' "$mode" 0 15 "testing ($mode)"
done
dá a seguinte saída
Dos emuladores de terminal testados, apenas xterm
renderiza corretamente o texto em negrito (modo=1). Os outros emuladores de terminal parecem selecionar uma cor mais brilhante para o tipo de letra em negrito (geralmente também combinando isso com um tipo de letra em negrito). Estranhamente, st
produz texto em negrito devidamente colorido quando recebe os parâmetros 1;2
, correspondentes a bold;faint
.
Pensando que talvez esses emuladores de terminal esperem diferentes sequências de controle para fonte em negrito, verifiquei terminfo
, mas encontrei unanimidade
$ for term in xterm-256color st-256color rxvt-unicode-256color tmux-256color; do printf "%-24s" "$term"; TERM=$term tput bold | cat -v; echo; done
xterm-256color ^[[1m
st-256color ^[[1m
rxvt-unicode-256color ^[[1m
tmux-256color ^[[1m
Isso leva à pergunta: quais parâmetros do emulador de terminal controlam o efeito do tipo de letra em negrito? Como evitar a mudança para cores mais brilhantes? Isso pode ser corrigido através Xresources
ou terminfo
personalização? (Como um aparte, existem parâmetros correspondentes para vim
? Ele mostra um comportamento semelhante, que não corresponde necessariamente ao do emulador de terminal em que é executado.)