O cursor é desenhado pelo terminal ou emulador de terminal, não pelos aplicativos em execução dentro deles. Alguns deles têm disposição para permitir que o usuário altere a forma ou os atributos do cursor usando sequências de escape.
Alterar a forma do cursor independentemente do tipo do terminal pode ser feito usando os recursos cnorm (cursor normal), civis (cursor invisível) ou cvvis (cursor muito visível) terminfo (por exemplo, usando o comando tput ). No entanto, você não tem nenhuma garantia de que cnorm ou cvvis seja um cursor bloco .
Para afetar o piscar de olhos, a forma, a cor e o comportamento do cursor especificamente, isso terá que ser feito em uma base por terminal.
No Linux em PCs x86 VGA e consoles virtuais de buffer de quadro, ele pode ser controlado usando seqüências de escape como:
printf '\e[?x;y;zc'
Na forma mais simples:
printf '\e[?xc'
Você define a altura do cursor onde x varia de 1 (cursor invisível) a 8 (bloco inteiro), 0 dando a você o padrão (atualmente, o mesmo que 2 ).
Então:
printf '\e[?8c'
lhe dará um cursor de bloco completo.
Na verdade, é isso que tput cvvis envia (enquanto tput cnorm envia \e[0c e civis \e[1c ).
Ao usar o formulário de 3 parâmetros, o comportamento irá variar com o driver de vídeo subjacente. Por exemplo, para obter um tipo de cursor de bloco cinza não intermitente, como sugere a sua pergunta, você faria:
printf '\e[?81;128;240c'
Em um console PC VGA Linux. E:
printf '\e[?17;30;254c'
Em um console Linux de buffer de quadros.
Agora, isso era específico do Linux, outros terminais têm maneiras diferentes de alterar a forma do cursor. Por exemplo, xterm e rxvt e suas derivadas usam as mesmas seqüências do terminal VT520 para definir a forma do cursor:
printf '\e[x q'
Em que x recebe um valor de 1 a 4 para bloco piscante, bloco fixo, sublinhado intermitente, sublinhado constante.
E a cor pode ser definida com:
printf '\e]12;%s\a' 'colour'
Assim, seu cursor de bloco fixo e cinza pode ser alcançado com:
printf '\e[2 q\e]12;grey\a'
Para a maioria dos emuladores de terminal X11, você também pode alterar os atributos do cursor via opções de linha de comando para o comando que inicia o emulador ou via arquivos de configuração ou recursos do X11, ou menus.
Por exemplo, para xterm , você tem a opção -uc/+uc para o cursor sublinhado , -ms para sua cor e cursorBlink , cursorColor , cursorOffTime , cursorOnTime , cursorUnderLine , alwaysHighlight recursos para configurá-lo.
E o menu padrão na Ctrl + clique esquerdo tem uma opção para ativar ou desativar a intermitência.