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

665
StudioMatrix Webmaster

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

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

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

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

stty intr Super_L + C 

Например.

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

1

1 ответ на вопрос

1
grawity

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

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

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

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

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

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

Ах имеет смысл. Спасибо друг StudioMatrix Webmaster 7 лет назад 0