Мне очень везло с С 7 zip. Если у Вас есть лошадиная сила, это способно к работе с очень большим окном. Удостоверьтесь, что Ваши исходные файлы являются максимально несжатыми, таким образом, это может найти общие черты. (Для файлов Excel в разнородной среде, например, это означает разархивировать их содержание сначала, так как xlsx файлы слегка сжаты, когда они хранятся. Я однажды смог сжать 600 мебибайт + почти избыточных файлов версий Excel вниз к нескольким сотням кибибайт.)
Пока я нашел правильное решение, я отвечу на свой вопрос.
Существует программа с именем keyfuzz , которая может изменять раскладки клавиатуры, используемые ядром, в зависимости от устройств ввода, то есть отдельно для каждой клавиатуры, подключенной к компьютеру.
Есть две проблемы с этой программой, которые не описаны должным образом в документации:
/ dev / console
, которая выдает «стандартные» коды сканирования, независимо от клавиатура. Чтобы проверить скан-коды клавиатуры на основе ее адреса / dev / input / KEYBOARD
, вам необходимо использовать программу с именем getscancodes . Обратите внимание, что загруженный файл по указанной выше ссылке не сжат должным образом. Он называется getscancodes.tar.gz
, но сжат с помощью алгоритма ZIP. Пакет содержит исходный код, а также предварительно скомпилированные двоичные файлы.
В моем случае конфигурационный файл keyfuzz выглядит так:
### evdev 1.0.0., driver 'TK Stealth keyboard'
### Proper old-style numpad handling
0x70059 107
0x7005A 108
0x7005B 109
0x7005C 105
0x7005D 108
0x7005E 106
0x7005F 102
0x70060 103
0x70061 104
0x70062 110
0x70063 111
Решение состоит в том, чтобы использовать файлы правил udev
и запустить keyfuzz при добавлении необходимой клавиатуры.
Для этого вам нужно добавить файл /etc/udev/rules.d/mykeyboard.rules
, содержащий (в моем случае):
ACTION=="add", ATTRS{idVendor}=="2516", RUN+="/usr/lib/systemd/scripts/keyfuzz start"
Теперь, после подключения клавиатуры , запустится сценарий запуска keyfuzz и внесет исправления в таблицы декодирования клавиатуры.