題 一台計算機上的兩個鍵盤。當我用A書寫時,我想要一個美國鍵盤佈局,當我使用B時我想要瑞典語。可能?


我有一台筆記本電腦,我使用外接鍵盤。當我使用外部鍵盤鍵入時,我想使用美式鍵盤佈局,因為這是我所擁有的外部鍵盤類型。另一方面,當我使用集成鍵盤鍵入時,我想使用瑞典語佈局。

這可能嗎?我該怎麼做呢?

我在這裡問,因為我認為我們會在這裡找到大多數Linux專業知識。


43
2017-11-26 20:38


起源




答案:


首先,您必須找到要更改的鍵盤的設備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

36
2018-06-07 13:41



嗨,我做了這個,除了箭頭鍵和其他方向鍵(它們根本不再起作用)之外,它對一切都很有效。可能是鍵盤是那些具有時髦鍵映射的符合人體工程學的鍵盤之一......任何想法如何讓那些再次工作? - btelles
那麼在啟動時設置此配置的最佳方法是什麼,而不必手動調用setxkbmap? - Richard Turner


我可以肯定地說,你想要做的事情確實是可能的。我首先實現了指定的場景

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 或類似的。


8
2017-11-28 05:58





有可能,通過setxkbmap的-device參數判斷:

        - 設備
               指定輸入設備的數字設備ID
               使用新的鍵盤佈局進行更新。如果沒有指定,
               X服務器的核心鍵盤設備已更新。

當然,我現在沒有第二個鍵盤可以嘗試。

-Dvorak用戶


5
2017-11-28 03:45



哼。 -device 0切換兩者,-device 2(應該是每個Arkenklo的答案的板載鍵盤)不會切換任何東西,至少在我的筆記本電腦和USB鍵盤上。 - Tommy McGuire


雖然這個問題有點老,但我想我會分享我的解決方案,因為其他答案都沒有解決如何在啟動時進行這項工作。

我的情況: 我有一個快樂的黑客鍵盤,它通過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

第一部分基本上是針對任何標準鍵盤,使用自定義變體應用us佈局。第二部分說明了快樂的黑客鍵盤,使用美國佈局與基本變體。

您可以根據一組參數匹配設備: xorg doc


5
2017-07-28 21:31



你遲到的答案可能值得一個遲到的評論...你在兩者中都有標識符“Happy Hacking Kbd”...我認為這可能是一個錯誤,第一個輸入類標識符可能應該是“通用鍵盤” - Daniel
@Daniel標識符實際上是不同的,“快樂黑客鍵盤”vs“快樂黑客鍵盤”,但只是略有:) - zanegray
謝謝你的正確! ......我責怪我的壞眼鏡:)> v - Daniel


我認為你不能按照你想要的方式做到這一點。我知道有兩種選擇:

1)您可以通過簡單的鼠標點擊/按鍵切換。

使用Ubuntu / GNOME:

鼠標單擊

在Ubuntu / Gnome中,如果您設置了輸入佈局,請轉到面板上的空白處,右鍵單擊並單擊“添加到面板”。選擇“鍵盤指示器”將其添加到面板。這應該輸入一小段文字,表明你的鍵盤佈局,你可以點擊它來切換。

鍵盤快捷鍵

系統 - >首選項 - >鍵盤 - >佈局 - >佈局選項

那裡有一個選項“Key(s)to change layout”。您可以將其設置為Alt + Shift,這不應該干擾任何正常的鍵盤快捷鍵。

我認為還有一種KDE方式。

2)另一種選擇是 http://en.wikipedia.org/wiki/Xneur,但我不確定這是否適用於瑞典語,並且對於具有類似英語結構的語言可能無法實現。


0
2017-11-26 23:05