Параметры раскладки клавиатуры Gnome Tweak Tools — установлены только для Bluetooth-клавиатуры?

Параметры раскладки клавиатуры Gnome Tweak Tools — установлены только для Bluetooth-клавиатуры?

У меня включена эта полезная настройка в Tweak Tools, когда я использую раздражающую внешнюю клавиатуру Apple Magic Keyboard:

введите описание изображения здесь

Эта настройка делает клавиатуру, на мой взгляд, нормальной (клавиша «super» находится справа от клавиши «control»).

Однако эта настройка в инструменте tweak также влияет на собственную раскладку клавиатуры моего ноутбука. Могу ли я как-то сделать эту настройку только для этой раздражающей внешней клавиатуры Apple Magic?

решение1

Вы можете использовать xkbcomp, и подробный процесс описанздесь. Вам нужно найти коды для клавиш, которые нужно переназначить. Другие ответы в том же OP могут быть полезны.

xkeycapsможет пригодиться.

Связанный>

  1. Как переназначить определенные клавиши или устройства?
  2. https://dev.to/0xbf/remap-keys-in-the-keyboard-in-ubuntu-5a36
  3. http://www.fascinatingcaptain.com/projects/remap-keyboard-keys-for-ubuntu/
  4. (В комментарии Пабло Бьянки)https://superuser.com/questions/277990/how-do-i-swap-alt-and-windows-keys-with-xmodmap
  5. (В комментарии Пабло Бьянки)https://unix.stackexchange.com/questions/86933/swap-alt-and-super

решение2

В целом это #!^ ответ из-за его неполноты, но я бы просто назначил опцию замены клавиш для конкретной клавиатуры с помощью setxkbmap.

xinputвыдаст вам идентификатор вашей клавиатуры

wutang@shaolin:~$ xinput

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ VirtualBox mouse integration              id=9    [slave  pointer  (2)]
⎜   ↳ VirtualBox USB Tablet                     id=10   [slave  pointer  (2)]
⎜   ↳ ImExPS/2 Generic Explorer Mouse           id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Sleep Button                              id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]

полное раскрытие информации Я чрезвычайно ленив и не беспокою свою виртуальную машину, чтобы передать вторую клавиатуру, с которой я тестировал, и еще более ленив, что не настраиваю копирование и вставку с хоста (--> VM), который на самом деле показывает 2 клавиатуры... (s#!^ ответ)
так что вам просто нужно представить, что в моем выводе есть вторая клавиатура с уникальным идентификатором

Если я собираюсь изменить только одну из своих клавиатур (клавиатура AT Translated Set 2):
setxkbmap -device 11 -option altwin:swap_lalt_lwin

Я предполагаю, что это не навсегда; возможно, проблема исчезнет, ​​если вы отключите клавиатуру, выйдете из системы или выключите питание.

Флаг -option без указания параметра удаляет все параметры.

решение3

Оказывается, у моего коллеги была та же проблема. С его разрешения вот решение, которое сработало сразу:

Сначала запустите это и прокрутите до информации о клавиатуре. Выполнитьcat /proc/bus/input/devices | less

I: Bus=0005 Vendor=004c Product=026c Version=0160
N: Name="Magic Keyboard with Numeric Keypad"
P: Phys=44:e5: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 leds 
B: PROP=0
B: EV=120013
B: KEY=10000 0 0 1 1007b00001007 ff9f207ac14057ff ffbeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f

Теперь создадим идентификатор следующим образом:

evdev:input:b<bus_id>v<vendor_id>p<product_id>e<version_id>-<modalias>

Где версия и модальности не имеют значения. Я понимаю это:

evdev:input:b0005v004Cp026C*

Далее создайте этот файл

etc/udev/hwdb.d/60-applekeyboard.hwdb

Я не думаю, что имя имеет значение, но я не уверен.

Файл должен содержать только что созданный нами идентификатор и переназначение ключей:

# Apple magic
evdev:input:b0005v004Cp026C*
 KEYBOARD_KEY_700e2=leftmeta
 KEYBOARD_KEY_700e3=leftalt

Как найти имена? Просто выполните sudo evtestfind вашей клавиатуры и нажмите клавишу, которую вы хотите изменить. Вывод выглядит следующим образом:

Event: time 1644400418.762658, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3
Event: time 1644400418.762658, type 1 (EV_KEY), code 56 (KEY_LEFTMETA), value 1

Используйте этот вывод для создания нужного ключа и изменения.

Далее выполните следующие команды для обновления:

systemd-hwdb update
udevadm control --reload-rules
udevadm trigger

Вот и все.

Связанный контент