Ответы:
Это дает вам сплошной желтый блок (без связи) в качестве курсора:
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» за инструкциями по выполнению этого.
Однако с этой опцией курсор не становится ярко-белым. Я думаю, что это возможно только с помощью программного курсора.
Следуя любой из этих альтернатив, вы получите белый, не мигающий, блочный курсор.