¿Cómo hago que el cursor se detenga blinking
cuando estoy en un TTY ? (o en cualquier otro lugar).
BONUS Puntos para una configuración universal que detiene el parpadeo del cursor en casi todas partes.
Esto le da un bloque amarillo sólido (sin parpadeo) como cursor:
echo -n -e '\e[?17;14;224c'
Para obtener más información, consulte estas referencias: Linuxgazette y EmacsWiki , así como el archivo /usr/src/linux/Documentation/VGA-softcursor.txt
(si está presente en su sistema)
echo -e '\033[?16;0;224c'
Hay una secuencia de control estándar para apagar el cursor que parpadea en los terminales.
Sin embargo, muchos terminales no implementan esta configuración, así que sigue leyendo.
Existe una configuración de terminal estándar más ampliamente implementada para cambiar la visibilidad del cursor entre alta visibilidad, visibilidad normal e invisibilidad. Algunos terminales no hacen una diferencia entre normal y alto, y no hay garantía de que uno u otro parpadeen o no. En terminfo , emitir el
cvvis
,cnorm
ocivis
cadena (por ejemplotput cvvis
). Las entradas correspondientes de termcap sonvs
,ve
yvi
.Esta configuración no sobrevivirá a un reinicio del terminal , por lo que es posible que no sobreviva al inicio de muchas aplicaciones de pantalla completa. Puede superar esta dificultad agregando la secuencia de cambio de configuración del cursor a la cadena de reinicio de su terminal.
infocmp >>~/etc/terminfo.txt
. Edite la descripción para cambiar lars1
secuencia (restablecimiento básico), por ejemplo, reemplacers1=\Ec
porrs1=\Ec\E[?12l
. Con algunos programas y configuraciones, es posible que también necesite cambiar elrs2
(restablecimiento completo). Luego compile la descripción de terminfo contic ~/etc/terminfo.txt
(esto escribe bajo el directorio$TERMINFO
, o~/.terminfo
si no está configurado)./etc/termcap
). Cambie las secuenciasis
(restablecimiento básico) yrs
(restablecimiento completo) para agregar su configuración, por ejemplo:is=\Ec\E[?12l:
. Establezca laTERMCAP
variable de entorno en el valor editado (comenzando y terminando con:
).Algunos terminales y otras aplicaciones le ofrecen más opciones:
cursorBlink
recurso está configuradotrue
o si la-bc
opción se pasa en la línea de comando. La tasa de parpadeo se puede personalizar a través de los recursoscursorOnTime
ycursorOffTime
.printf '\033[17;127?c'
(el primer parámetro 17 le proporciona el cursor de software sin un cursor de hardware, y el segundo parámetro configurado en 127 lo convierte esencialmente en video inverso). Ver arriba con respecto a los reinicios de terminal.M-x blink-cursor-mode
alterna el parpadeo del cursor. Ponlo(blink-cursor-mode 0)
en tu~/.emacs
para apagarlo. Esta es una configuración global y no se aplica en un terminal de texto.Consulte también la página Sin parpadeo de Juri Linkov (Jurta) para saber cómo desactivar el parpadeo en Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox y más.
fuente
Encontré que esto es más fácil si tienes permisos de root:
Lo puse en el script de inicio de la máquina como
/etc/rc.local
para arch linux.fuente
En linux tty puedes usar la secuencia de escape
"\e[?48;0;64"
o lo que quieras, pero esto no funciona en tmux / vim. Tmux / Vim emite un comando "cnorm" al inicio que por defecto contiene un"\e[?0c"
. Puede ver que esto deshace los efectos de la configuración anterior. Debe cambiar cnorm a la secuencia anterior para que las aplicaciones TUI restablezcan el cursor a su preferencia. Más información sobre esto por Gilles, pero si está buscando una solución rápida, intente esto:El último comando generará el nuevo terminfo bajo el
~/.terminfo
cual se debe recoger automáticamente si reinicia tmux server / vim.fuente
Poner
a su variable PS1 y dejará de parpadear constantemente.
P.EJ:
fuente
BLUEBOXNOBLINK="\033[?17;0;60c"
, luegoPS1="\[$BLUEBOXNOBLINK\]\[$BROWN\]\u \[$CYAN\]\W: \[$NC\]"
fuente
-cursor off
no es exactamente lo que se solicita, hace que el cursor desaparezca ...setterm -blink off
parece más prometedor, pero afecta el texto, no el cursor real.setterm -cursor off; setterm -cursor on
funciona aquí, pero es una solución inaceptablepuse
en /etc/rc.local y creé un servicio systemd para él usando instrucciones en línea. Sin embargo, noté que a veces, después del arranque, el cursor todavía parpadea. Sería bueno saber la forma correcta de desactivar permanentemente el parpadeo del cursor a través de sysfs en un sistema systemd moderno, ¿alguien tiene algún consejo? Algunas distribuciones tienen /etc/sysfs.conf pero estoy ejecutando Arch y no encuentro este archivo en sysfsutils ni en ningún otro lugar.
Como solución temporal ejecuté el siguiente comando
Algunos experimentos demostraron que el '255c' al final funciona mejor que el '127c' mencionado anteriormente, produce un cursor blanco en lugar de gris.
fuente
Para la consola de Linux:
Alternativa 1
Agregue la
-I "\033[?17;0;255c"
opción a lasgetty
líneas en su/etc/inittab
archivo. Para hacerlo:Abra el
/etc/inittab
archivo con un editor de texto. No debe haber líneas que contienengetty
oagetty
o similar. Un ejemplo es:Añadir
-I "\033[?17;0;255c"
a cadagetty
línea. Como ejemplo, después de agregar-I "\033[?17;0;255c"
, lagetty
línea de arriba se vería de la siguiente manera:Reinicie el sistema o, alternativamente, elimine todos los
getty
procesos.Alternativa 2
Una mejor alternativa es poner ,
ESC[?17;0;255c
en/etc/issue
lugar de ponerlo engetty
líneas. Hacer esto usandovi
es como sigue:/etc/issue
usandovi
./etc/issue
archivo, ingrese al modo de inserción.^V
(es decir, Ctrlv) y luego presione Esc. Ahora se debe insertar el carácter de escape.[?17;0;255c
.Alternativa 3
Otra alternativa es mantener el cursor de hardware (en lugar de usar un cursor de software) y dejar de parpadear el cursor de hardware y convertirlo en un cursor de bloque. Para hacerlo:
Agregue lo siguiente a
/etc/inittab
:Añadir
ESC[?8c
a/etc/issue
. Consulte la "Alternativa 2" para obtener instrucciones sobre cómo hacerlo.Sin embargo, con esta opción, el cursor no se vuelve blanco brillante. Supongo que esto solo es posible con el uso del cursor de software.
Después de seguir cualquiera de estas alternativas, obtendrá un cursor de bloque blanco que no parpadea.
Más información
fuente
Esto oculta completamente el cursor.
Para restaurar:
fuente