Odpowiedzi:
To daje ci stały żółty blok (nie mruga) jako kursor:
echo -n -e '\e[?17;14;224c'
Aby uzyskać więcej informacji, sprawdź następujące odniesienia: Linuxgazette i EmacsWiki, a także plik /usr/src/linux/Documentation/VGA-softcursor.txt
(jeśli jest obecny w twoim systemie)
echo -e '\033[?16;0;224c'
Istnieje standardowa sekwencja kontrolna, która wyłącza miganie kursora na zaciskach.
printf '\033[?12l'
Jednak wiele terminali nie implementuje tego ustawienia, więc czytaj dalej.
Istnieje szerzej zaimplementowane standardowe ustawienie terminala do przełączania widoczności kursora między dobrą widocznością, normalną widocznością i niewidzialnością. Niektóre terminale nie robią różnicy między normalnym a wysokim, i nie ma gwarancji, że jedno lub drugie będzie mrugać lub nie. W terminfo wydzielają się cvvis
, cnorm
ani civis
łańcuch (na przykład tput cvvis
). Odpowiednie termcap wpisy są vs
, ve
i vi
.
To ustawienie nie przetrwa resetu terminala , więc może się okazać, że nie przetrwa on uruchomienia wielu aplikacji pełnoekranowych. Możesz pokonać tę trudność, dodając sekwencję zmiany konfiguracji kursora do łańcucha resetowania terminala.
infocmp >>~/etc/terminfo.txt
. Edytuj opis, aby zmienić rs1
sekwencję (resetowanie podstawowe), np. Zamień rs1=\Ec
na rs1=\Ec\E[?12l
. W przypadku niektórych programów i ustawień konieczna może być również zmiana rs2
(pełny reset). Następnie skompiluj opis terminfo z tic ~/etc/terminfo.txt
(zapisuje to w katalogu $TERMINFO
lub ~/.terminfo
jeśli nie jest ustawiony)./etc/termcap
). Zmień sekwencje is
(podstawowy reset) i rs
(pełny reset), aby dołączyć ustawienia, np :is=\Ec\E[?12l:
. Ustaw TERMCAP
zmienną środowiskową na edytowaną wartość (zaczynającą się i kończącą na :
).Niektóre terminale i inne aplikacje dają więcej opcji:
cursorBlink
zasób jest ustawiony true
lub -bc
opcja jest przekazywane w linii poleceń. Szybkość migania można dostosować za pomocą zasobów cursorOnTime
i cursorOffTime
.printf '\033[17;127?c'
(pierwszy parametr 17 daje kursor programowy bez kursora sprzętowego, a drugi parametr ustawiony na 127 powoduje, że jest to zasadniczo odwrotne wideo). Patrz wyżej dotyczące resetowania terminali.M-x blink-cursor-mode
przełączanie kursora mruga. Umieścić (blink-cursor-mode 0)
w twoich ~/.emacs
, aby go wyłączyć. Jest to ustawienie globalne i nie ma zastosowania w terminalu tekstowym.Zobacz także stronę No Blinking Jurija Linkova (Jurta), aby dowiedzieć się, jak wyłączyć miganie w Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox i innych.
W Linuksie tty możesz użyć sekwencji ucieczki "\e[?48;0;64"
lub cokolwiek zechcesz, ale to nie działa w tmux / vim. Tmux / Vim wydaje komendę „cnorm” podczas uruchamiania, która domyślnie zawiera "\e[?0c"
. Widać, że to cofa efekty powyższego ustawienia. Musisz zmienić cnorm na powyższą sekwencję, aby aplikacje TUI mogły zresetować kursor do twoich preferencji. Więcej informacji na ten temat autorstwa Gillesa, ale jeśli szukasz szybkiej poprawki, spróbuj tego:
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
Ostatnie polecenie wygeneruje nowe terminfo, pod ~/.terminfo
którym powinno być pobierane automatycznie po ponownym uruchomieniu serwera / vim.
Położyć
\ 033 [? 17; 0; 127c
do zmiennej PS1, a przestaniesz ciągle migać.
NA PRZYKŁAD:
eksport PS1 = '\ 033 [? 17; 0; 127c \ u: \ w \ $'
BLUEBOXNOBLINK="\033[?17;0;60c"
, a następniePS1="\[$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
nie jest do końca tym, o co się prosi, powoduje, że kursor znika ... setterm -blink off
wydaje się bardziej obiecujący, ale wpływa na tekst, a nie kursor.
setterm -cursor off; setterm -cursor on
działa tutaj, ale jest to niedopuszczalne obejście
włożyłem
echo 0 > /sys/class/graphics/fbcon/cursor_blink
w /etc/rc.local i utworzył dla niego usługę systemową, korzystając z instrukcji online. Zauważyłem jednak, że czasami po uruchomieniu kursor nadal miga. Dobrze byłoby znać prawidłowy sposób trwałego wyłączenia migania kursora za pomocą sysfs na nowoczesnym systemie systemowym, czy ktoś ma jakieś wskazówki? Niektóre dystrybucje mają /etc/sysfs.conf, ale korzystam z Arch i nie mogę znaleźć tego pliku w sysfsutils ani gdzie indziej.
Jako tymczasową poprawkę uruchomiłem następujące polecenie
sudo zsh -c 'echo -n "\033[?17;0;255c" >> /etc/issue'
Niektóre eksperymenty wykazały, że „255c” na końcu działa lepiej niż „127c” wymieniony powyżej, daje biały, a nie szary kursor.
W przypadku konsoli Linux:
Dodaj -I "\033[?17;0;255c"
opcję do getty
linii w /etc/inittab
pliku. Aby to zrobić:
Otwórz /etc/inittab
plik za pomocą edytora tekstu. Nie powinno być linie, które zawierają getty
lub agetty
lub podobny. Przykładem jest:
tty1::respawn:/sbin/getty 38400 tty1
Dodaj -I "\033[?17;0;255c"
do każdej getty
linii. Jako przykład, po dodaniu -I "\033[?17;0;255c"
The getty
linia powyżej będzie wyglądać następująco:
tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
Uruchom ponownie system lub ewentualnie zabij wszystkie getty
procesy.
Lepszym rozwiązaniem jest umieszczenie ESC[?17;0;255c
w /etc/issue
, zamiast wprowadzenie go do getty
linii. Wykonanie tego przy użyciu vi
wygląda następująco:
/etc/issue
za pomocą vi
./etc/issue
pliku przejdź do trybu wstawiania.^V
(to znaczy Ctrlv), a następnie naciśnij Esc. Należy teraz wstawić znak zmiany znaczenia.[?17;0;255c
.Inną alternatywą jest utrzymanie kursora sprzętowego (zamiast używania kursora programowego) i przestanie mrugać kursorem sprzętowym i uczynienie go kursorem blokowym. Aby to zrobić:
Dodaj następujące elementy do /etc/inittab
:
# Stop cursor blink on Linux console
::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
Dodaj ESC[?8c
do /etc/issue
. Instrukcje na ten temat znajdują się w „Alternative 2”.
Jednak przy tej opcji kursor nie staje się jasnobiały. Myślę, że jest to możliwe tylko przy użyciu kursora programowego.
Po zastosowaniu dowolnej z tych opcji otrzymasz biały, nie mrugający kursor blokowy.