Risposte:
Questo ti dà un solido blocco giallo (non lampeggiante) come cursore:
echo -n -e '\e[?17;14;224c'
Per maggiori informazioni controlla questi riferimenti: Linuxgazette ed EmacsWiki e il file /usr/src/linux/Documentation/VGA-softcursor.txt
(se presente sul tuo sistema)
echo -e '\033[?16;0;224c'
Esiste una sequenza di controllo standard per disattivare il lampeggiamento del cursore sui terminali.
printf '\033[?12l'
Tuttavia, molti terminali non implementano questa impostazione, quindi continuate a leggere.
Esiste un'impostazione del terminale standard più ampiamente implementata per commutare la visibilità del cursore tra alta visibilità, visibilità normale e invisibilità. Alcuni terminali non fanno differenza tra normale e alto e non vi è alcuna garanzia che l'uno o l'altro possano o non lampeggino. In terminfo , emettere il cvvis
, cnorm
o civis
stringa (es tput cvvis
). Le voci termcap corrispondenti sono vs
, ve
e vi
.
Queste impostazioni non sopravvivranno a un reset del terminale , quindi potresti scoprire che non sopravvive all'avvio di molte applicazioni a schermo intero. È possibile superare questa difficoltà aggiungendo la sequenza di modifica della configurazione del cursore alla stringa di ripristino del terminale.
infocmp >>~/etc/terminfo.txt
. Modificare la descrizione per modificare la rs1
sequenza (ripristino di base), ad es. Sostituire rs1=\Ec
con rs1=\Ec\E[?12l
. Con alcuni programmi e impostazioni, potrebbe essere necessario modificare anche rs2
(ripristino completo). Quindi compilare la descrizione del terminfo con tic ~/etc/terminfo.txt
(questo scrive sotto la directory $TERMINFO
, o ~/.terminfo
se non impostato)./etc/termcap
). Modificare le sequenze is
(ripristino di base) e rs
(ripristino completo) per aggiungere le impostazioni, ad es :is=\Ec\E[?12l:
. Impostare la TERMCAP
variabile di ambiente sul valore modificato (che inizia e termina con :
).Alcuni terminali e altre applicazioni offrono più opzioni:
cursorBlink
risorsa è impostata su true
o l' -bc
opzione è passata sulla riga di comando. La frequenza di lampeggiamento è personalizzabile tramite le risorse cursorOnTime
e cursorOffTime
.printf '\033[17;127?c'
(il primo parametro 17 ti dà il cursore software senza un cursore hardware e il secondo parametro impostato su 127 lo rende essenzialmente video inverso). Vedi sopra per quanto riguarda i reset dei terminali.M-x blink-cursor-mode
attiva / disattiva il lampeggiamento del cursore. Metti il (blink-cursor-mode 0)
tuo ~/.emacs
per spegnerlo. Questa è un'impostazione globale e non si applica in un terminale di testo.Vedi anche la pagina No Blinking di Juri Linkov ( Jurta ) per come disattivare il lampeggiamento in Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox e altro.
In Linux tty puoi usare la sequenza di escape "\e[?48;0;64"
o qualunque cosa ti piaccia, ma questo non funziona in tmux / vim. Tmux / Vim emette un comando "cnorm" all'avvio che per impostazione predefinita contiene un "\e[?0c"
. Puoi vedere che questo annulla gli effetti dell'impostazione sopra. È necessario modificare cnorm alla sequenza precedente per consentire alle applicazioni TUI di ripristinare il cursore in base alle proprie preferenze. Maggiori informazioni su questo da parte di Gilles ma se stai cercando una soluzione rapida prova questo:
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
L'ultimo comando genererà il nuovo terminfo in base al ~/.terminfo
quale dovrebbe essere prelevato automaticamente se si riavvia tmux server / vim.
Mettere
\ 033 [17;? 0; 127c
alla tua variabile PS1 e smetterai di lampeggiare costantemente.
PER ESEMPIO:
export PS1 = '\ 033 [? 17; 0; 127c \ u: \ w \ $'
BLUEBOXNOBLINK="\033[?17;0;60c"
, quindiPS1="\[$BLUEBOXNOBLINK\]\[$BROWN\]\u \[$CYAN\]\W: \[$NC\]"
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
-cursor off
non è proprio quello che viene richiesto, fa sparire il cursore ... setterm -blink off
sembra più promettente, ma influenza il testo, non il cursore vero e proprio.
setterm -cursor off; setterm -cursor on
funziona qui, ma è una soluzione inaccettabile
metto
echo 0 > /sys/class/graphics/fbcon/cursor_blink
in /etc/rc.local e creato un servizio systemd per esso usando le istruzioni online. Tuttavia, ho notato che a volte dopo l'avvio il cursore lampeggia ancora. Sarebbe bene conoscere il modo corretto di disattivare permanentemente il lampeggiamento del cursore tramite sysfs su un sistema systemd moderno, qualcuno ha qualche consiglio? Alcune distribuzioni hanno /etc/sysfs.conf ma sto eseguendo Arch e non trovo questo file in sysfsutils o altrove.
Come soluzione temporanea ho eseguito il seguente comando
sudo zsh -c 'echo -n "\033[?17;0;255c" >> /etc/issue'
Qualche sperimentazione ha dimostrato che il "255c" alla fine funziona meglio di "127c" sopra elencato, produce un cursore bianco anziché grigio.
Per console Linux:
Aggiungi -I "\033[?17;0;255c"
un'opzione alle getty
linee nel tuo /etc/inittab
file. Fare così:
Apri il /etc/inittab
file con un editor di testo. Dovrebbero esserci linee che contengono getty
o agetty
o simili. Un esempio è:
tty1::respawn:/sbin/getty 38400 tty1
Aggiungi -I "\033[?17;0;255c"
a ciascuna getty
riga. Ad esempio, dopo aver aggiunto -I "\033[?17;0;255c"
, la getty
riga sopra dovrebbe apparire come segue:
tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
Riavvia il sistema o, in alternativa, termina tutti i getty
processi.
Una migliore alternativa è quella di mettere ESC[?17;0;255c
in /etc/issue
, invece di mettere a getty
linee. Fare questo usando vi
è il seguente:
/etc/issue
usando vi
./etc/issue
file, inserisci la modalità di inserimento.^V
(ovvero, Ctrlv), quindi premere Esc. Il carattere di escape dovrebbe ora essere inserito.[?17;0;255c
.Un'altra alternativa è mantenere il cursore hardware (anziché utilizzare un cursore software) e smettere di lampeggiare il cursore hardware e renderlo un cursore a blocchi. Fare così:
Aggiungi quanto segue a /etc/inittab
:
# Stop cursor blink on Linux console
::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
Aggiungi ESC[?8c
a /etc/issue
. Fare riferimento a "Alternativa 2" per istruzioni su come eseguire questa operazione.
Tuttavia, con questa opzione, il cursore non diventa bianco brillante. Immagino che ciò sia possibile solo usando il cursore software.
Dopo aver seguito una di queste alternative, otterrai un cursore a blocchi bianco, non lampeggiante.