Невозможно назначить горячую клавишу на моей клавиатуре (XF86Mail)

Лицензии пакетов описаны в /usr/share/doc/${package}/copyright. Этот файл необходим для указания основной лицензии пакета; многие пакеты используют машиночитаемый copyright файл, в котором перечислены лицензии каждого отдельного файла исходного пакета.

Для машиночитаемых файлов можно использовать строку License:, которая представляет лицензии:

awk '/^License:/ { print $2 }' /usr/share/doc/*/copyright | sort -u

Если вы ищете лицензию, документированную в /usr/share/common-licenses, вы можете поискать упоминания о них в copyright файлах; например. для подсчета количества пакетов, лицензированных под GPL или LGPL:

grep -l GPL /usr/share/doc/*/copyright | wc -l

Чтобы подсчитать только количество исходных пакетов, подсчитайте количество уникальных файлов (бинарные пакеты, поставляемые из одного исходного пакета, имеют точно такой же copyright файл или ссылку на тот же файл):

md5sum $(grep -l GPL /usr/share/doc/*/copyright) | sort -k1,1 -u | wc -l

Debsources предоставляет различные способы поиска по всем copyright файлам Debian; вот однострочная строка для получения лицензии отдельного файла (если его пакет использует машиночитаемый формат). (Лицензия этого однострочника не документирована, поэтому я просто ссылаюсь на него, а не копирую его сюда.)

Обратите внимание, что поскольку файлы copyright документируют лицензии исходных пакетов, они вполне могут документировать файлы, которые не поставляются в двоичных пакетах и не влияют на лицензию двоичного пакета; это может быть, например, в случае с файлами под лицензией GPL, которые используются только при сборке пакета без лицензии GPL.

1
05.04.2019, 23:49
1 ответ

1 )С помощью xevя обнаружил, что ключ работает.

2 )Проверив вывод xevна заведомо "исправные" ключи, а не -рабочие (XF86Mail), обнаружил разницу:

Работает в связке клавиш:

KeyRelease event, serial 48, synthetic NO, window 0x2000001,
    root 0x1e3, subw 0x0, time 70102367, (1618,-868), root:(3219,29),
    state 0x10, keycode 158 (keysym 0x1008ff2e, XF86WWW), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Не работает при привязке клавиш:

KeyRelease event, serial 48, synthetic NO, window 0x2000001,
    root 0x1e3, subw 0x0, time 70103895, (1618,-868), root:(3219,29),
    state 0x10, keycode 223 (keysym 0x1008ff19, XF86Mail), same_screen YES,
--> XKeysymToKeycode returns keycode: 163
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Итак, есть множество вариантов на выбор:

  1. код клавиши :163 (0xA3)
  2. код клавиши :223 (0xDF)
  3. «XF86Mail»

Перепробовал все из них, и работал только один 0xDF.(<keybind key="0xDF">в конфиге openbox)

Судя по номерам, поскольку XF86WWW имеет код клавиши 158, XF86Mail, клавиша рядом с ним на клавиатуре, вероятно, изначально имела код клавиши 163, но затем программный уровень изменил его.

Я начал копаться в таких вещах, как xmodmapи руководство по архвики , но тогда мне не нужно было понимать, что происходит, xevодин дал мне решение, как только я в состоянии это понять.

0
28.01.2020, 00:16

Теги

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