Ответы:
Это дает вам сплошной желтый блок (без связи) в качестве курсора:
echo -n -e '\e[?17;14;224c'
Для получения дополнительной информации проверьте следующие ссылки: Linuxgazette и EmacsWiki, а также файл /usr/src/linux/Documentation/VGA-softcursor.txt
(если имеется в вашей системе)
echo -e '\033[?16;0;224c'
Существует стандартная последовательность управления для отключения мигания курсора на клеммах.
printf '\033[?12l'
Однако многие терминалы не поддерживают эту настройку, поэтому читайте дальше.
Существует более широко реализованная стандартная настройка терминала для переключения видимости курсора между высокой видимостью, нормальной видимостью и невидимостью. Некоторые терминалы не делают различий между нормальным и высоким, и нет никакой гарантии, что один или другой будет или не будет мигать. В TERMINFO , испускают cvvis
, cnorm
или civis
строку (например , tput cvvis
). Соответствующие записи termcap есть vs
, ve
и vi
.
Эти настройки не сохранятся после сброса терминала , поэтому вы можете обнаружить, что они не выдерживают запуск многих полноэкранных приложений. Вы можете преодолеть эту трудность, добавив последовательность изменения конфигурации курсора в строку сброса вашего терминала.
infocmp >>~/etc/terminfo.txt
. Отредактируйте описание, чтобы изменить последовательность rs1
(основной сброс), например, заменить rs1=\Ec
на rs1=\Ec\E[?12l
. В некоторых программах и настройках может потребоваться изменить rs2
(полный сброс). Затем скомпилируйте описание terminfo с помощью tic ~/etc/terminfo.txt
(это записывает в каталог $TERMINFO
или, ~/.terminfo
если не установлено)./etc/termcap
). Измените последовательности is
(основной сброс) и rs
(полный сброс), чтобы добавить свои настройки, например :is=\Ec\E[?12l:
. Установите для TERMCAP
переменной среды измененное значение (начиная и заканчивая :
).Некоторые терминалы и другие приложения дают вам больше возможностей:
cursorBlink
ресурс установлен true
или -bc
параметр передается в командной строке. Частота мигания настраивается через cursorOnTime
и cursorOffTime
ресурсы.printf '\033[17;127?c'
(первый параметр 17 дает вам программный курсор без аппаратного курсора, а второй параметр, установленный на 127, делает его по существу обратным видео). Смотри выше относительно сброса терминала.M-x blink-cursor-mode
переключает курсор мигает. Вставьте (blink-cursor-mode 0)
свой, ~/.emacs
чтобы выключить его. Это глобальная настройка, которая не применяется в текстовом терминале.Смотрите также Juri Линьков (юрта) 's страница Нет Мигающий о том , как отключить мигание Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox, и многое другое.
В Linux tty вы можете использовать escape-последовательность "\e[?48;0;64"
или что угодно, но это не работает в tmux / vim. Tmux / Vim при запуске выдает команду cnorm, которая по умолчанию содержит "\e[?0c"
. Вы можете видеть, что это отменяет эффекты вышеуказанного параметра. Вы должны изменить cnorm на вышеуказанную последовательность, чтобы приложения TUI могли сбросить курсор в соответствии с вашими предпочтениями. Больше информации об этом от Жиля, но если вы ищете быстрое решение, попробуйте это:
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
Последняя команда сгенерирует новый файл terminfo, ~/.terminfo
который будет автоматически выбран при перезапуске tmux server / vim.
Ставить
\ 033 [17;? 0; 127c
к вашей переменной PS1, и вы перестанете мигать постоянно.
НАПРИМЕР:
export PS1 = '\ 033 [? 17; 0; 127c \ u: \ w \ $'
BLUEBOXNOBLINK="\033[?17;0;60c"
, затемPS1="\[$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
это не совсем то, что требуется, это заставляет курсор исчезнуть ... setterm -blink off
кажется более многообещающим, но это влияет на текст, а не на фактический курсор.
setterm -cursor off; setterm -cursor on
здесь работает, но это недопустимый обходной путь
я кладу
echo 0 > /sys/class/graphics/fbcon/cursor_blink
в /etc/rc.local и создал для него сервис systemd, используя онлайн-инструкции. Однако я заметил, что иногда после загрузки курсор все еще мигает. Было бы неплохо узнать, как правильно отключить мигание курсора через sysfs в современной системе systemd, есть у кого-нибудь какие-нибудь советы? В некоторых дистрибутивах есть /etc/sysfs.conf, но я использую Arch и не нахожу этот файл в sysfsutils или где-либо еще.
В качестве временного исправления я выполнил следующую команду
sudo zsh -c 'echo -n "\033[?17;0;255c" >> /etc/issue'
Некоторые эксперименты показали, что «255c» в конце работает лучше, чем «127c», указанный выше, он создает белый, а не серый курсор.
Для консоли Linux:
Добавьте -I "\033[?17;0;255c"
опцию к getty
строкам в вашем /etc/inittab
файле. Для этого:
Открыть /etc/inittab
файл в текстовом редакторе. Там должны быть строки, которые содержат getty
или agetty
или аналогичные. Примером является:
tty1::respawn:/sbin/getty 38400 tty1
Добавлять -I "\033[?17;0;255c"
к каждой getty
строке. В качестве примера, после добавления -I "\033[?17;0;255c"
, то getty
выше строка будет выглядеть следующим образом :
tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1
Перезагрузите систему или, альтернативно, убейте все getty
процессы.
Лучшая альтернатива - поставить ESC[?17;0;255c
в /etc/issue
, вместо того чтобы положить его getty
линий. Это vi
делается следующим образом:
/etc/issue
с помощью vi
./etc/issue
файла войдите в режим вставки.^V
(то естьCtrlv ), затем нажмите Esc. Теперь должен быть вставлен escape-символ.[?17;0;255c
.Другой альтернативой является сохранение аппаратного курсора (вместо использования программного курсора) и прекращение мигания аппаратного курсора и превращение его в блочный курсор. Для этого:
Добавьте следующее к /etc/inittab
:
# Stop cursor blink on Linux console
::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"
Добавить ESC[?8c
в /etc/issue
. Обратитесь к «Альтернативе 2» за инструкциями по выполнению этого.
Однако с этой опцией курсор не становится ярко-белым. Я думаю, что это возможно только с помощью программного курсора.
Следуя любой из этих альтернатив, вы получите белый, не мигающий, блочный курсор.