не передаётся нажатие ctrl+home через ssh

Здравствуйте. Помогите решить проблему.
На сервере стоит линукс без графики в буквеноцифровом режиме 25х80.
Для перемещения по файлам использую Midnight Commander,
а для правки конфигов встроенный в него текстовый редактор mcedit
Все манипуляции делаю от рута.
В редакторе в файле клавиш /root/.config/mc/mc.keymap
Для перемещения в верх и вниз открытого текстового файла использую
вот эти настройки

Top = home; alt-lt
Bottom = end; alt-gt

то есть вверх перемещаюсь по нажатию home а вниз по нажатию end

Для перемещения в конец и начало строки использую вот эти настройки

Home = ctrl-home
End = ctrl-end

то есть в начало строки перемещаюсь по нажатию ctrl+home а в
конец строки по нажатию ctrl+end

На домашнем линуксе с графикой такие же настройки,
и на сервере и на домашнем всё работает нормально.

На домашнем вот такая связка

KDE -> konsole -> mc -> mcedit
или
KDE -> konsole -> mcedit
или
фреймбуфер -> bash -> mc -> mcedit
или
фреймбуфер -> bah -> mcedit

На сервере

bash(25x80) -> mc -> mcedit
или
bash(25x80) -> mcedit
Но когда по ssh захожу на сервер то не работает,
хоть по home хоть по ctrl+home перемещаюсь в начало открытого файла, или по
end ctrl+end в конец.

Получается вот такая связка уже не работает

KDE -> konsole -> ssh -> bash -> mc -> mcedit
или
KDE -> konsole -> ssh -> bash -> mcedit
или
фреймбуфер > ssh -> bash -> mc -> mcedit
млм
фреймбуфер -> ssh -> bash -> mcedit

Выходит при соединении по ssh на нажатие ctrl как бы не реагирует
или вместо кода нажатия ctrl+home передаётся код просто home,
или при нажатии на ctrl+end передаётся код просто end.

Если на домашнем компьютере или на сервере, в командно строке
набрать ctrl+v, а потом ctrl+home или просто home то выдаёт
один и тот же код ^[[1~, соответственно при ctrl+end или end
^[[4~

Хотя в файлах

/etc/inputrc
/root/.inputrc

Прописано вот что

#"\e[1~": beginning-of-line
#"\e[4~": end-of-line
"\e[1;5H": beginning-of-line
"\e[1;5F": end-of-line

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

loadkeys /usr/share/kbd/keymaps/ru

Я не могу понять где причина почему через ssh перестаёт работать
ctrl+home и ctrl+end, а работает просто как home или end.
Ведь по отдельности всё работает, получается причине не в terminfo....
Я не знаю кто отвечает за кодировку нажатых клавиш, думаю что при работе в mcedit и просто в фреймбуферском или буквеноцифровом терминале за это отвечают разные библиотеки и соответственно разные настроечные файлы, если они конечно есть. Думаю дело не в ssh.
Если кто в курсе, подскажите хотя бы где смотреть.
Дело уже не в редакторе mcedit, просто хочется разобраться в проблеме.

Проблема эта у меня давно. Ранее спрашивал на других форумах, но ответа так и не нашёл.

Дело уже не в редакторе. Очень хотелось бы узнать в чём причина, докопаться до корня проблемы.

За помощь буду заранее благодарен!
Первое, что нагуглилось https://superuser.com/questions/913757/why-keys-like-esc-ctrl-shift-and-alt-does-not-work-in-ssh-session-from-my-wind
Значит есть и другое ...
Ошибки не исчезают с опытом - они просто умнеют
С putty на сколько я знаю ситуация совсем другая. Там с передачей ctrl большие проблемы.
Многое зависит от эмулятора терминала - все они разные и по разному понимают и применяют Escape Sequence (escape последовательности) … самый рабочий раньше был xterm.
Много лет уже не занимаюсь этим, а вспоминать, точнее влазить во все это, честно говоря, нет желания.
Рекомендую для начала проверить Escape Sequence, точнее одинаково ли они отображаются.
Например, согласно /etc/inputrc … слово вперед/назад
"\e[1;5C": forward-word
"\e[1;5D": backward-word
Смотрим, как это выглядит в нашем xterm, для чего запускаем команду od -c или cat > /dev/null … и набираем
Ctrl+стрелка_вправо --- получаем ^[[1;5C
Ctrl+стрелка_влево --- получаем ^[[1;5D
Учитывая, что ^[ == esc (сокращенно e), убеждаемся, что совпадает с записью в /etc/inputrc
А вот в части Ctrl+home … Ctrl+end , которые у меня отображаются как
^[[1;5H - Ctrl+home
^[[1;5F  - Ctrl+end
видим, что они не прописаны в /etc/inputrc … то есть их нужно прописывать. Но если прописывать в ~/.inputrc, то есть нюансы …. какие точно не помню.

PS - кстати, работает и новый форум https://archlinux.com.ru/ .... хотя сейчас не очень активны и старый и новый форумы ...
Ошибки не исчезают с опытом - они просто умнеют
А дело ли в terminfo? Если бы дело было в терминалах xterm или linux или ещё в каком, так локально не работало, или я ошибаюсь. Но у меня локально работает.

И в файлах

/etc/inputrc
/root/.inputrc

Прописано

"\e[1;5H": beginning-of-line
"\e[1;5F": end-of-line

"\e[1;5C": forward-word
"\e[1;5D": backward-word

Но при нажатии ctrl+Home или просто Home выдаёт

^[[1~

При нажатии ctrl+End или просто End выдаёт

^[[4~
При нажатии ctrl+стрелка влево или прост при нажатии стрелка влево выдаёт

^[[D

При нажатии ctrl+стрелка вправо или прост при нажатии стрелка вправо выдаёт

^[[C

Может Midnight Commander перехватывает нажатия клавиш и интерпретирует их по своему.....?

Спасибо за команду od -c

Я проверял нажатие клавиш нажимая ctrl+v а потом проверяемую клавишу.
v4567
Очень хотелось бы узнать в чём причина, докопаться до корня проблемы.
1. В части - А дело ли в terminfo?
От этого тоже зависит, но основная причина в другом - в самих клавишах Ctrl, Alt, Shift - это клавиши модификаторы, которые сами по себе не вызывают/не отправляют никаких символов, а просто изменяют поведение нажатой клавиши.
А поэтому при использовании ssh наблюдаются проблемы с использованием этих клавиш (где то они работают, где то не работаеют) … и их не рекомендуют использоавть … плюс к этому и клавиша esc (тоже понятно почему).
Что рекомендуют использовать?
- putty (хотя и там есть определенные заморочки)
- far2l - сам не пробовал, но как пишут
Если вы запустите MC внутри FAR2L, Putty4FAR2L, то полная поддержка клавиатуры также станет доступной в MC.
Пишешь, что давно ищешь причину - нужно больше гуглить … но не на ru … а на en

PS -1 - https://github.com/elfmz/far2l .... https://github.com/unxed/putty4far2l

PS -2 - не пробовал по ssh использовать комбинацию Ctrl+Alt+Del ??? - то же не должна сработать ...
Ошибки не исчезают с опытом - они просто умнеют
Я putty не использую. Я захожу с линукс, с konsole, в командной строке набираю ssh.
Пробовал из фрейсбуфера, результат тот же.
Я думаю дело не в ssh, а в том что у меня одинаково интерпретируются нажатия home и ctrl+home ^[[1~
Но где это настроить, изменить не знаю. Думаю в terminfo это не настроить.
Интересно можно ли получить чистый терминал без запуска в нём bash. И в нём проверить нажатия этих клавиш, нажимая
ctrl+v а потом проверяемую клавишу.
И не понятно ещё вот что, как Midnight Commander распознаёт нажатия home и ctrl+home ведь они у меня имеют одинаковый код ^[[1~.
То что через ssh это всё работает я знаю, так как на других форумах люди писали что у них работает, но конкретно не помогли так как не знали где эти настройки.

Ctrl+Alt+Del через ssh не работает, я думаю из-за того что это нажатие перехватывает система и оно до ssh не доходит.
v4567
Ctrl+Alt+Del через ssh не работает …
Оно и не должно работать ... как не должны работать и многие другие комбинации с клавишами модификаторами ...
Грубо, по простому: на твоем компе это работает (например, Ctrl+Home), а при передаче по ssh кода нажатия этой комбинации на другой комп воспримется как просто Home, так как нажатие Ctrl не генерит код, а значит по ssh ничего не передается ... нажатие клавиши модификатора воспринимается только на данном компе, где было выполнено это нажатие.
Если уж так хочется использовать эти комбинации, можно попробовать использовать xdotool (эмуляцию нажатия клавиш) .... вот только нужно будет решить как внедрить это в редактор .... а по хорошему, все это ерунда и в полне можно обойтись и без этого.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.