Как остановить курсор от мигания

Как заставить курсор перестать blinking когда в TTY ? (или где-либо еще).

BONUS Точки для одной универсальной настройки, которая останавливает курсор, мигая почти везде.

8 Solutions collect form web for “Как остановить курсор от мигания”

Это дает вам желтый желтый блок (немигающий) в качестве курсора:

 echo -n -e '\e[?17;14;224c' 

Для получения дополнительной информации проверьте эти ссылки: Linuxgazette и EmacsWiki, а также файл /usr/src/linux/Documentation/VGA-softcursor.txt (если он присутствует в вашей системе)

Существует стандартная последовательность управления, чтобы выключить курсор, мигающий на терминалах.

 printf '\033[?12l' 

Однако многие терминалы не реализуют эту настройку, поэтому читайте дальше.

Существует более широко используемая стандартная настройка терминала для переключения видимости курсора между высокой видимостью, нормальной видимостью и невидимостью. Некоторые терминалы не имеют значения между нормальным и высоким, и нет гарантии, что тот или другой будет или не будет мигать. В terminfo cvvis строку cvvis , cnorm или civis (например, tput cvvis ). Соответствующими записями termcap являются vs , ve и vi .

Эти настройки не смогут пережить терминальный сброс , поэтому вы можете обнаружить, что он не переживает запуск многих полноэкранных приложений. Вы можете преодолеть эту проблему, добавив последовательность изменения конфигурации курсора в строку сброса вашего терминала.

  • В terminfo-системе, использующей ncurses, сохраните настройки terminfo вашего терминала в файле с infocmp >>~/etc/terminfo.txt . Измените описание для изменения последовательности rs1 (базового сброса), например, замените rs1=\Ec на rs1=\Ec\E[?12l . С некоторыми программами и настройками вам может потребоваться изменить rs2 (полный сброс). Затем скомпилируйте описание terminfo с помощью tic ~/etc/terminfo.txt (это записывается в каталоге $TERMINFO или ~/.terminfo если не ~/.terminfo ).
  • В системе на основе termcap возьмите настройки termcap из вашей базы данных termcap (обычно /etc/termcap ). Измените последовательности (базовый сброс) и rs (полный сброс) для добавления ваших настроек, например :is=\Ec\E[?12l: Установите TERMCAP среды TERMCAP в отредактированное значение (начиная и заканчивая на TERMCAP .

Некоторые терминалы и другие приложения предоставляют вам больше возможностей:

  • Курсор xterm будет мигать, если для ресурса cursorBlink установлено значение true или опция -bc передается в командной строке. Скорость мигания настраивается через cursorOnTime и cursorOffTime .
  • Некоторые другие эмуляторы терминала GUI могут мигать курсором; проверьте их диалоговое окно конфигурации.
  • Консоль Linux PC (VGA) имеет несколько настроек курсора; их точное значение и применимость зависят от базовой реализации VGA (фреймбуфер Linux или видеокарты). Если мигает курсор по умолчанию, попробуйте отключить аппаратный курсор и программный курсор с чем-то вроде printf '\033[17;127?c' (первый параметр 17 дает вам программный курсор без аппаратного курсора, а второй параметр установленный на 127, делает его по существу обратным видео). См. Выше относительно сброса терминала.
  • В Emacs Mx blink-cursor-mode переключает курсор на мигание. Поместите (blink-cursor-mode 0) в ~/.emacs чтобы отключить его. Это глобальная настройка и не применяется в текстовом терминале.

См. Также «Не мигающая страница» Юрия Линкова (Jurta) о том, как отключить мигание в Lesstif, Tk, Gtk (Gnome), Qt (KDE), Firefox и т. Д.

Я нашел это проще, если у вас есть права root:

 ~$ echo 0 > /sys/class/graphics/fbcon/cursor_blink 

Я поместил его в сценарий запуска машины, например, /etc/rc.local для arch linux.

В linux tty вы можете использовать escape-последовательность "\e[?48;0;64" или что угодно, но это не работает в tmux / vim. Tmux / Vim выдает команду «cnorm» при запуске, которая по умолчанию содержит "\e[?0c" . Вы можете видеть, что это отменяет эффекты вышеупомянутой настройки. Вам необходимо изменить cnorm на указанную выше последовательность, чтобы приложения TUI могли сбросить курсор в соответствии с вашими предпочтениями. Больше информации об этом от Gilles, но если вы ищете быстрое исправление, попробуйте следующее:

 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, и вы перестанете постоянно мигать.

НАПРИМЕР:

экспорт PS1 = '\ 033 [? 17; 0; 127c \ u: \ w \ $'

я кладу

 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», перечисленных выше, он создает белый, а не серый курсор.

 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 

Для консоли Linux:

Альтернатива 1

Добавьте параметр -I "\033[?17;0;255c" в строки getty в /etc/inittab . Для этого:

  1. Откройте файл /etc/inittab с помощью текстового редактора. Должны быть строки, содержащие getty или agetty или аналогичные. Пример:

     tty1::respawn:/sbin/getty 38400 tty1 
  2. Добавьте -I "\033[?17;0;255c" в каждую строку getty . Например, после добавления -I "\033[?17;0;255c" линия getty выше выглядела бы следующим образом:

     tty1::respawn:/sbin/getty -I "\033[?17;0;255c" 38400 tty1 
  3. Перезагрузите систему или, альтернативно, убейте все процессы getty .

Альтернатива 2

ESC[?17;0;255c альтернативой является ESC[?17;0;255c в /etc/issue вместо того, чтобы помещать его в строки getty . Выполнение этого с помощью vi выглядит следующим образом:

  1. Открыть /etc/issue с помощью vi .
  2. В любом месте файла /etc/issue введите режим вставки.
  3. Пока вы находитесь в режиме вставки, нажмите ^V (то есть Ctrl v ), затем нажмите Esc . Эквивалентный символ теперь должен быть вставлен.
  4. Теперь вставьте оставшиеся символы, которые являются [?17;0;255c .

Альтернатива 3

Другой альтернативой является сохранение аппаратного курсора (вместо использования программного курсора) и прекращение мигания аппаратного курсора и превращение его в блок-курсор. Для этого:

  1. Добавьте в /etc/inittab :

     # Stop cursor blink on Linux console ::sysinit:/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink" 
  2. Добавьте ESC[?8c в /etc/issue . Для получения инструкций по этому вопросу обратитесь к разделу «Альтернатива 2».

Однако с этой опцией курсор не становится ярко-белым. Я думаю, это возможно только с помощью курсора программного обеспечения.

После выполнения любой из этих альтернатив вы получите белый, не мигающий, блок-курсор.

Дальнейшая информация

  • Скриншот X от tty
  • Создание Null Modem Pair linux
  • Подключите два устройства ttySx на одном компьютере
  • Как я могу подключиться к выходу одного терминала с другого терминала?
  • Символ хэша на телетайпе
  • terminfo отключить XON / XOFF
  • Разница между очками и tty
  • Запустить приложение, используя xinit на разных tty
  • Отключение или изменение ключей переключения консоли
  • Получить ssh для пересылки сигналов
  • Выход MOZREPL, отображающийся в окне терминала
  • Не удалось получить приглашение на вход в / dev / ttyUSB0
  • Interesting Posts

    Как использовать таймер в bash?

    Разделение / загрузка раздела на Linux Mint

    Как использовать sed для замены чисел с помощью parenthese?

    Установленный GRUB в унаследованном режиме, как его переустановить в режиме EFI?

    как подсчитать общее количество слов в файле?

    Запуск нескольких xserver отображает «вне экрана» или «безголовый»

    Как предотвратить «Сообщения ядра были потеряны, так как система журнала не смогла обработать их достаточно быстро»?

    Каков правильный синтаксис для добавления CFLAGS и LDFLAGS в «configure»?

    Выходные данные Все строки За исключением строк, содержащих указанный шаблон

    Почему используется некоторое пространство файловой системы, даже если файловая система пуста?

    Управление блоком ввода-вывода на основе веса для виртуальных машин

    Используйте mogrify для изменения размера больших файлов при игнорировании небольших

    переменные bash для диапазона петель

    Как скомпилировать программу ac, не выходя из редактора?

    Вырезанная таблица разделов Windows

    Linux и Unix - лучшая ОС в мире.