Dua keyboard di satu komputer. Ketika saya menulis dengan AI ingin tata letak keyboard AS, ketika saya menggunakan BI ingin Swedia. Mungkin?

47

Saya memiliki laptop yang saya gunakan dengan keyboard eksternal. Ketika saya mengetik menggunakan keyboard eksternal saya ingin menggunakan tata letak keyboard AS, karena itulah jenis keyboard eksternal yang saya miliki. Di sisi lain, ketika saya mengetik menggunakan keyboard terintegrasi saya ingin menggunakan tata letak Swedia.

Apakah ini mungkin? Dan bagaimana cara saya melakukannya?

Saya bertanya di sini karena saya pikir kami akan menemukan sebagian besar keahlian Linux di sini.

Dihapus
sumber

Jawaban:

41

Pertama, Anda harus menemukan ID perangkat keyboard untuk berubah:

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

Kemudian ubah tata letak menggunakan setxkbmap:

$ setxkbmap -device 9 dvorak

Beberapa versi setxkbmap membutuhkan argumen '-layout':

$ setxkbmap -device 9 -layout dvorak
menebal
sumber
Halo, saya melakukan ini dan ini berfungsi baik untuk semuanya kecuali tombol panah dan tombol arah lainnya (yang tidak lagi berfungsi sama sekali). Bisa jadi keyboard adalah salah satu dari mereka yang ergonomis yang memiliki pemetaan tombol yang funky ... tahu bagaimana cara membuatnya bekerja lagi?
btelles
8
Jadi apa cara terbaik untuk mengatur konfigurasi ini saat boot daripada harus menggunakan setxkbmap secara manual?
Richard Turner
9

Saya dapat dengan positif mengatakan bahwa apa yang ingin Anda lakukan memang mungkin. Saya mencapai skenario yang ditentukan terlebih dahulu

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

saat mengetik pada setiap keyboard untuk memastikan bahwa mereka dikenali sebagai perangkat yang terpisah. Kemudian saya hanya menerapkan coba-coba, bereksperimen dengan

setxkbmap -device (1-x) us.

Saya menemukan bahwa setxkbmap -device 1 usmengkonfigurasi kedua (semua) keyboard, sementara setxkbmap -device 6 ushanya mempengaruhi yang kedua. Relevansi mungkin bahwa mereka berdua terhubung melalui PS / 2.

Ini tentu saja tidak dijamin bekerja untuk Anda, dan bahkan tidak mengklasifikasikan sebagai jawaban yang tepat, tetapi menegaskan bahwa itu memang memungkinkan. Saya tidak tahu menurut skema mana masing-masing papan ketik disebutkan /dev/input, tetapi saya yakin bahwa nama-nama tersebut dapat ditentukan dalam udev, sehingga memungkinkan untuk menempatkan setxkbmapperintah yang sesuai /etc/rc.localatau serupa.

Arkenklo
sumber
9

Meskipun pertanyaan ini sudah agak lama, saya pikir saya akan membagikan solusi saya karena tidak ada jawaban lain yang membahas bagaimana cara ini berfungsi saat boot.

Situasi saya: Saya memiliki Keyboard Happy Hacking yang terhubung melalui usb yang memiliki tombol bergerak (kontrol di mana caps lock berada, dll). Saya sering menggunakan ini, tapi kadang-kadang saya ingin menggunakan keyboard laptop standar atau keyboard usb lainnya. Untuk keyboard ini saya membuat tata letak keyboard khusus.

Caranya adalah tata letak keyboard khusus tidak boleh diterapkan ke Keyboard Happy Hacking.

Solusi: Saya membuat file konfigurasi Xorg seperti itu:

$ 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

Bagian pertama pada dasarnya mengatakan untuk semua keyboard standar, terapkan tata letak AS dengan varian khusus. Bagian kedua mengatakan untuk keyboard hacking yang bahagia, gunakan tata letak kita dengan varian dasar.

Anda dapat mencocokkan perangkat berdasarkan sekelompok parameter: xorg doc

zanegray
sumber
jawaban terlambat Anda mungkin layak komentar terlambat ... Anda memiliki Identifier sebagai "Happy Hacking Kbd" di keduanya ... Saya pikir itu mungkin kesalahan, InputClass Identifier pertama mungkin harus "Generic Keyboard"
Daniel
1
@Daniel Pengenal sebenarnya berbeda, "Keyboard Happily Hacked" vs "Keyboard Happy Hacking", tetapi hanya sedikit :)
zanegray
terima kasih untuk yang benar! ... Saya menyalahkan kacamata baca buruk saya:)> v
Daniel
... tetapi perubahan ini (untuk keyboard sangat berfungsi, juga beberapa tata letak yang berbeda untuk dilalui dimungkinkan!, seperti kami, ru, ua pada satu dan de, cz, ua pada keyboard kedua) perubahan bagi saya entah bagaimana mematikan tombol tengah mouse saya mouse USB eksternal saya. Harus mencari apa gangguannya ...
Golar Ramblar
Saya akan senang jika solusi ini berhasil untuk saya, tetapi tidak berfungsi - mungkin karena saya tidak bisa mendapatkan id vendor dengan benar? Perintah "lsusb -v | grep -e idVendor" memberi saya "0x09da A4Tech Co., Ltd." jadi saya juga mencoba berbagai opsi (tanpa hexcode, garis bawah bukannya spasi, dll.). Kemudian saya mencoba id vendor yang diperoleh melalui "daftar xinput" dan "info udevadm" (A4TECH). Saya bahkan mengubah angka 30 menjadi 50 juga karena saya memiliki file "/usr/share/X11/xorg.conf.d/40-libinput.conf" termasuk konfigurasi keyboard global. Tapi aku tidak bisa mendapatkan apa pun. Ada ide? (Ubuntu 18.04)
Sadi
5

Mungkin saja, dilihat dari argumen -device untuk setxkbmap:

       perangkat -perangkat
               Menentukan id perangkat numerik dari perangkat input yang akan dibuat
               diperbarui dengan tata letak keyboard baru. Jika tidak ditentukan, maka
               perangkat keyboard inti dari server X diperbarui.

Secara alami, bagaimanapun, saya tidak memiliki keyboard kedua untuk mencobanya saat ini.

-A pengguna Dvorak

Tommy McGuire
sumber
Hmph. -perangkat 0 beralih keduanya, -perangkat 2 (harus keyboard on-board sesuai jawaban Arkenklo) tidak mengubah apa pun, setidaknya pada laptop dan keyboard USB.
Tommy McGuire
1

Saya tidak berpikir Anda bisa melakukan ini persis seperti yang Anda inginkan. Ada dua opsi yang saya ketahui:

1) Anda dapat melakukan pergantian klik mouse / keystroke sederhana.

Dengan Ubuntu / GNOME:

Klik mouse

Di Ubuntu / Gnome, asalkan Anda memiliki pengaturan tata letak input, buka tempat kosong di panel Anda, klik kanan dan klik 'Tambahkan ke Panel'. Pilih 'Indikator Keyboard' untuk menambahkan ini ke panel. Itu harus memasukkan sepotong kecil teks yang menunjukkan tata letak keyboard Anda dan Anda dapat mengklik ini untuk beralih.

Pintasan keyboard

Sistem -> Preferensi -> Keyboard -> Tata Letak -> Opsi Tata Letak

Ada opsi di sana "Kunci untuk mengubah tata letak". Anda dapat mengaturnya ke Alt + Shift, yang seharusnya tidak mengganggu pintasan keyboard normal.

Saya kira ada cara KDE untuk melakukan itu juga.

2) Alternatif lain adalah http://en.wikipedia.org/wiki/Xneur , tetapi saya tidak yakin apakah ini tersedia untuk Swedia dan mungkin tidak mungkin untuk bahasa yang memiliki konstruksi serupa dengan bahasa Inggris.

Phil
sumber