Обозначение Super Key для STTY

Попытка поменять местами клавиши Ctrl и Super на коробке с Ubuntu.

Удалось поменять местами Super и Ctrl, используя xmodmap. Теперь мне просто нужно изменить stty intr на Super_L + C

Я не могу за всю жизнь найти обозначение для супер ключа. (Например, ^ это управляющий ключ)

Кто-нибудь знает, что обозначение супер для STTY? я хотел бы иметь возможность печатать

stty intr Super_L + C

Например.

Или другой, еще лучший способ сделать Super+C прерыванием

1 ответ

Решение

Для этого нет обозначений.

В общем, stty (и компоненты ОС, использующие эти настройки) не видят ключи как таковые - приложение терминала преобразует эти ключи в последовательность байтов, а слой tty видит только эти переведенные байты, а stty позволяет вам выбрать определенный байт что заставит tty-слой вызвать сигнал прерывания.

Другими словами, параметр intr представляет собой однобайтовое значение, соответствующее некоторому символу, который вы действительно можете ввести. (В ранних системах Unix intr был установлен на # знак.)

Поэтому, когда вы устанавливаете intr ^CЭто просто сокращенная запись байта 0x03 (сравните: буква C 0x43 в ASCII). В основном Shift и Ctrl просто устанавливают и очищают некоторые биты "базового" байта. Однако для Super такого эквивалента нет.

В результате большинство терминалов просто игнорируют Super и отправляют базовое письмо без изменений; некоторые могут посылать "escape" последовательности ANSI (аналогично тем, которые вы получаете с помощью клавиш со стрелками или функциональных клавиш), но вы все равно не можете использовать те, что с stty, потому что для этого по-прежнему требуется один байт. Вы не можете привязать ключ прерывания к многобайтовой последовательности; это было бы просто забрать первый байт.

Поэтому единственное, что вы можете сделать, это каким-то образом взломать само приложение терминала, чтобы оно отправляло байт 0x03, когда оно получает нажатие клавиши Super+C. Некоторые эмуляторы терминала поддерживают это с помощью общих "горячих клавиш", другие могут нуждаться в реальных исправлениях исходного кода.

Другие вопросы по тегам