Due tastiere su un computer. Quando scrivo con AI voglio un layout di tastiera americano, quando uso BI voglio svedese. Possibile?


47

Ho un laptop con cui utilizzo una tastiera esterna. Quando scrivo usando la tastiera esterna voglio usare un layout di tastiera americano, dato che è il tipo di tastiera esterna che ho. D'altra parte, quando scrivo usando la tastiera integrata mi piacerebbe usare un layout svedese.

È possibile? E come potrei fare per farlo?

Sto chiedendo qui perché penso che troveremo la maggior parte delle competenze su Linux qui.

Risposte:


41

Innanzitutto, devi trovare l'ID dispositivo della tastiera per modificare:

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

Quindi modificare il layout utilizzando setxkbmap:

$ setxkbmap -device 9 dvorak

Alcune versioni di setxkbmap richiedono un argomento '-layout':

$ setxkbmap -device 9 -layout dvorak

Ciao, l'ho fatto e funziona benissimo per tutto tranne i tasti freccia e altri tasti direzionali (che non funzionano più). Potrebbe essere che la tastiera sia una di quelle ergonomiche con mappature dei tasti funky ... hai idea di come farle funzionare di nuovo?
1111

8
Quindi qual è il modo migliore per impostare questa configurazione all'avvio invece di dover invocare manualmente setxkbmap?
Richard Turner,

9

Posso affermare positivamente che ciò che vuoi fare è davvero possibile. Per prima cosa ho raggiunto lo scenario specificato

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

mentre si digita su ciascuna tastiera per assicurarsi che siano stati riconosciuti come dispositivi separati. Quindi ho semplicemente applicato tentativi ed errori, sperimentando

setxkbmap -device (1-x) us.

Ho scoperto che setxkbmap -device 1 usconfigurava entrambe le tastiere (tutte), mentre setxkbmap -device 6 usinfluiva solo sul secondario. Di rilievo è forse che entrambi erano collegati tramite PS / 2.

Questo ovviamente non è garantito per te e non si classifica nemmeno come una risposta adeguata, ma conferma che è assolutamente possibile. Non so in base allo schema in cui sono denominate le singole tastiere /dev/input, ma sono sicuro che i nomi possono essere specificati in udev, rendendo possibile inserire il setxkbmapcomando appropriato /etc/rc.localo simile.


9

Sebbene questa domanda sia un po 'vecchia, ho pensato di condividere la mia soluzione poiché nessuna delle altre risposte ha affrontato come avere questo lavoro all'avvio.

La mia situazione: ho una tastiera Happy Hacking che si collega tramite USB con i tasti spostati (controlla dove si trova il blocco maiuscole, ecc.). Lo uso per lo più, ma a volte vorrei usare la tastiera standard del laptop o un'altra tastiera USB. Per queste tastiere ho creato un layout di tastiera personalizzato.

Il trucco è che il layout di tastiera personalizzato non deve essere applicato alla tastiera Happy Hacking.

Soluzione: ho creato un file di configurazione Xorg come tale:

$ 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

La prima parte dice sostanzialmente per qualsiasi tastiera standard, applica il layout degli Stati Uniti con la variante personalizzata. La seconda parte dice che per la felice tastiera per l'hacking, usa il layout americano con la variante base.

Puoi abbinare i dispositivi in ​​base a una serie di parametri: xorg doc


la tua risposta tardiva merita forse un commento tardivo ... hai Identificatore come "Happy Hacking Kbd" in entrambi ... Penso che sia probabilmente un errore, il primo identificatore InputClass dovrebbe essere probabilmente "Tastiera generica"
Daniel

1
@Daniel Gli identificatori sono in realtà diversi, "Happily Hacked Keyboard" vs "Happy Hacking Keyboard", ma solo leggermente :)
zanegray

grazie per il corretto! ... incolpo i miei occhiali da lettura cattivi:)> v
Daniel

... ma questo (per il funzionamento della tastiera, sono possibili anche diversi layout multipli da scorrere!, come noi, ru, ua su uno e de, cz, ua sulla seconda tastiera) cambiare per me in qualche modo ucciso il mio pulsante centrale del mouse del mio mouse USB esterno. Avere a cercare ciò che l'interferenza è ...
Golar Ramblar

Mi piacerebbe se questa soluzione funzionasse per me, ma non funziona, forse perché non riesco a ottenere l'id del fornitore giusto? Il comando "lsusb -v | grep -e idVendor" mi ha dato "0x09da A4Tech Co., Ltd." così ho anche provato varie opzioni (senza hexcode, trattino basso anziché spazio, ecc.). Quindi ho provato l'ID fornitore ottenuto tramite "xinput list" e "udevadm info" (A4TECH). Ho anche cambiato il numero da 30 a 50 anche perché ho un file "/usr/share/X11/xorg.conf.d/40-libinput.conf" che include una configurazione della tastiera globale. Ma non ci sono riuscito. Qualche idea per favore? (Ubuntu 18.04)
Sadi

5

Potrebbe essere possibile, a giudicare dall'argomento -device di setxkbmap:

       -dispositivo dispositivo
               Specifica l'ID del dispositivo numerico del dispositivo di input da essere
               aggiornato con il nuovo layout di tastiera. Se non specificato, il
               il dispositivo tastiera principale del server X viene aggiornato.

Naturalmente, al momento, non ho una seconda tastiera per provarla.

-Un utente Dvorak


Mah. -device 0 commuta entrambi, -device 2 (dovrebbe essere la tastiera integrata secondo la risposta di Arkenklo) non cambia nulla, almeno sul mio laptop e sulla tastiera USB.
Tommy McGuire,

1

Non penso che tu possa farlo esattamente nel modo desiderato. Ci sono due opzioni che conosco:

1) È possibile effettuare la commutazione con un semplice clic del mouse / sequenza di tasti.

Con Ubuntu / GNOME:

Clic del mouse

In Ubuntu / Gnome, a condizione che tu abbia la configurazione dei layout di input, vai in un punto vuoto del pannello, fai clic destro e fai clic su "Aggiungi al pannello". Seleziona "Indicatore tastiera" per aggiungerlo al pannello. Ciò dovrebbe inserire un piccolo pezzo di testo che indica il layout della tastiera e puoi fare clic su questo per cambiare.

Scorciatoia da tastiera

Sistema -> Preferenze -> Tastiera -> Layout -> Opzioni layout

C'è un'opzione lì "Chiave (e) per cambiare layout". Puoi impostarlo su Alt + Maiusc, il che non dovrebbe disturbare le normali scorciatoie da tastiera.

Presumo che ci sia anche un modo KDE di farlo.

2) L'altra alternativa è http://en.wikipedia.org/wiki/Xneur , ma non sono sicuro che questo sia disponibile per lo svedese e potrebbe non essere possibile per le lingue che hanno costrutti simili all'inglese.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.