Zwei Tastaturen an einem Computer. Wenn ich mit AI schreibe, möchte ich ein US-amerikanisches Tastaturlayout, wenn ich BI verwende, möchte ich Schwedisch. Möglich?


47

Ich habe einen Laptop, mit dem ich eine externe Tastatur benutze. Wenn ich mit der externen Tastatur tippe, möchte ich ein US-amerikanisches Tastaturlayout verwenden, da dies der Typ der externen Tastatur ist, den ich habe. Wenn ich dagegen über die integrierte Tastatur tippe, möchte ich ein schwedisches Layout verwenden.

Ist das möglich? Und wie würde ich das machen?

Ich frage hier, da ich denke, dass wir hier die meiste Linux-Expertise finden werden.

Antworten:


41

Zuerst müssen Sie die Geräte-ID der Tastatur ermitteln, um sie zu ändern:

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

Dann ändern Sie das Layout mit setxkbmap:

$ setxkbmap -device 9 dvorak

Einige Versionen von setxkbmap benötigen ein Argument '-layout':

$ setxkbmap -device 9 -layout dvorak

Hallo zusammen, ich habe dies getan und es funktioniert hervorragend für alles außer für die Pfeiltasten und andere Richtungstasten (die überhaupt nicht mehr funktionieren). Es könnte sein, dass die Tastatur eine jener ergonomischen Tastaturen ist, die ausgefallene Tastenbelegungen haben ... Hast du eine Idee, wie du sie wieder zum Laufen bringen kannst?
btelles

8
Was ist der beste Weg, um diese Konfiguration beim Booten festzulegen, anstatt setxkbmap manuell aufrufen zu müssen?
Richard Turner

9

Ich kann mit Bestimmtheit sagen, dass das, was Sie tun möchten, tatsächlich möglich ist. Ich habe das angegebene Szenario zuerst erreicht

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

während Sie auf jeder Tastatur tippen, um sicherzustellen, dass sie als separate Geräte erkannt wurden. Dann habe ich einfach Trial-and-Error angewendet und experimentiert

setxkbmap -device (1-x) us.

Ich habe festgestellt, dass setxkbmap -device 1 usbeide (alle) Tastaturen konfiguriert sind, während setxkbmap -device 6 usnur die sekundäre betroffen ist. Von Bedeutung ist vielleicht, dass beide über PS / 2 verbunden waren.

Dies wird natürlich nicht garantiert für Sie arbeiten und nicht einmal als richtige Antwort klassifizieren, aber es bestätigt, dass es überhaupt möglich ist. Ich weiß nicht, nach welchem ​​Schema die einzelnen Tastaturen benannt sind /dev/input, aber ich bin mir sicher, dass die Namen in udev angegeben werden können, um den entsprechenden setxkbmapBefehl /etc/rc.localoder Ähnliches einzugeben .


9

Obwohl diese Frage ein bisschen alt ist, hätte ich gedacht, dass ich meine Lösung teilen würde, da sich keine der anderen Antworten mit der Frage befasst, wie diese Funktion beim Booten funktioniert.

Meine Situation: Ich habe eine Happy Hacking-Tastatur, die über einen USB-Anschluss angeschlossen wird, über den Tasten bewegt werden (Kontrolle über die Feststelltaste usw.). Ich benutze dies die meiste Zeit, aber manchmal möchte ich die Standard-Laptop-Tastatur oder eine andere USB-Tastatur verwenden. Für diese Tastaturen habe ich ein benutzerdefiniertes Tastaturlayout erstellt.

Der Trick ist, dass das benutzerdefinierte Tastaturlayout nicht auf die Happy Hacking-Tastatur angewendet werden sollte.

Lösung: Ich habe eine Xorg-Konfigurationsdatei erstellt:

$ 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

Der erste Teil besagt grundsätzlich, dass für jede Standardtastatur das US-Layout mit der benutzerdefinierten Variante angewendet werden muss. Der zweite Teil besagt, dass für die Happy Hacking-Tastatur das US-Layout mit der Basisvariante verwendet wird.

Sie können Geräte anhand einer Reihe von Parametern zuordnen : xorg doc


Ihre späte Antwort verdient vielleicht einen späten Kommentar ... Sie haben Identifier als "Happy Hacking Kbd" in beiden ... Ich denke, das ist wahrscheinlich ein Fehler, der erste InputClass Identifier sollte wahrscheinlich "Generic Keyboard" sein
Daniel

1
@ Daniel Die Bezeichner sind eigentlich unterschiedlich, "Happily Hacked Keyboard" vs "Happy Hacking Keyboard", aber nur geringfügig :)
zanegray

danke für das richtige! ... Ich beschuldige meine schlechte Lesebrille:)> v
Daniel

... aber diese (für die Tastatur sehr funktionierende, auch unterschiedliche Mehrfach-Layouts zum Durchlaufen sind möglich !, wie wir, ru, ua auf einer und de, cz, ua auf der zweiten Tastatur) Änderung hat für mich irgendwie meine mittlere Maustaste getötet von meiner externen USB-Maus.
Müssen

Ich würde es lieben, wenn diese Lösung für mich funktioniert, aber sie funktioniert nicht - vielleicht, weil ich die Hersteller-ID nicht richtig finde? Der Befehl "lsusb -v | grep -e idVendor" gab mir "0x09da A4Tech Co., Ltd." Also habe ich auch verschiedene Optionen ausprobiert (ohne Hexcode, Unterstrich statt Leerzeichen usw.). Dann habe ich versucht, die Lieferanten-ID über "xinput list" und "udevadm info" (A4TECH) zu erhalten. Ich habe sogar die Nummer 30 in 50 geändert, auch weil ich eine Datei "/usr/share/X11/xorg.conf.d/40-libinput.conf" mit einer globalen Tastaturkonfiguration habe. Aber ich konnte nicht weiterkommen. Irgendwelche Ideen bitte? (Ubuntu 18.04)
Sadi

5

Nach dem Argument -device könnte es möglich sein, setxkbmap zu setzen:

       -Gerät
               Gibt die numerische Geräte-ID des Eingabegeräts an, das verwendet werden soll
               aktualisiert mit dem neuen Tastaturlayout. Wenn nicht anders angegeben, wird die
               Das Haupttastaturgerät des X-Servers wird aktualisiert.

Natürlich habe ich im Moment keine zweite Tastatur, um sie auszuprobieren.

-Ein Dvorak-Benutzer


Hmph. -device 0 schaltet beide um, -device 2 (sollte laut Arkenklo die integrierte Tastatur sein) schaltet nichts um, zumindest auf meinem Laptop und meiner USB-Tastatur.
Tommy McGuire

1

Ich glaube nicht, dass du das genau so machen kannst, wie du es willst. Ich kenne zwei Möglichkeiten:

1) Sie können das Umschalten mit einem einfachen Mausklick / Tastendruck vornehmen.

Mit Ubuntu / GNOME:

Mausklick

Gehen Sie in Ubuntu / Gnome, sofern Sie Ihre Eingabe-Layouts eingerichtet haben, zu einer leeren Stelle in Ihrem Panel, klicken Sie mit der rechten Maustaste und klicken Sie auf "Zum Panel hinzufügen". Wählen Sie 'Tastaturanzeige', um diese dem Bedienfeld hinzuzufügen. Das sollte ein winziges Stück Text sein, das Ihr Tastaturlayout anzeigt, und Sie können darauf klicken, um zu wechseln.

Tastaturkürzel

System -> Einstellungen -> Tastatur -> Layouts -> Layoutoptionen

Dort gibt es die Option "Schlüssel zum Ändern des Layouts". Sie können Alt + Umschalt einstellen, was keine normalen Tastaturkürzel stören sollte.

Ich nehme an, dass es auch einen KDE-Weg gibt, dies zu tun.

2) Die andere Alternative ist http://en.wikipedia.org/wiki/Xneur , aber ich bin nicht sicher, ob dies für Schwedisch verfügbar ist und es möglicherweise nicht für Sprachen möglich ist, die ähnliche Konstrukte wie Englisch haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.