Оказывается, у моего коллеги была такая же проблема. С его разрешения вот решение, которое сработало сразу:
Сначала запустите это и перейдите к информации о клавиатуре.
Бег кошка /proc/bus/input/devices | меньше
I: Шина = 0005 Поставщик = 004c Продукт = 026c Версия = 0160
N: Name="Волшебная клавиатура с цифровой панелью"
П: Физ=44:е5:17:96:76:24
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:004C:026C.0007/input/input38
U: Uniq=c4:14:11:03:c2:de
H: индикаторы Handlers=sysrq kbd event20
Б: ПРОП=0
Б: EV=120013
B: KEY=10000 0 0 1 1007b00001007 ff9f207ac14057ff ffbeffdfffeffffff fffffffffffffffe
Б: МСК=10
Б: светодиод=1f
Теперь создайте идентификатор следующим образом:
evdev:input:b<bus_id>v<vendor_id>p<product_id>e<version_id>-<modalias>
Где версия и модальности не имеют значения. Я получаю это:
evdev: ввод: b0005v004Cp026C*
Далее создайте этот файл
etc/udev/hwdb.d/60-applekeyboard.hwdb
Я не думаю, что имя имеет значение, но я не уверен.
Файл должен содержать только что сделанный нами ID и переназначение ключей:
# Яблочная магия
evdev: ввод: b0005v004Cp026C*
KEYBOARD_KEY_700e2 = левая мета
KEYBOARD_KEY_700e3=налево
Как найти имена? просто выполнить судо эвтест
найдите свою клавиатуру и нажмите клавишу, которую хотите изменить. Вывод выглядит следующим образом:
Событие: время 1644400418.762658, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 700e3
Событие: время 1644400418.762658, тип 1 (EV_KEY), код 56 (KEY_LEFTMETA), значение 1
Используйте этот вывод для создания нужного ключа и изменения.
Затем sudo запустите эти команды для обновления:
обновление systemd-hwdb
udevadm control --reload-rules
триггер udevadm
Тогда все готово.