Как отключить мигающий курсор в gnome-терминале?

Я мог бы поклясться, что когда-то была настройка для этого в терминале гномов "Профиль".

А затем в какой-то версии Ubuntu этот параметр исчез, и мне пришлось использовать Систему ferences Настройки ➜ Клавиатура, чтобы снять флажок "Курсор мигает в текстовых полях".

Ну, похоже, ни один из них сейчас не работает. Так как же заставить курсор перестать мигать?

4 ответа

Решение

Да, в gconf есть скрытая настройка.
Откройте gconf-редактор, перейдите к /apps/gnome-terminal/profiles/Default, находить cursor_blink_mode и измените его значение на off,

Вы также можете отключить мигание из командной строки (gconf-editor по умолчанию не установлен):

 gconftool-2 --set /apps/gnome-terminal/profiles/Default/cursor_blink_mode --type string off

Для более новых версий gnome-терминала команда была изменена:

gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$(gsettings get org.gnome.Terminal.ProfilesList default|tr -d \')/ cursor-blink-mode off

Я рассматриваю этот пост почти на каждой установке Gnome. Кажется, что реальное имя переменной меняется очень часто.

Мое решение: gsettings list-recursively | grep blink

Затем я устанавливаю значение ссылки с True на False. На данный момент это курсор-мигание org.gnome.desktop.interface, поэтому:

gsettings set org.gnome.desktop.interface cursor-blink false

Надеюсь, что это поможет кому-то еще в будущем!

Вы можете отправить escape-последовательность на терминал (я думаю, любой POSIX-совместимый), установив текущий символ курсора, используя tput:

tput civis    # invisible
tput cnorm    # normal       (usually an underscore)
tput cvvis    # very visible (usually a rectangle)

Просто поместите все, что вы предпочитаете, в свой локальный скрипт runcom: ~/.zshrc, ~/.bashrc - какой бы ни был ваш яд - или глобальный в /etc если вы хотите, чтобы он работал для всех пользователей.

С python3

os.popen('tput civis').read()

Я обнаружил, что напечатанный текст \x1b[?25llиз л пролета).
Можешь попробовать:

$ printf '\x1b[?25l'

так что вы можете попробовать другие команды, если вам нужен строковый формат (я работаю с python, я не знаю, как это называется иначе).
Преимущество с '\x1b' или '\x33' заключается в том, что мы можем использовать его с другим устройством (например, микропайтоном) для регулярного использования терминала с помощью STDOUT.

Другие вопросы по тегам