LINUX.ORG.RU

Как переназначить клавиши прокрутки в urxvt?

 ,


1

1

Какой ASCII-код для Shift+PageUp, Shift+PageDown? При запущенном showkey -a прокручивает эмулятор терминала, по идеи это должны быть \033[5@ и \033[6@ соответственно, но urxvt почему то вставляет собаку вместо прокрутки.

Ты в курсе, что showkey предназначен для виртуальной консоли?

Во-вторых, если посмотреть в man 7 urxvt, то можно случайно заметить следующее:

                  Normal       Shift         Control      Ctrl+Shift
Prior             ESC [ 5 ~    scroll-up     ESC [ 5 ^    ESC [ 5 @
Next              ESC [ 6 ~    scroll-down   ESC [ 6 ^    ESC [ 6 @

Gotf ★★★
()
Ответ на: комментарий от Gotf

Ты в курсе, что showkey предназначен для виртуальной консоли?

Догадывался, выходит что urxvt перехватывает нажатие клавиш и передает их как внутреннею команду?

Во-вторых, если посмотреть в man 7 urxvt, то можно случайно заметить следующее:

Не углядел, но все равно непонятно как теперь scroll-up, scroll-down переназначить на другие клавишы.

unclear
() автор топика
Ответ на: комментарий от Gotf
URxvt.keysym.C-v: \033[6~
URxvt.keysym.M-v: \033[5~

Вот так например PageDown, PageUp назначаются без проблем.

URxvt.keysym.C-v: scroll-down
А вот в таком виде прокрутка не работает.

unclear
() автор топика
Ответ на: комментарий от unclear

Я не знаю, как переназначить именно эти команды, но можно использовать последовательности для прокрутки буфера, описанные в разделе «XTerm Operating System Commands» того же man 7 urxvt.

Gotf ★★★
()
Ответ на: комментарий от Gotf

720, 721? Это не совсем то, эти команды прокручивают на n линий, а не постранично.
Конечно если бы можно было использовать переменную с `tput lines`. Но пока не нашел способа прикрутить переменную к .Xdefaults.

unclear
() автор топика
Ответ на: комментарий от unclear

Я в гугле видел способ с расширением на perl: http://ubuntuforums.org/archive/index.php/t-783096.html

Хотя идея с переменной мне нравится больше. Это можно сделать, добавив в свой ~/.$SHELLrc примерно это:

if [ ! -z $DISPLAY ]; then
    echo 'URxvt.keysym.<keysym>: command: \033]720;$LINES\007'|xrdb -merge
fi

Gotf ★★★
()
Последнее исправление: Gotf (всего исправлений: 1)
Ответ на: комментарий от Gotf

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

unclear
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.