Wie bremse ich den Cursor blinking
in einem TTY ? (oder irgendwo anders).
BONUS Punkte für eine universelle Einstellung, bei der der Cursor fast überall blinkt.
Dies gibt Ihnen einen durchgehend gelben Block (nicht blinkend) als Cursor:
echo -n -e '\e[?17;14;224c'
Weitere Informationen finden Sie in den folgenden Quellen : Linuxgazette und EmacsWiki sowie in der Datei /usr/src/linux/Documentation/VGA-softcursor.txt
(falls auf Ihrem System vorhanden).
echo -e '\033[?16;0;224c'
Es gibt eine Standardsteuersequenz , um das Blinken des Cursors auf den Terminals auszuschalten.
Viele Terminals implementieren diese Einstellung jedoch nicht, lesen Sie weiter.
Es gibt eine weiter verbreitete Standard-Terminaleinstellung zum Umschalten der Cursor-Sichtbarkeit zwischen hoher Sichtbarkeit, normaler Sichtbarkeit und Unsichtbarkeit. Einige Terminals unterscheiden nicht zwischen normal und hoch, und es gibt keine Garantie, dass das eine oder andere blinkt oder nicht. In term emittiert den
cvvis
,cnorm
odercivis
Zeichenfolge (ztput cvvis
). Die entsprechenden Termcap- Einträge sindvs
,ve
undvi
.Diese Einstellung übersteht ein Zurücksetzen des Terminals nicht , sodass Sie möglicherweise feststellen, dass sie das Starten vieler Vollbildanwendungen nicht übersteht. Sie können diese Schwierigkeit überwinden, indem Sie die Änderungssequenz der Cursorkonfiguration zur Rücksetzzeichenfolge Ihres Terminals hinzufügen.
infocmp >>~/etc/terminfo.txt
. Bearbeiten Sie die Beschreibung, um diers1
Reihenfolge (Grundeinstellung) zu ändern , z . B. Ersetzenrs1=\Ec
durchrs1=\Ec\E[?12l
. Bei einigen Programmen und Einstellungen müssen Sie möglicherweise auch dasrs2
(vollständige Zurücksetzen) ändern . Dann kompilieren Sie die terminfo-Beschreibung mittic ~/etc/terminfo.txt
(schreibt unter das Verzeichnis$TERMINFO
oder~/.terminfo
wenn nicht gesetzt)./etc/termcap
) aus Ihrer termcap-Datenbank abrufen . Ändern Sie die Sequenzenis
(Basic Reset) undrs
(Full Reset), um Ihre Einstellungen anzufügen, z:is=\Ec\E[?12l:
. Setzen Sie dieTERMCAP
Umgebungsvariable auf den bearbeiteten Wert (beginnend und endend mit:
).Einige Terminals und andere Anwendungen bieten Ihnen weitere Optionen:
cursorBlink
Ressource auf festgelegt isttrue
oder die-bc
Option in der Befehlszeile übergeben wird. Die Blinkrate kann über diecursorOnTime
und -Ressourcen angepasst werdencursorOffTime
.printf '\033[17;127?c'
(mit dem ersten Parameter 17 erhalten Sie den Softwarecursor ohne Hardwarecursor, und mit dem zweiten Parameter 127 wird das Video im Wesentlichen invertiert). Informationen zum Zurücksetzen der Klemmen finden Sie oben.M-x blink-cursor-mode
schaltet die Cursor blinkt. Setzen(blink-cursor-mode 0)
Sie es ein~/.emacs
, um es auszuschalten. Dies ist eine globale Einstellung und gilt nicht in einem Textterminal.Siehe auch Juri Linkov (Jurta) 's kein Blinken Seite , wie in Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox und mehr auszuschalten blinken.
quelle
Ich fand das einfacher, wenn Sie root-Rechte haben:
Ich habe es in das Maschinenstart-Skript wie
/etc/rc.local
für Arch Linux eingefügt.quelle
In Linux können Sie die Escape-Sequenz verwenden
"\e[?48;0;64"
oder was auch immer Sie möchten, aber dies funktioniert nicht in tmux / vim. Tmux / Vim gibt beim Start einen "cnorm" -Befehl aus, der standardmäßig a enthält"\e[?0c"
. Sie können sehen, dass dies die Auswirkungen der obigen Einstellung rückgängig macht. Sie müssen cnorm in die oben angegebene Reihenfolge ändern, damit die TUI-Anwendungen den Cursor auf Ihre Präferenz zurücksetzen können. Weitere Informationen hierzu von Gilles, aber wenn Sie nach einer schnellen Lösung suchen, versuchen Sie Folgendes:Der letzte Befehl generiert das neue terminfo, unter
~/.terminfo
dem automatisch abgeholt werden soll, wenn Sie tmux server / vim neu starten.quelle
Stellen
auf deine PS1-Variable und du hörst auf zu blinken.
Z.B:
quelle
BLUEBOXNOBLINK="\033[?17;0;60c"
dannPS1="\[$BLUEBOXNOBLINK\]\[$BROWN\]\u \[$CYAN\]\W: \[$NC\]"
quelle
-cursor off
ist nicht ganz das, wonach gefragt wird, es lässt den Cursor verschwinden ...setterm -blink off
scheint vielversprechender, aber es betrifft Text, nicht den eigentlichen Cursor.setterm -cursor off; setterm -cursor on
funktioniert hier, aber es ist eine inakzeptable Problemumgehungich setze
in /etc/rc.local und erstellte einen systemd-Dienst dafür unter Verwendung von Online-Anweisungen. Allerdings ist mir aufgefallen, dass der Cursor manchmal nach dem Booten noch blinkt. Es wäre gut zu wissen, wie man das Blinken des Cursors über sysfs auf einem modernen System dauerhaft ausschaltet. Hat jemand irgendwelche Tipps? Einige Distributionen haben /etc/sysfs.conf, aber ich verwende Arch und finde diese Datei nicht in sysfsutils oder anderswo.
Als vorübergehende Korrektur habe ich den folgenden Befehl ausgeführt
Einige Experimente haben gezeigt, dass der '255c' am Ende besser funktioniert als der oben aufgeführte '127c'. Er erzeugt eher einen weißen als einen grauen Cursor.
quelle
Für Linux Konsole:
Alternative 1
Fügen Sie
-I "\033[?17;0;255c"
dengetty
Zeilen in Ihrer/etc/inittab
Datei eine Option hinzu . Um dies zu tun:Öffnen Sie die
/etc/inittab
Datei mit einem Texteditor. Es sollte Linien sein , die enthaltengetty
oderagetty
oder ähnliches. Ein Beispiel ist:-I "\033[?17;0;255c"
Zu jedergetty
Zeile hinzufügen . Als Beispiel würde-I "\033[?17;0;255c"
diegetty
obige Zeile nach dem Hinzufügen wie folgt aussehen:Starten Sie das System neu oder beenden Sie alternativ alle
getty
Prozesse.Alternative 2
Eine bessere Alternative ist zu setzen
ESC[?17;0;255c
in/etc/issue
, anstatt sie zu setzengetty
Linien. Dies zu tunvi
ist wie folgt:/etc/issue
mitvi
./etc/issue
Datei in den Einfügemodus.^V
(d. H.) Und Ctrlvdann Esc. Das Escape-Zeichen sollte jetzt eingefügt werden.[?17;0;255c
.Alternative 3
Eine andere Alternative besteht darin, den Hardware-Cursor zu belassen (anstatt einen Software-Cursor zu verwenden) und das Blinken des Hardware-Cursors zu beenden und ihn zu einem Block-Cursor zu machen. Um dies zu tun:
Fügen Sie Folgendes hinzu zu
/etc/inittab
:Hinzufügen
ESC[?8c
zu/etc/issue
. Anweisungen hierzu finden Sie unter "Alternative 2".Mit dieser Option wird der Cursor jedoch nicht hellweiß. Ich denke, dies ist nur mit dem Software-Cursor möglich.
Wenn Sie einer dieser Alternativen gefolgt sind, wird ein weißer, nicht blinkender Blockcursor angezeigt.
Weitere Informationen
quelle
Dadurch wird der Cursor vollständig ausgeblendet.
Wiederherstellen:
quelle