一台电脑上有两个键盘。当我用 AI 写字时想要美式键盘布局,当我用 BI 时想要瑞典语。可能的?

Del*_*ted 54 linux keyboard keyboard-layout input-languages

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

这可能吗?我将如何去做?

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

fli*_*ken 43

首先,您必须找到要更改的键盘的设备 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)]
Run Code Online (Sandbox Code Playgroud)

然后使用 setxkbmap 更改布局:

$ setxkbmap -device 9 dvorak
Run Code Online (Sandbox Code Playgroud)

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

$ setxkbmap -device 9 -layout dvorak
Run Code Online (Sandbox Code Playgroud)

  • 那么在启动时设置此配置而不是手动调用 setxkbmap 的最佳方法是什么? (10认同)

小智 10

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

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或类似的命令中。


zan*_*ray 10

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

我的情况: 我有一个快乐的黑客键盘,它通过 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
Run Code Online (Sandbox Code Playgroud)

第一部分基本上是说对于任何标准键盘,将 us 布局与自定义变体一起应用。第二部分说对于happy hacking 键盘,使用带有基本变体的us 布局。

您可以根据一堆参数来匹配设备:xorg doc


小智 5

根据 setxkbmap 的 -device 参数判断,这是可能的:

       -设备设备
               指定输入设备的数字设备 ID
               更新了新的键盘布局。如果未指定,则
               X 服务器的核心键盘设备已更新。

但是,自然而然,我目前没有第二个键盘可以尝试。

- 德沃夏克用户


小智 1

我认为你不能完全按照你想要的方式做到这一点。据我所知有两种选择:

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

对于 Ubuntu/GNOME:

鼠标点击

在 Ubuntu / Gnome 中,如果您设置了输入布局,请转到面板上的空白位置,右键单击并单击“添加到面板”。选择“键盘指示器”将其添加到面板中。这应该输入一小段文本来指示您的键盘布局,您可以单击它进行切换。

键盘快捷键

系统 -> 首选项 -> 键盘 -> 布局 -> 布局选项

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

我想 KDE 也有一种方法可以做到这一点。

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