Gnome Tweak Tools 键盘布局选项 - 仅为蓝牙键盘设置?

Gnome Tweak Tools 键盘布局选项 - 仅为蓝牙键盘设置?

当我使用烦人的外部 Apple 魔术键盘时,我在 Tweak Tools 中启用了这个有用的设置:

在此处输入图片描述

这个设置使得键盘功能在我看来正常(超级键位于控制键的右边)。

但是,调整工具中的这个设置也会影响我的笔记本电脑自己的键盘映射。我能以某种方式只针对这个烦人的外置 Apple 魔术键盘进行此设置吗?

答案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. (Pablo Bianchi 评论)https://superuser.com/questions/277990/how-do-i-swap-alt-and-windows-keys-with-xmodmap
  5. (Pablo Bianchi 评论)https://unix.stackexchange.com/questions/86933/swap-alt-and-super

答案2

总的来说,这是一个答案,因为它缺乏完整性,但我只会使用 setxkbmap 将按键交换选项分配给特定键盘。

xinput将为你提供键盘的 ID

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#!^ 答案)
所以你只需要想象我的输出中有第二个键盘,它有一个唯一的 id

如果我仅要更改其中一个键盘(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

现在通过这种方式构造一个 id:

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

我认为名字并不重要,但我不确定。

该文件应包含我们刚刚创建的 ID 和键的重新映射:

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

如何找到名称?只需执行sudo evtest“查找键盘”并按下要更改的键即可。输出如下所示:

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

使用该输出来构建所需的密钥并进行更改。

接下来,sudo 运行以下命令进行更新:

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

那么你就完成了。

相关内容