Dwie klawiatury na jednym komputerze. Kiedy piszę z AI, chcę układ klawiatury w USA, kiedy używam BI, chcę szwedzkiego. Możliwy?

47

Mam laptopa, z którym korzystam z zewnętrznej klawiatury. Kiedy piszę za pomocą klawiatury zewnętrznej, chcę użyć układu klawiatury amerykańskiej, ponieważ taki mam typ klawiatury zewnętrznej. Z drugiej strony, kiedy piszę za pomocą zintegrowanej klawiatury, chciałbym użyć szwedzkiego układu.

czy to możliwe? A jak miałbym to zrobić?

Pytam tutaj, ponieważ myślę, że znajdziemy tutaj większość wiedzy na temat Linuksa.

Usunięte
źródło

Odpowiedzi:

41

Najpierw musisz znaleźć identyfikator urządzenia klawiatury, aby zmienić:

$ 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)]

Następnie zmień układ za pomocą setxkbmap:

$ setxkbmap -device 9 dvorak

Niektóre wersje setxkbmap wymagają argumentu „-layout”:

$ setxkbmap -device 9 -layout dvorak
wzdrygnąć się
źródło
Cześć, zrobiłem to i działa świetnie dla wszystkiego oprócz klawiszy strzałek i innych klawiszy kierunkowych (które już nie działają). Możliwe, że klawiatura jest jedną z tych ergonomicznych, które mają funkcyjne odwzorowania klawiszy ... jakiś pomysł, jak sprawić, by znów działały?
btelles
8
Więc jaki jest najlepszy sposób, aby ustawić tę konfigurację podczas uruchamiania zamiast ręcznie wywoływać setxkbmap?
Richard Turner,
9

Mogę powiedzieć, że to, co chcesz zrobić, jest rzeczywiście możliwe. Najpierw osiągnąłem określony scenariusz

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

podczas pisania na każdej klawiaturze, aby upewnić się, że zostały rozpoznane jako osobne urządzenia. Potem po prostu zastosowałem metodę prób i błędów, eksperymentując z

setxkbmap -device (1-x) us.

Odkryłem, że setxkbmap -device 1 usskonfigurowałem obie (wszystkie) klawiatury, podczas gdy setxkbmap -device 6 uswpłynęło tylko na pomocniczą. Być może istotne jest to, że oba były połączone przez PS / 2.

To oczywiście nie gwarantuje, że zadziała dla ciebie i nawet nie kwalifikuje się jako poprawna odpowiedź, ale potwierdza, że ​​jest to w ogóle możliwe. Nie wiem, zgodnie ze schematem /dev/inputnazw poszczególnych klawiatur , ale jestem pewien, że nazwy można podać w udev, dzięki czemu można wstawić odpowiednie setxkbmappolecenie /etc/rc.locallub podobne.

Arkenklo
źródło
9

Chociaż to pytanie jest trochę stare, pomyślałem, że podzielę się moim rozwiązaniem, ponieważ żadna z pozostałych odpowiedzi nie dotyczyła tego, jak uruchomić tę pracę przy rozruchu.

Moja sytuacja: mam klawiaturę Happy Hacking Keyboard, która podłącza się przez usb, a klawisze są przesuwane (kontrola, gdzie jest Caps Lock itp.). Używam tego przez większość czasu, ale czasami chciałbym użyć standardowej klawiatury laptopa lub innej klawiatury USB. Dla tych klawiatur stworzyłem niestandardowy układ klawiatury.

Sztuka polega na tym, że niestandardowego układu klawiatury nie należy stosować do klawiatury Happy Hacking.

Rozwiązanie: Utworzyłem plik konfiguracyjny Xorg jako taki:

$ 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

Pierwsza część w zasadzie mówi o każdej standardowej klawiaturze, zastosuj układ US z niestandardowym wariantem. Druga część mówi o szczęśliwej klawiaturze hakerskiej, użyj układu US z wariantem podstawowym.

Możesz dopasować urządzenia na podstawie kilku parametrów: xorg doc

zanegray
źródło
twoja spóźniona odpowiedź może zasługiwać na spóźniony komentarz ... masz identyfikator jako „Happy Hacking Kbd” w obu… Myślę, że to prawdopodobnie pomyłka, pierwszym Identyfikatorem InputClass powinna być prawdopodobnie „Klawiatura ogólna”
Daniel
1
@Daniel Identyfikatory są rzeczywiście różne, "Happily Hacked klawiatury" vs "Happy Hacking Keyboard", ale tylko nieznacznie :)
zanegray
dzięki za poprawne! ... obwiniam moje złe okulary do czytania:)> v
Daniel
... ale ta (dla świetnie działającej klawiatury, możliwe są także różne różne układy, przez które można przełączać !, jak my, ru, ua na jednej i de, cz, ua na drugiej klawiaturze) zmiana dla mnie w jakiś sposób zabiła mój środkowy przycisk myszy mojej zewnętrznej myszy USB. Muszę poszukać, na czym polega ingerencja ...
Golar Ramblar,
Bardzo bym chciał, gdyby to rozwiązanie działało dla mnie, ale nie działa - może dlatego, że nie mogę poprawnie podać identyfikatora dostawcy? Komenda „lsusb -v | grep -e idVendor” dała mi „0x09da A4Tech Co., Ltd.” więc wypróbowałem także różne opcje (bez kodu szesnastkowego, podkreślenia zamiast spacji itp.). Następnie wypróbowałem identyfikator dostawcy uzyskany poprzez „listę xinput” i „udevadm info” (A4TECH). Zmieniłem nawet liczbę 30 na 50, ponieważ mam plik „/usr/share/X11/xorg.conf.d/40-libinput.conf” zawierający globalną konfigurację klawiatury. Ale nigdzie nie mogłem się dostać. Wszelkie pomysły proszę? (Ubuntu 18.04)
Sadi
5

Może być to możliwe, sądząc po argumencie -device do setxkbmap:

       -Urządzenie urządzenia
               Określa numeryczny identyfikator urządzenia wejściowego
               zaktualizowany o nowy układ klawiatury. Jeśli nie określono,
               podstawowe urządzenie klawiatury X serwera zostało zaktualizowane.

Naturalnie jednak nie mam w tej chwili drugiej klawiatury, aby go wypróbować.

-Użytkownik Dvorak

Tommy McGuire
źródło
Hmph. -device 0 przełącza oba, -device 2 (powinna być wbudowana klawiatura zgodnie z odpowiedzią Arkenklo) niczego nie przełącza, przynajmniej na moim laptopie i klawiaturze USB.
Tommy McGuire,
1

Nie sądzę, że możesz to zrobić dokładnie tak, jak chcesz. Są dwie opcje, które znam:

1) Możesz zmienić zwykłe kliknięcie / naciśnięcie klawisza myszy.

W systemie Ubuntu / GNOME:

Kliknięcie myszką

W Ubuntu / Gnome, pod warunkiem, że masz skonfigurowane układy wejściowe, przejdź do pustego miejsca w panelu, kliknij prawym przyciskiem myszy i kliknij „Dodaj do panelu”. Wybierz „Wskaźnik klawiatury”, aby dodać to do panelu. To powinno wprowadzić mały fragment tekstu wskazujący układ klawiatury i możesz go kliknąć, aby przełączyć.

Skrót klawiszowy

System -> Preferencje -> Klawiatura -> Układy -> Opcje układu

Istnieje opcja „Klucz (y) do zmiany układu”. Możesz ustawić Alt + Shift, co nie powinno zakłócać normalnych skrótów klawiaturowych.

Przypuszczam, że istnieje również sposób na to, aby zrobić to w KDE.

2) Inną alternatywą jest http://en.wikipedia.org/wiki/Xneur , ale nie jestem pewien, czy jest ona dostępna w języku szwedzkim i może nie być możliwa w przypadku języków o konstrukcji podobnej do angielskiej.

Phil
źródło