Urxvt не поддерживает использование панели I в качестве курсора. Один из способов обойти это - отправить команду echo -n -e "\033[6 q"
.
Это работает до тех пор, пока я посылаю команду каждый раз, когда открываю urxvt, что я бы предпочел не делать.
Я пытался заставить urxvt выполнить это при запуске с разной степенью успеха.
Я пытался использовать .bashrc
, с exec echo -n -e "\033[6 q"
. Это не имело никакого эффекта.
Я использую i3, поэтому в следующий раз я попытался установить keysym для urxvt для запуска с командой, а также с использованием -hold
аргумента, но все, что произошло, было то, что я не смог использовать терминал, так как он был задержан.
Единственное, что мне удалось сделать, это имело некоторый успех - это установить keyym в .Xresources
:
URxvt.keysym.C-Escape: command: \033[6 q
Это сработало, но означает, что мне нужно нажимать Ctrl-Escape каждый раз, когда я запускаю терминал.
Я хотел бы знать, есть ли какой-нибудь способ как-нибудь запустить эту команду всякий раз, когда я запускаю urxvt, и в то же время позволяю мне фактически использовать терминал?
exec echo . . .
в своем.bashrc
? Не видя всего этого трудно сказать наверняка, но это не правильноОтветы:
Если вы хотите поместить это в свой
.bashrc
файл, он будет немного улучшен:.bashrc
)echo
с-e
опцией есть проблемы с переносимостью. Используйтеprintf
.Собираем их вместе и пишем в стандартную ошибку (потому что она не буферизируется):
urxvt реализует
DECSCUSR
управляющую последовательность, задокументированную в управляющих последовательностях XTerm :Обратите внимание, что коды 5 и 6 являются функциями xterm.
Эта последовательность управления не упоминается на странице справочного руководства urxvt (7) , но отмечена в записи журнала изменений :
также исходный код показывает это (см.
set_cursor_style
), а исходный код страницы руководства показывает эту функцию. Это было обновлено в 2014 году для кодов 5 и 6 .Дальнейшее чтение:
источник
[ "${TERM:0:4}" = rxvt ] && ...
нужно сделать то же самое, в противном случае вы, вероятно, захотите использоватьcase "$TERM" in; rxvt*) ...;; xterm*) ...;; esac
аналогичные.Это два соответствующих управляющих кода, которые вы должны вставить в свой .bashrc, чтобы изменить его. Возьми все остальное, что ты попробовал первым. И, конечно, выберите между постоянным или мигающим и закомментируйте другое, если хотите позже.
РЕДАКТИРОВАТЬ: Чтобы быть более информативным, я не уверен, могу ли я связать что-нибудь, или где вы получили эти коды, но я протестировал их в urxvt в моем .bashrc, и это то, что я уже использовал в xterm, и они работают, я могу использовать все формы курсора, если вам нужно все остальное дай мне знать.
источник
Если кто-то, как я, искал ответ на вопрос, а не конкретную проблему парня, который спросил, ответ таков:
urxvt [your other options - e.g. fancy colors...] -hold -e <your command>
если вы опустите опцию,
-hold
терминал закроется, когда команда будет выполнена.пример:
urxvt -fg white -bg black -tr -sh 40 -fade 40 -sl 500 -cr yellow -e calc
запускает urxvt с помощью калькулятора (хорошая точность на gentoo) и закрывает его, когда я закрываю калькулятор. Я использую это с горячей клавишей.
другой пример:
urxvt -fg white -bg black -tr -sh 40 -fade 40 -sl 500 -cr yellow -hold -e echo -e Hello you greatest hacker\n
приветствовал бы нарциссического пользователя, пока он открывает окно терминала и остается открытым. Я не использую последний пример.
источник