LINUX.ORG.RU

tmux локально выдает неправильные коды клавиш F1-F4; куда смотреть?

 


0

1

Привет

Если запустить read и понажимать F1, F2, ..., F12, то получится такое:

С tmux локально (ошибка в F1-F4):

$ read
^[OP^[OQ^[OR^[OS^[[15~^[[17~^[[18~^[[19~^[[20~^[[21~^[[23~^[[24~


С tmux удаленно, PuTTY:
$ read
^[[11~^[[12~^[[13~^[[14~^[[15~^[[17~^[[18~^[[19~^[[20~^[[21~^[[23~^[[24~


Без tmux локально:
$ read
^[[11~^[[12~^[[13~^[[14~^[[15~^[[17~^[[18~^[[19~^[[20~^[[21~^[[23~^[[24~


Как пофиксить? Куда смотреть?

★★★★★

Пользуясь случаем — а в ядерной консоли что выдаёт?

Есть похожая проблема — в mc под vte некорректно обрабатываются Shift+F1…4 — вместо Shift+F3 приходится нажимать Shift+F1. В ядерной консоли всё норм. В mc под tmux из-под vt приходится нажимать уже Shift+F5.

vte read

F1-F12:
^[OP^[OQ^[OR^[OS^[[15~^[[17~^[[18~^[[19~^[[20~^[[21~^[[23~^[[24~

Shift+F1-F12:
^[[1;2P^[[1;2Q^[[1;2R^[[1;2S^[[15;2~^[[17;2~^[[18;2~^[[19;2~^[[20;2~^[[21;2~^[[23;2~^[[24;2~

kernel vt:

F1-F12:
^[[[A^[[[B^[[[C^[[[D^[[[E^[[17~^[[18~^[[19~^[[20~^[[21~^[[23~^[[24~

Shift+F1-F12:
^[[23~^[[24~^[[25~^[[26~^[[28~^[[29~^[[31~^[[32^[[33~^[[34~^[[23~^[[24~

tmux локально

Вывод в tmux, запущенном локально из-под vte идентичен тому, что выдаётся в vte.  

tmux из-под kernel vt

F1-F12:
^[OP^[OQ^[OR^[OS^[[15~^[[17~^[[18~^[[19~^[[20~^[[21~^[[23~^[[24~

Shift+F1-F12:
^[[23~^[[24~^[[1;2P^[[1;2Q^[[1;2R^[[1;2S^[[15;2~^[[17;2~^[[18;2~^[[19;2~^[[23~^[[24~

anonymous
()

Это не ошибка, это классические коды. Смотреть можно в ncurses-term или что там у тебя для описаний терминалов.

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

А, ну и $TERM посмотри, наверняка разница уже там.

anonymous
()

Куда смотреть?

termcap и всё что с этим связано — $TERM и всякое такое.

Как пофиксить?

Оно не сломано. ☺

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

mc под vte некорректно обрабатываются Shift+F1…4

Што? Я всегда в Линуксе использовал gnome-terminal, а теперь mate-terminal. Оба, как нетрудно догадаться, на vte. И никогда у меня shift-fx не съезжали и сейчас не съезжают.

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

Есть похожая проблема — в mc под vte некорректно обрабатываются Shift+F1…4 — вместо Shift+F3 приходится нажимать Shift+F1

У меня тоже.

И справил так:

set-option -g default-terminal "xterm-256color" # Midnight Commander Shift+Fn keys fix (part 1 of 2)
set-option -gw xterm-keys on # Midnight Commander Shift+Fn keys fix (part 2 of 2)

################################################################################
# Midnight Commander keys fix
################################################################################
# Without the fix, Shift-F5 works like Shift-F3, Shift-F6 -> Shift-F4 etc

bind-key -n S-F1 send-keys S-F3
bind-key -n S-F2 send-keys S-F4
bind-key -n S-F3 send-keys S-F5
bind-key -n S-F4 send-keys S-F6
bind-key -n S-F5 send-keys S-F7
bind-key -n S-F6 send-keys S-F8
bind-key -n S-F7 send-keys S-F9
bind-key -n S-F8 send-keys S-F10
bind-key -n S-F9 send-keys S-F11
bind-key -n S-F10 send-keys S-F12

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

Это не ошибка, это классические коды.

Какие из них?
Какой классический код для F1: ^[OP или ^[[23~ ?

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

смотри/правь terminfo для своих типов терминалов (которые в $TERM)

Без tmux было 'rxvt-unicode-256color'. В tmux 'xterm-256color'.
После установки в tmux 'rxvt-unicode-256color' ничего не поменялось.

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

Што? Я всегда в Линуксе использовал gnome-terminal, а теперь mate-terminal. Оба, как нетрудно догадаться, на vte. И никогда у меня shift-fx не съезжали и сейчас не съезжают.

Проблема в tmux: tmux локально выдает неправильные коды клавиш F1-F4; куда смотреть? (комментарий)
Или в ncurses: tmux локально выдает неправильные коды клавиш F1-F4; куда смотреть? (комментарий)

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

Оба. Обычно в xterm с буковками. Цифровой вариант я, кажется, видел в rxvt. Смысл в том, что неправильных кодов тут нет, это вопрос терминала.

anonymous
()

(ошибка в F1-F4)

Тут нет ошибки. У F1-F4, в зависимости от $TERM, и в самом деле могут быть другие скан-коды.

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