Como faço para o cursor parar blinking
quando em um TTY ? (ou em qualquer outro lugar).
Pontos BÔNUS para uma configuração universal que faz o cursor piscar em quase todos os lugares.
Isso fornece um bloco amarelo sólido (sem piscar) como um cursor:
echo -n -e '\e[?17;14;224c'
Para mais informações, verifique estas referências: Linuxgazette e EmacsWiki , bem como o arquivo /usr/src/linux/Documentation/VGA-softcursor.txt
(se presente no seu sistema)
Existe uma sequência de controle padrão para desligar o cursor piscando nos terminais.
printf '\033[?12l'
No entanto, muitos terminais não implementam essa configuração, então continue a ler.
Existe uma configuração de terminal padrão mais amplamente implementada para alternar a visibilidade do cursor entre alta visibilidade, visibilidade normal e invisibilidade. Alguns terminais não fazem diferença entre normal e alto e não há garantia de que um ou outro pisque ou não. Em terminfo , emita a sequência cvvis
, cnorm
ou civis
(por exemplo, tput cvvis
). As entradas termcap correspondentes são vs
, ve
e vi
.
Essas configurações não sobreviverão a uma reinicialização do terminal ; portanto, você pode achar que ela não sobrevive ao lançamento de muitos aplicativos de tela cheia. Você pode superar essa dificuldade adicionando a sequência de alteração da configuração do cursor à string de redefinição do terminal.
infocmp >>~/etc/terminfo.txt
. Edite a descrição para alterar o rs1
(redefinição básica) sequência, p. substituir rs1=\Ec
de rs1=\Ec\E[?12l
. Em alguns programas e configurações, pode ser necessário alterar o rs2
(redefinição total) também. Em seguida, compile a descrição terminfo com tic ~/etc/terminfo.txt
(isso é gravado no diretório $TERMINFO
ou ~/.terminfo
se não estiver definido)./etc/termcap
). Altere as seqüências is
(redefinição básica) e rs
(redefinição completa) para anexar suas configurações, por exemplo :is=\Ec\E[?12l:
. Defina a variável de ambiente TERMCAP
para o valor editado (começando e terminando com :
).Alguns terminais e outros aplicativos oferecem mais opções:
cursorBlink
estiver definido como true
ou o -bc
opção é passada na linha de comando. A taxa de piscada é personalizável através dos recursos cursorOnTime
e cursorOffTime
.printf '\033[17;127?c'
(o primeiro parâmetro 17 fornece o cursor do software sem um cursor de hardware, e o segundo parâmetro definido como 127 torna o vídeo essencialmente inverso). Veja acima sobre redefinições de terminal.M-x blink-cursor-mode
alterna o piscar do cursor. Colocar (blink-cursor-mode 0)
na tua ~/.emacs
para desligá-lo. Essa é uma configuração global e não se aplica a um terminal de texto.Consulte também a página Sem piscar de Juri Linkov (Jurta) para saber como desativar o piscar em Lesstif, Tk, Gtk ( Gnome), Qt (KDE), Firefox e muito mais.
Achei isso mais fácil se você tiver permissões de root:
~$ echo 0 > /sys/class/graphics/fbcon/cursor_blink
Coloquei no script de inicialização da máquina como /etc/rc.local
para o Arch Linux.
No linux tty, você pode usar a sequência de escape "\e[?48;0;64"
ou o que você quiser, mas isso não funciona no tmux/vim. O Tmux/Vim emite um comando "cnorm" na inicialização, que por padrão contém um "\e[?0c"
. Você pode ver que isso desfaz os efeitos da configuração acima. Você precisa alterar o cnorm para a sequência acima para que os aplicativos TUI redefinam o cursor conforme sua preferência. Mais informações sobre isso por Gilles, mas se você estiver procurando uma solução rápida, tente o seguinte:
infocmp linux > /tmp/linux-terminfo
# Replace the last escape sequence here with your colors and settings
sed -i 's/cnorm=\\E\[?25h\\E\[?0c/cnorm=\\E[?25h\\E?48;0;64c/' /tmp/linux-terminfo
tic /tmp/linux-terminfo
O último comando irá gerar o novo terminfo em ~/.terminfo
, que deve ser escolhido automaticamente se você reiniciar o tmux server/vim.
Colocar
\ 033 [? 17; 0; 127c
à sua variável PS1 e você parará de piscar constantemente.
POR EXEMPLO:
exportar PS1 = '\ 033 [? 17; 0; 127c\u:\w\$'
Eu coloco
echo 0 > /sys/class/graphics/fbcon/cursor_blink
em /etc/rc.local e criou um serviço systemd para ele usando instruções online. No entanto, notei que, algumas vezes após a inicialização, o cursor ainda está piscando. Seria bom saber a maneira correta de desligar permanentemente o cursor piscando via sysfs em um sistema systemd moderno, alguém tem alguma dica? Algumas distribuições têm /etc/sysfs.conf, mas estou executando o Arch e não encontro esse arquivo no sysfsutils ou em outro local.
Como correção temporária, executei o seguinte comando
Sudo zsh -c 'echo -n "\033[?17;0;255c" >> /etc/issue'
Algumas experiências mostraram que o '255c' no final funciona melhor que o '127c' listado acima, produz um cursor branco em vez de cinza.
Isso oculta completamente o cursor.
tput civis
Restaurar:
tput cnorm
Sudo cp /etc/issue /etc/issue.tmp
setterm -cursor off | Sudo tee /etc/issue
cat /etc/issue.tmp | Sudo tee --append /etc/issue
Sudo rm /etc/issue.tmp
Sudo reboot
Para console do Linux:
Adicionar -I "\033[?17;0;255c"
opção para getty
linhas no seu /etc/inittab
Arquivo. Para fazer isso:
Abra o /etc/inittab
arquivo com um editor de texto. Deve haver linhas que contenham getty
ou agetty
ou similares. Um exemplo é:
tty1::respawn:/sbin/getty 38400 tty1
Adicionar -I "\033[?17;0;255c"
para cada getty
linha. Como exemplo, depois de adicionar -I "\033[?17;0;255c"
, a linha getty
acima teria a seguinte aparência:
tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
Reinicie o sistema ou, alternativamente, mate todos os processos getty
.
Uma alternativa melhor é colocar ESC[?17;0;255c
no /etc/issue
, em vez de colocá-lo em getty
linhas. Fazendo isso usando vi
é o seguinte:
/etc/issue
usando vi
./etc/issue
, entre no modo de inserção.^V
(isso é, Ctrlv), então aperte Esc. O caractere de escape agora deve ser inserido.[?17;0;255c
.Outra alternativa é manter o cursor do hardware (em vez de usar o cursor do software) e parar de piscar o cursor do hardware e torná-lo um cursor de bloco. Para fazer isso:
Adicione o seguinte a /etc/inittab
:
# Stop cursor blink on Linux console
::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
Adicionar ESC[?8c
para /etc/issue
. Consulte a "Alternativa 2" para obter instruções sobre como fazer isso.
No entanto, com esta opção, o cursor não fica branco brilhante. Eu acho que isso só é possível com o uso do cursor do software.
Depois de seguir qualquer uma dessas alternativas, você obterá um cursor de bloco branco e sem piscar.