Como faço para parar o cursor blinking
quando em um TTY ? (ou em qualquer outro lugar).
BÔNUS Aponta para uma configuração universal que impede o cursor de 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)
echo -e '\033[?16;0;224c'
Há uma sequência de controle padrão para desligar o cursor piscando nos terminais.
No entanto, muitos terminais não implementam essa configuração, então continue a ler.
Há 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 string
cvvis
,cnorm
oucivis
(por exemplotput cvvis
). As entradas correspondentes do termcap sãovs
,ve
evi
.Essas configurações não sobreviverão a uma redefiniçã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 seu terminal.
infocmp >>~/etc/terminfo.txt
. Edite a descrição para alterar ars1
sequência (redefinição básica), por exemplo, substituars1=\Ec
porrs1=\Ec\E[?12l
. Em alguns programas e configurações, pode ser necessário alterar também ars2
(redefinição total). Em seguida, compile a descrição terminfo comtic ~/etc/terminfo.txt
(isto grava no diretório$TERMINFO
, ou~/.terminfo
se não estiver definido)./etc/termcap
). Altere as seqüênciasis
(redefinição básica) ers
(redefinição completa) para anexar suas configurações, por exemplo:is=\Ec\E[?12l:
. Defina aTERMCAP
variável de ambiente para o valor editado (começando e terminando com:
).Alguns terminais e outros aplicativos oferecem mais opções:
cursorBlink
recurso estiver definido comotrue
ou se a-bc
opção for passada na linha de comando. A taxa de piscada é personalizável através dosrecursoscursorOnTime
ecursorOffTime
.printf '\033[17;127?c'
(o primeiro parâmetro 17 fornece o cursor do software sem o cursor do 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. Coloque(blink-cursor-mode 0)
no seu~/.emacs
para desligá-lo. Essa é uma configuração global e não se aplica a um terminal de texto.Veja também a página No piscar de Juri Linkov (Jurta) para saber como desativar o piscar em Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox e muito mais.
fonte
Achei isso mais fácil se você tiver permissões de root:
Eu o coloquei no script de inicialização da máquina, como
/etc/rc.local
no arch linux.fonte
No linux tty, você pode usar a sequência de escape
"\e[?48;0;64"
ou o que 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:O último comando irá gerar o novo terminfo sob o
~/.terminfo
qual deve ser escolhido automaticamente se você reiniciar o tmux server / vim.fonte
Colocar
à sua variável PS1 e você parará de piscar constantemente.
POR EXEMPLO:
fonte
BLUEBOXNOBLINK="\033[?17;0;60c"
, entãoPS1="\[$BLUEBOXNOBLINK\]\[$BROWN\]\u \[$CYAN\]\W: \[$NC\]"
fonte
-cursor off
não é exatamente o que é solicitado, faz o cursor desaparecer ...setterm -blink off
parece mais promissor, mas afeta o texto, não o cursor real.setterm -cursor off; setterm -cursor on
faz o trabalho aqui, mas é uma solução inaceitávelEu coloco
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 o /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
Algumas experiências mostraram que o '255c' no final funciona melhor que o '127c' listado acima, produz um cursor branco em vez de cinza.
fonte
Para console Linux:
Alternativa 1
Adicionar
-I "\033[?17;0;255c"
opção àsgetty
linhas do seu/etc/inittab
arquivo. Para fazer isso:Abra o
/etc/inittab
arquivo com um editor de texto. Deve haver linhas que contenhamgetty
ouagetty
ou similares. Um exemplo é:Adicione
-I "\033[?17;0;255c"
a cadagetty
linha. Como exemplo, depois de adicionar-I "\033[?17;0;255c"
, agetty
linha acima ficaria da seguinte maneira:Reinicie o sistema ou, alternativamente, mate todos os
getty
processos.Alternativa 2
Uma alternativa melhor é inserir ,
ESC[?17;0;255c
em/etc/issue
vez de colocá-lo emgetty
linhas. Fazer isso usandovi
é o seguinte:/etc/issue
usandovi
./etc/issue
arquivo, entre no modo de inserção.^V
(ou seja Ctrlv) e, em seguida, pressione Esc. O caractere de escape agora deve ser inserido.[?17;0;255c
.Alternativa 3
Outra alternativa é manter o cursor do hardware (em vez de usar um 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
:Adicionar
ESC[?8c
a/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.
Outras informações
fonte
Isso oculta completamente o cursor.
Para recuperar:
fonte