Как заставить курсор остановиться blinking
в TTY ? (или где-нибудь еще).
Бонус Очки за одну универсальную настройку, которая останавливает мигание курсора почти везде.
Это дает вам сплошной желтый блок (без связи) в качестве курсора:
echo -n -e '\e[?17;14;224c'
Для получения дополнительной информации проверьте следующие ссылки: Linuxgazette и EmacsWiki, а также файл /usr/src/linux/Documentation/VGA-softcursor.txt
(если имеется в вашей системе)
echo -e '\033[?16;0;224c'
Существует стандартная последовательность управления для отключения мигания курсора на клеммах.
Однако многие терминалы не поддерживают эту настройку, поэтому читайте дальше.
Существует более широко реализованная стандартная настройка терминала для переключения видимости курсора между высокой видимостью, нормальной видимостью и невидимостью. Некоторые терминалы не делают различий между нормальным и высоким, и нет никакой гарантии, что один или другой будет или не будет мигать. В 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, и многое другое.
источник
Я обнаружил, что это проще, если у вас есть права root:
Я поместил его в скрипт запуска машины, как
/etc/rc.local
для Arch Linux.источник
В Linux tty вы можете использовать escape-последовательность
"\e[?48;0;64"
или что угодно, но это не работает в tmux / vim. Tmux / Vim при запуске выдает команду cnorm, которая по умолчанию содержит"\e[?0c"
. Вы можете видеть, что это отменяет эффекты вышеуказанного параметра. Вы должны изменить cnorm на вышеуказанную последовательность, чтобы приложения TUI могли сбросить курсор в соответствии с вашими предпочтениями. Больше информации об этом от Жиля, но если вы ищете быстрое решение, попробуйте это:Последняя команда сгенерирует новый файл terminfo,
~/.terminfo
который будет автоматически выбран при перезапуске tmux server / vim.источник
Ставить
к вашей переменной PS1, и вы перестанете мигать постоянно.
НАПРИМЕР:
источник
BLUEBOXNOBLINK="\033[?17;0;60c"
, затемPS1="\[$BLUEBOXNOBLINK\]\[$BROWN\]\u \[$CYAN\]\W: \[$NC\]"
источник
-cursor off
это не совсем то, что требуется, это заставляет курсор исчезнуть ...setterm -blink off
кажется более многообещающим, но это влияет на текст, а не на фактический курсор.setterm -cursor off; setterm -cursor on
здесь работает, но это недопустимый обходной путья кладу
в /etc/rc.local и создал для него сервис systemd, используя онлайн-инструкции. Однако я заметил, что иногда после загрузки курсор все еще мигает. Было бы неплохо узнать, как правильно отключить мигание курсора через sysfs в современной системе systemd, есть у кого-нибудь какие-нибудь советы? В некоторых дистрибутивах есть /etc/sysfs.conf, но я использую Arch и не нахожу этот файл в sysfsutils или где-либо еще.
В качестве временного исправления я выполнил следующую команду
Некоторые эксперименты показали, что «255c» в конце работает лучше, чем «127c», указанный выше, он создает белый, а не серый курсор.
источник
Для консоли Linux:
Альтернатива 1
Добавьте
-I "\033[?17;0;255c"
опцию кgetty
строкам в вашем/etc/inittab
файле. Для этого:Открыть
/etc/inittab
файл в текстовом редакторе. Там должны быть строки, которые содержатgetty
илиagetty
или аналогичные. Примером является:Добавлять
-I "\033[?17;0;255c"
к каждойgetty
строке. В качестве примера, после добавления-I "\033[?17;0;255c"
, тоgetty
выше строка будет выглядеть следующим образом :Перезагрузите систему или, альтернативно, убейте все
getty
процессы.Альтернатива 2
Лучшая альтернатива - поставить
ESC[?17;0;255c
в/etc/issue
, вместо того чтобы положить егоgetty
линий. Этоvi
делается следующим образом:/etc/issue
с помощьюvi
./etc/issue
файла войдите в режим вставки.^V
(то естьCtrlv ), затем нажмите Esc. Теперь должен быть вставлен escape-символ.[?17;0;255c
.Альтернатива 3
Другой альтернативой является сохранение аппаратного курсора (вместо использования программного курсора) и прекращение мигания аппаратного курсора и превращение его в блочный курсор. Для этого:
Добавьте следующее к
/etc/inittab
:Добавить
ESC[?8c
в/etc/issue
. Обратитесь к «Альтернативе 2» за инструкциями по выполнению этого.Однако с этой опцией курсор не становится ярко-белым. Я думаю, что это возможно только с помощью программного курсора.
Следуя любой из этих альтернатив, вы получите белый, не мигающий, блочный курсор.
Дальнейшая информация
источник
Это полностью скрывает курсор.
Чтобы восстановить:
источник