![Параметры раскладки клавиатуры Gnome Tweak Tools — установлены только для Bluetooth-клавиатуры?](https://rvso.com/image/1071706/%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%20%D1%80%D0%B0%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B8%20%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D1%8B%20Gnome%20Tweak%20Tools%20%E2%80%94%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D1%8B%20%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D0%B4%D0%BB%D1%8F%20Bluetooth-%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D1%8B%3F.png)
У меня включена эта полезная настройка в Tweak Tools, когда я использую раздражающую внешнюю клавиатуру Apple Magic Keyboard:
Эта настройка делает клавиатуру, на мой взгляд, нормальной (клавиша «super» находится справа от клавиши «control»).
Однако эта настройка в инструменте tweak также влияет на собственную раскладку клавиатуры моего ноутбука. Могу ли я как-то сделать эту настройку только для этой раздражающей внешней клавиатуры Apple Magic?
решение1
Вы можете использовать xkbcomp
, и подробный процесс описанздесь. Вам нужно найти коды для клавиш, которые нужно переназначить. Другие ответы в том же OP могут быть полезны.
xkeycaps
может пригодиться.
Связанный>
- Как переназначить определенные клавиши или устройства?
- https://dev.to/0xbf/remap-keys-in-the-keyboard-in-ubuntu-5a36
- http://www.fascinatingcaptain.com/projects/remap-keyboard-keys-for-ubuntu/
- (В комментарии Пабло Бьянки)https://superuser.com/questions/277990/how-do-i-swap-alt-and-windows-keys-with-xmodmap
- (В комментарии Пабло Бьянки)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 evtest
find вашей клавиатуры и нажмите клавишу, которую вы хотите изменить. Вывод выглядит следующим образом:
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
Вот и все.