一台电脑上有两个键盘。当我使用 AI 书写时,我想要美国键盘布局;当我使用 BI 书写时,我想要瑞典语。可以吗?

一台电脑上有两个键盘。当我使用 AI 书写时,我想要美国键盘布局;当我使用 BI 书写时,我想要瑞典语。可以吗?

我有一台笔记本电脑,我使用外接键盘。当我使用外接键盘打字时,我想使用美式键盘布局,因为我有这种类型的外接键盘。另一方面,当我使用集成键盘打字时,我想使用瑞典式布局。

这可能吗?我该怎么做呢?

我在这里提问是因为我认为我们可以在这里找到大多数 Linux 专业知识。

答案1

首先,您必须找到要更改的键盘的设备 ID:

$ xinput -list | grep -i key
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ LITEON Technology USB Keyboard            id=9    [slave  keyboard (3)]
    ↳ LITEON Technology USB Keyboard            id=10   [slave  keyboard (3)]

然后使用 setxkbmap 更改布局:

$ setxkbmap -device 9 dvorak

setxkbmap 的某些版本需要“-layout”参数:

$ setxkbmap -device 9 -layout dvorak

答案2

虽然这个问题有点老了,但我还是想分享我的解决方案,因为没有其他答案解决如何在启动时完成这项工作。

我的情况: 我有一个 Happy Hacking 键盘,通过 USB 插入,其按键可以移动(控制大写锁定的位置等)。我大部分时间都使用它,但有时我想使用标准笔记本电脑键盘或其他 USB 键盘。对于这些键盘,我创建了一个自定义键盘布局。

诀窍在于,自定义键盘布局不应应用于 Happy Hacking Keyboard。

解决方案: 我创建了一个这样的 Xorg 配置文件:

$ cat /etc/X11/xorg.conf.d/30-keyboard.conf 
Section "InputClass"
        Identifier "Happily Hacked Keyboard"
        MatchDevicePath "/dev/input/event*"
        MatchIsKeyboard "on"
        Driver "evdev"

        Option "XkbLayout" "us"
        Option "XkbVariant" "hhk"
EndSection

Section "InputClass"
        Identifier "Happy Hacking Keyboard"
        MatchIsKeyboard "on"
        MatchVendor "Topre_Corporation"
        Driver "evdev"

        Option "XkbLayout" "us"
        Option "XkbVariant" "basic"
EndSection

第一部分基本上说的是,对于任何标准键盘,都应将美国布局与自定义变体结合使用。第二部分说的是,对于 Happy Hacking 键盘,应将美国布局与基本变体结合使用。

您可以根据一系列参数匹配设备:xorg 文档

答案3

我可以肯定地说,你想做的事确实是可能的。我首先通过以下方式实现了指定的场景

sudo cat /dev/input/event(0,1,2..)

在每个键盘上打字时,我都会检查键盘是否被识别为单独的设备。然后,我简单地尝试了一下,尝试了

setxkbmap -device (1-x) us

我发现setxkbmap -device 1 us配置了两个(所有)键盘,而setxkbmap -device 6 us只影响了辅助键盘。相关因素可能是它们都是通过 PS/2 连接的。

当然,这不能保证对您有用,甚至不能归类为正确答案,但它证实了这是完全可能的。我不知道各个键盘是根据哪种方案命名的/dev/input,但我确信可以在 udev 中指定名称,从而可以放入适当的setxkbmap命令/etc/rc.local或类似命令。

答案4

我认为您无法完全按照自己想要的方式做到这一点。我知道有两种选择:

1) 您可以通过简单的鼠标单击/按键进行切换。

使用 Ubuntu/GNOME:

鼠标单击

在 Ubuntu / Gnome 中,只要您已设置输入布局,请转到面板上的空白处,右键单击,然后单击“添加到面板”。选择“键盘指示器”将其添加到面板。这将输入一小段文本,指示您的键盘布局,您可以单击它进行切换。

键盘快捷键

系统 -> 偏好设置 -> 键盘 -> 布局 -> 布局选项

那里有一个选项“更改布局的键”。您可以将其设置为 Alt+Shift,这不会干扰任何正常的键盘快捷键。

我推测 KDE 也有办法做到这一点。

2)另一种选择是http://en.wikipedia.org/wiki/Xneur,但我不确定这是否适用于瑞典语,而且对于具有与英语相似结构的语言来说可能也不可能。

相关内容