LINUX.ORG.RU

Какие эмуляторы терминала позволяют произвольным образом переопределить keymap?


0

1

Как известно, программы, работающие в терминале, ничего не знают про модификаторы. А жаль. В связи с этим вопрос: какие эмуляторы терминала позволяют произвольным образом настроить отображение хоткей -> генерируемая последовательность?

Очень хотелось бы сделать управление рядом программ, таких как tmux, более человечным. Например, заставить терминал генерировать управляющий префикс tmux-а, если удерживается модификатор:

Mod4 + Up -> ^B^[[A
Mod4 + Down -> ^B^[[B
Mod4 + Right -> ^B^[[C
Mod4 + Left -> ^B^[[D

Потому что играть на пианино с Ctrl не айс. (Емаксеры не поймут.)

Также можно задействовать дублирующиеся сочетания клавиш. Например, Esc == ^[. Но т.к. кнопка Esc на клавиатуре уже имеется, нажатие Ctrl+[ можно переопределить под что-нибудь более полезное. Можно задействовать «пустые» сочетания, такие как Ctrl+' и т.п. Ну вы поняли идею.

Ответ на: комментарий от fractaler

1. .Xmodmap не помогает?

.Xmodmap не про то. Терминал превращает иксовые кейкоды в последовательности символов, которые идут stdin клиента. Вот на эту карту и требуется влиять.

2. screen умеет переопределять сабж.

tmux тоже, и даже даёт определять хоткеи без префикса. Но дело не только в tmux-е. Хочется решить задачу в общем виде: уметь любой заданный иксовый ввод превращать в любой заданный терминальный ввод.

3. Наконец, графические терминалы имеют настройки: http://ompldr.org/vYnluaw

Во, вот об этом я и спрашивал. Щас поставлю, гляну.

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

Поставил konsole. Хоткеи с Mod4 он понимать не хочет. Пробовал в качестве модификатора вписывать Mod4, Super, Win — бесполезно. На этом моя фантазия кончилась, пойду гуглить и читать the fuckin' manual.

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

Бгг, а эта кнопка Meta называлась. Кто бы мог подумать.

Работает. Проверил, забиндив Down+Meta на \x2\E[B — tmux на этот хоткей теперь реагирует как на ^B^[[B

geekless ★★
() автор топика

собственно (если я прально понял что тебе нужно), для urxvt будет что-то типа:

URxvt.keysym.4-Up:  \002\001
URxvt.keysym.4-Down: \002\002
URxvt.keysym.4-Right: \002\003
URxvt.keysym.4-Left: \002\004

проверять лень - у меня screen и другие модификаторы, таблицу восьмеричных кейкодов найдёшь

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm
URxvt.keysym.4-Up:  \002\033[A
URxvt.keysym.4-Down: \002\033[B
URxvt.keysym.4-Right: \002\033[C
URxvt.keysym.4-Left: \002\033[D

Ага. Спасибо за наводку. konsole всё ж мне не нравится, urxvt православнее.

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

фигня в том, что без screen/tmux оно генерит ненужный мусор :(

Но, поломав, голову, способа делать это более умно без использования перловых расширений (а писать лень) я не нашёл.

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

фигня в том, что без screen/tmux оно генерит ненужный мусор :(

А зачем может потребоваться давить Mod4+Up/Down/Left/Right вне tmux-а?

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