Я не знаю то, что вызывает эту проблему или как зафиксировать это, но я могу предложить обходное решение в большинстве целей.
Обычно, мертвые клавиши обрабатываются на очень низком входном слое, даже не видимом от Lisp. Но можно сделать обработку в Lisp.
Уже существует ограниченный механизм для мертвых клавиш в Lisp, разработанном для 8-разрядных наборов символов на машинах, которые не имеют никакого способа ввести символы неASCII. Если Вы вводите C-x 8
сопровождаемый диакритическим знаком и буквой, соответствующая буква с диакритическим знаком вставляется, благодаря iso-transl
библиотека. Мы можем скопировать этот механизм. Вставьте это Ваш .emacs
:
(define-key key-translation-map [dead-grave] (lookup-key key-translation-map "\C-x8`"))
(define-key key-translation-map [dead-acute] (lookup-key key-translation-map "\C-x8'"))
(define-key key-translation-map [dead-circumflex] (lookup-key key-translation-map "\C-x8^"))
(define-key key-translation-map [dead-diaeresis] (lookup-key key-translation-map "\C-x8\""))
(define-key key-translation-map [dead-tilde] (lookup-key key-translation-map "\C-x8~"))
(define-key isearch-mode-map [dead-grave] nil)
(define-key isearch-mode-map [dead-acute] nil)
(define-key isearch-mode-map [dead-circumflex] nil)
(define-key isearch-mode-map [dead-diaeresis] nil)
(define-key isearch-mode-map [dead-tilde] nil)
Карта key-translation-map
переписывает сочетания клавиш, поскольку они вводятся, таким образом, это обесточит 'эквивалент à в большинстве целей. Записи установки Explicitly в isearch-mode-map
кому: nil
необходимо, потому что иначе нажатие мертвой клавиши вышло бы из isearch, прежде чем перевод мог умереть.
(define-key key-translation-map [dead-grave] "`")
(define-key key-translation-map [dead-acute] "'")
(define-key key-translation-map [dead-circumflex] "^")
(define-key key-translation-map [dead-diaeresis] "\"")
(define-key key-translation-map [dead-tilde] "~")
Ваши приемники будут все иметь свойство, которое можно использовать для понимания этого- device.bus_path
и sysfs.path
. Можно исследовать их с pactl list sinks
.
В идеальном мире Ваши USB-устройства будут все иметь уникальные порядковые номера, которые Вы видите в device.serial
свойство, которое позволило бы Вам определять устройство независимо от порта, к которому оно включается. К сожалению, большинство производителей устройств не беспокоится установкой этого к уникальному значению на единицу.