Как выполнить команду при запуске urxvt

Urxvt не поддерживают я бар как курсор. Один из способов обойти это-отправить команду echo -n -e "3[6 q".

это работает до тех пор, пока я посылаю команду каждый раз, когда я открываю urxvt, что я бы предпочел не делать.

Я пытался заставить urxvt выполнить это при запуске, с разной степенью успеха.

Я пытался использовать .bashrc С exec echo -n -e "3[6 q". Это не имело никакого эффекта.

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

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

URxvt.keysym.C-Escape: command: 3[6 q

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

что я хотел бы знать, если есть способ, чтобы хоть как-то запустить команда всякий раз, когда я начинаю urxvt, в то же время позволяя мне на самом деле использовать терминал?

14
задан Yitzy
23.03.2023 23:05 Количество просмотров материала 2966
Распечатать страницу

3 ответа

если вы хотите, чтобы положить, что в ваш .bashrc файл, было бы немного улучшено:

  • вы должны убедиться, что строка направлен к терминал
  • кроме того, оболочка должна быть интерактивной (в случае, если исходный скрипт .bashrc)
  • echo С -e опция имеет проблемы переносимости. Используйте printf.

собираем их вместе и пишем стандартную ошибку (потому что это не так buffered):

[ -n "PS1" ] && [ -t 2 ] && printf '3[6 q' >&2

urxvt реализует DECSCUSR последовательность управления задокументирована в В Xterm Управляющие Последовательности:

CSI Ps SP q
          Set cursor style (DECSCUSR, VT520).
            Ps = 0  -> blinking block.
            Ps = 1  -> blinking block (default).
            Ps = 2  -> steady block.
            Ps = 3  -> blinking underline.
            Ps = 4  -> steady underline.
            Ps = 5  -> blinking bar (xterm).
            Ps = 6  -> steady bar (xterm).

обратите внимание, что коды 5 и 6 являются функциями xterm.

эта последовательность управления не упоминается на странице онлайн-руководства urxvt(7), но отмечается в запись в changelog:

9.19 Sun Oct 27 17:16:07 CET 2013
...
        - add support for the set cursor style (DECSCUSR) control
          function.

также исходный код показывает Это (см. set_cursor_style), и источник справочной страницы показывает функции. Это было Обновлено в 2014 году для кодов 5 и 6.

читайте далее:

1
отвечен Thomas Dickey 2023-03-25 06:53
echo -en "\x1b[\x35 q" # changes to blinking vertical bar
echo -en "\x1b[\x36 q" # changes to steady vertical bar

Это два соответствующих escape-кода, которые вам нужно ввести .bashrc изменить его. Возьмите все остальное, что вы пробовали в первую очередь. И, конечно, выбрать между устойчивым или мигает, и закомментировать другой в случае, если вы хотите его позже.

EDIT: чтобы быть более информативным, я не уверен, могу ли я что-либо связать, или где вы получили эти коды, но я тестировал их в urxvt в моем .bashrc и это то, что я уже использовал в xterm, и они работают, я могу использовать все формы курсора, если вы мне нужно знать все остальное.

0
отвечен Adrift 2023-03-25 09:10

если кто-то, как я, искал ответ на вопрос, а не конкретную проблему парня, который спросил, ответ:

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

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

0
отвечен Das_Sams 2023-03-25 11:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх