Как узнать, какое значение имеет клавиша клавиатуры? (привязка клавиш dwm)

Консоли иногда требуетсяreset(1)(или какая-тоstty(1)команда ), потому что состояние псевдо-терминала -не меняется, когда какой-либо процесс (, например. программа, запущенная вашей оболочкой ), завершается.

Прочтите демистифицированный tty .

(Я считаю работу с псевдо--терминалами и псевдотерминалом самой сложной частью Linux)

Is there a strategy how this problem is addressed in the major programming languages?

Хорошо -работающая программа, имеющая дело с терминалом и изменяющая его режим или линейную дисциплину, должна изо всех сил стараться избежать сбоев и выполнять соответствующие вызовы (см. termios (3))для установки терминал в правильном состоянии. Кстати, такие библиотеки, как ncurses или readline , полезны (, но вам нужно правильно вызывать их подпрограммы очистки ).

См. сигнал (7)и сигнал -безопасность (7). Избежать сбоев в вашем коде сложно. Читайте о неопределенном поведении .

Несовершенным обходным решением может быть определение функции оболочки, которая запускает вашу программу, а затем выполняетreset(что иногда может быть неуместным ).

0
31.12.2019, 12:45
1 ответ

Определение

#define XF86AudioMute 0x1008ff12

исходит из заголовочного файла XF86keysym.h, хотя пишется по-другому:

#define XF86XK_AudioMute        0x1008FF12   /* Mute sound from the system */

Чтобы найти символы клавиш, которые отправляет ваша клавиатура, используйте xev. Не все клавиши будут отправлять символы клавиш, однако (в этом случае вы мало что можете сделать ).

Дополнительная литература:

1
28.01.2020, 02:58

Теги

Похожие вопросы