คีย์บอร์ดสองอันบนคอมพิวเตอร์หนึ่งเครื่อง เมื่อฉันเขียนด้วย AI ต้องการรูปแบบแป้นพิมพ์สหรัฐฯเมื่อฉันใช้ BI ต้องการภาษาสวีเดน ไปได้หรือไม่


47

ฉันมีแล็ปท็อปที่ฉันใช้แป้นพิมพ์ภายนอกด้วย เมื่อฉันพิมพ์โดยใช้แป้นพิมพ์ภายนอกฉันต้องการใช้รูปแบบแป้นพิมพ์สหรัฐฯเนื่องจากเป็นแป้นพิมพ์ภายนอกที่ฉันมี ในทางกลับกันเมื่อฉันพิมพ์โดยใช้แป้นพิมพ์ในตัวฉันต้องการใช้เค้าโครงแบบสวีเดน

เป็นไปได้ไหม แล้วฉันจะทำยังไงดีล่ะ?

ฉันถามที่นี่เพราะฉันคิดว่าเราจะพบความเชี่ยวชาญของ Linux ที่นี่

คำตอบ:


41

ก่อนอื่นคุณต้องค้นหา 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

สวัสดีฉันทำสิ่งนี้และใช้งานได้ดีสำหรับทุกอย่างยกเว้นปุ่มลูกศรและปุ่มบังคับทิศทางอื่น ๆ (ซึ่งไม่สามารถใช้งานได้อีกต่อไป) อาจเป็นไปได้ว่าคีย์บอร์ดเป็นหนึ่งในนั้นที่เหมาะกับการทำงานที่มีการจับคู่คีย์ขี้ขลาด ... คุณมีความคิดว่าจะทำให้คนเหล่านั้นทำงานได้อย่างไรอีกครั้ง?
btelles

8
ดังนั้นวิธีที่ดีที่สุดในการตั้งค่าการกำหนดค่านี้ที่บูตแทนที่จะต้องเรียกใช้ setxkbmap ด้วยตนเองคืออะไร?
Richard Turner

9

ฉันสามารถพูดในเชิงบวกว่าสิ่งที่คุณต้องการจะทำแน่นอนเป็นไปได้ ฉันประสบความสำเร็จในสถานการณ์ที่ระบุก่อน

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หรือคล้ายกันได้


9

แม้ว่าคำถามนี้จะเก่าไปหน่อย แต่ฉันคิดว่าฉันจะแบ่งปันวิธีแก้ปัญหาของฉันเพราะไม่มีคำตอบอื่นใดที่ได้อธิบายวิธีการใช้งานตอนบูต

สถานการณ์ของฉัน: ฉันมีแป้นพิมพ์แฮ็คแฮปปี้ที่เสียบผ่าน 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

ส่วนแรกโดยทั่วไปบอกว่าสำหรับแป้นพิมพ์มาตรฐานใด ๆ ใช้เค้าโครงเรากับตัวแปรที่กำหนดเอง ส่วนที่สองพูดถึงคีย์บอร์ดแฮ็คที่มีความสุขใช้เค้าโครงของเรากับตัวแปรพื้นฐาน

คุณสามารถจับคู่อุปกรณ์ตามพารามิเตอร์ต่างๆ: xorg doc


คำตอบที่ล่าช้าของคุณอาจได้รับความคิดเห็นช้า ... คุณมี Identifier เป็น "Happy Hacking Kbd" ทั้งคู่ ... ฉันคิดว่านั่นอาจเป็นข้อผิดพลาด InputClass Identifier ตัวแรกน่าจะเป็น "Generic Keyboard"
Daniel

1
@Daniel ตัวระบุแตกต่างกันจริง ๆ "แป้นแฮ็กอย่างมีความสุข" เทียบกับ "แฮ็คแฮ็คแป้นพิมพ์" แต่มีเพียงเล็กน้อย :)
zanegray

ขอบคุณสำหรับสิ่งที่ถูกต้อง! ... ฉันตำหนิแว่นอ่านหนังสือที่ไม่ดีของฉัน:)> v
Daniel

... แต่สิ่งนี้ (สำหรับแป้นพิมพ์ทำงานได้ดีมากมีเลย์เอาท์หลายรูปแบบที่แตกต่างกันเพื่อให้เป็นไปได้!, เช่นเรา, ru, ua บนหนึ่งและเดอ, cz, ua บนแป้นพิมพ์ที่สอง) เปลี่ยนสำหรับฉัน ของเมาส์ USB ภายนอกของฉัน ต้องมองหาสิ่งที่การรบกวนคือ ...
Golar Ramblar

ฉันชอบที่โซลูชันนี้ใช้งานได้สำหรับฉัน แต่ไม่ได้ผล - อาจเป็นเพราะฉันไม่สามารถรับรหัสผู้ขายได้ใช่ไหม คำสั่ง "lsusb -v | grep -e idVendor" ให้ฉัน "0x09da A4Tech Co. , Ltd. " ดังนั้นฉันจึงลองตัวเลือกต่าง ๆ (โดยไม่ใช้ hexcode, ขีดล่างแทนการเว้นวรรค, ฯลฯ ) จากนั้นฉันลองรหัสผู้ขายที่ได้รับผ่าน "รายการ xinput" และ "udevadm info" (A4TECH) ฉันยังเปลี่ยนหมายเลข 30 เป็น 50 ด้วยเพราะฉันมีไฟล์ "/usr/share/X11/xorg.conf.d/40-libinput.conf" รวมถึงการกำหนดค่าแป้นพิมพ์ทั่วโลก แต่ฉันไม่สามารถรับได้ ความคิดเห็นใดโปรด (Ubuntu 18.04)
Sadi

5

อาจเป็นไปได้โดยการพิจารณาโดยอาร์กิวเมนต์ -device เพื่อ setxkbmap:

       - อุปกรณ์
               ระบุ ID อุปกรณ์ตัวเลขของอุปกรณ์อินพุตที่จะเป็น
               อัปเดตด้วยรูปแบบแป้นพิมพ์ใหม่ หากไม่ได้ระบุ
               อัปเดตอุปกรณ์คีย์บอร์ดหลักของเซิร์ฟเวอร์ X แล้ว

ตามธรรมชาติแล้วฉันไม่มีแป้นพิมพ์ที่สองที่จะลองใช้ในขณะนี้

-A ผู้ใช้ Dvorak


ฮึ่ม - อุปกรณ์ 0 สลับทั้งสอง - อุปกรณ์ 2 (ควรเป็นคีย์บอร์ดออนบอร์ดต่อคำตอบของ Arkenklo) ไม่ได้สลับอะไรเลยอย่างน้อยในแล็ปท็อปและคีย์บอร์ด USB ของฉัน
Tommy McGuire

1

ฉันไม่คิดว่าคุณสามารถทำสิ่งนี้ได้อย่างที่คุณต้องการ มีสองตัวเลือกที่ฉันรู้คือ:

1) คุณสามารถทำการสลับการคลิกเมาส์ / การกดแป้นง่ายๆ

ด้วย Ubuntu / GNOME:

คลิกเมาส์

ใน Ubuntu / Gnome ให้คุณตั้งค่าเค้าโครงข้อมูลเข้าของคุณไปที่จุดว่างบนแผงควบคุมของคุณคลิกขวาแล้วคลิก 'เพิ่มไปยังแผง' เลือก 'ตัวบ่งชี้แป้นพิมพ์' เพื่อเพิ่มสิ่งนี้ลงในพาเนล นั่นควรจะใส่ข้อความเล็ก ๆ น้อย ๆ ที่ระบุเค้าโครงแป้นพิมพ์ของคุณและคุณสามารถคลิกที่นี่เพื่อสลับ

แป้นพิมพ์ลัด

ระบบ -> การตั้งค่า -> แป้นพิมพ์ -> เลย์เอาต์ -> ตัวเลือกเค้าโครง

มีตัวเลือก "คีย์เพื่อเปลี่ยนการจัดวาง" คุณสามารถตั้งค่าเป็น Alt + Shift ซึ่งไม่ควรรบกวนแป้นพิมพ์ลัดทั่วไป

ฉันคิดว่ามีวิธีของ KDE ในการทำเช่นนั้น

2) อีกทางเลือกหนึ่งคือhttp://en.wikipedia.org/wiki/Xneurแต่ฉันไม่แน่ใจว่ามีให้บริการในภาษาสวีเดนหรือไม่และอาจเป็นไปไม่ได้สำหรับภาษาที่มีโครงสร้างคล้ายกับภาษาอังกฤษ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.