एक कंप्यूटर पर दो कीबोर्ड। जब मैं एआई के साथ लिखता हूं तो मुझे एक अमेरिकी कीबोर्ड लेआउट चाहिए, जब मैं बीआई का उपयोग करना चाहता हूं स्वीडिश। मुमकिन?


47

मेरे पास एक लैपटॉप है जिसके साथ मैं एक बाहरी कीबोर्ड का उपयोग करता हूं। जब मैं बाहरी कीबोर्ड का उपयोग करना चाहता हूं तो मैं यूएस कीबोर्ड लेआउट का उपयोग करना चाहता हूं, क्योंकि मेरे पास बाहरी कीबोर्ड का प्रकार है। दूसरी ओर, जब मैं एकीकृत कीबोर्ड का उपयोग करता हूं तो मैं स्वीडिश लेआउट का उपयोग करना चाहता हूं।

क्या यह संभव है? और मैं इसे करने के बारे में कैसे जाना होगा?

मैं यहां पूछ रहा हूं क्योंकि मुझे लगता है कि हम यहां सबसे अधिक लिनक्स विशेषज्ञता पाएंगे।

जवाबों:


41

सबसे पहले, आपको कीबोर्ड की डिवाइस आईडी को बदलना होगा:

$ 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
तो क्या इस विन्यास को बूट में सेट करने का सबसे अच्छा तरीका है बजाय सेटक्सब्लैमप को मैन्युअल रूप से इनवॉइस करने के?
रिचर्ड टर्नर

9

मैं सकारात्मक रूप से कह सकता हूं कि आप जो करना चाहते हैं वह वास्तव में संभव है। मैंने पहले द्वारा निर्दिष्ट परिदृश्य हासिल किया

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

प्रत्येक कीबोर्ड पर टाइप करते समय यह सुनिश्चित करने के लिए कि उन्हें अलग डिवाइस के रूप में पहचाना गया था। तब मैंने बस परीक्षण और त्रुटि लागू की, जिसके साथ प्रयोग किया गया

setxkbmap -device (1-x) us

मुझे पता चला कि setxkbmap -device 1 usदोनों (सभी) कीबोर्ड को कॉन्फ़िगर किया गया था, जबकि setxkbmap -device 6 usकेवल माध्यमिक को प्रभावित किया था। प्रासंगिकता शायद यह है कि वे दोनों पीएस / 2 के माध्यम से जुड़े थे।

बेशक यह आपके लिए काम करने की गारंटी नहीं है, और एक उचित उत्तर के रूप में वर्गीकृत भी नहीं करता है, लेकिन यह पुष्टि करता है कि यह बिल्कुल संभव है। मुझे नहीं पता कि किस योजना के अनुसार अलग-अलग कीबोर्ड का नाम रखा गया है /dev/input, लेकिन मुझे यकीन है कि नामों को udv में निर्दिष्ट किया जा सकता है, जिससे उपयुक्त setxkbmapकमांड को /etc/rc.localया इसी तरह से रखा जा सके ।


9

हालांकि यह सवाल एक पुरानी बात है, मैंने सोचा था कि मैं अपना समाधान साझा करूंगा क्योंकि किसी भी अन्य उत्तर को संबोधित नहीं किया जाएगा कि यह काम बूट पर कैसे होगा।

मेरी स्थिति: मेरे पास एक हैप्पी हैकिंग कीबोर्ड है जो कि usb के माध्यम से प्लग करता है जिसमें कुंजियाँ इधर-उधर हो जाती हैं (नियंत्रण जहां कैप्स लॉक है, आदि)। मैं इस समय का सबसे अधिक उपयोग करता हूं, लेकिन कभी-कभी मैं मानक लैपटॉप कीबोर्ड या किसी अन्य यूएसबी कीबोर्ड का उपयोग करना चाहूंगा। इन कीबोर्ड के लिए मैंने एक कस्टम कीबोर्ड लेआउट बनाया।

चाल यह है कि कस्टम कीबोर्ड लेआउट को हैप्पी हैकिंग कीबोर्ड पर लागू नहीं किया जाना चाहिए।

समाधान: मैंने एक 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


आपका देर से उत्तर शायद एक देर से टिप्पणी को गुणित करता है ... आपके पास "हैप्पी हैकिंग Kbd" दोनों में पहचानकर्ता है ... मुझे लगता है कि यह शायद एक गलती है, पहला InputClass पहचानकर्ता संभवतः "जेनेरिक कीबोर्ड" होना चाहिए
डैनियल

1
@ डैनियल वास्तव में अलग हैं, "हैप्पीली हैक्ड कीबोर्ड" बनाम "हैप्पी हैकिंग कीबोर्ड", लेकिन केवल थोड़ा :)
zanegray

सही के लिए धन्यवाद! ... मैं अपने बुरे पढ़ने के चश्मे को दोष देता हूं:)> v
डैनियल

... लेकिन यह (बहुत काम करने वाले कीबोर्ड के लिए, चक्र के माध्यम से भी कई अलग-अलग लेआउट संभव हैं!, जैसे हमारे लिए, ru, एक पर ua और दूसरे कीबोर्ड पर cz, ua) मेरे लिए परिवर्तन किसी भी तरह मेरे मध्य माउस बटन को मार दिया मेरे बाहरी USB माउस की। क्या दखल देना है ...
गोल्लर रामबेल

मुझे अच्छा लगेगा अगर यह समाधान मेरे लिए काम करता है, लेकिन यह काम नहीं कर रहा है - शायद इसलिए कि मैं विक्रेता आईडी को सही नहीं पा सकता हूं? कमांड "lsusb -v | grep -e idVendor" ने मुझे "0x09da A4Tech Co., Ltd." इसलिए मैंने विभिन्न विकल्पों (हेक्सकोड के बिना, अंतरिक्ष के बजाय अंडरस्कोर आदि) की कोशिश की। फिर मैंने "xinput सूची" और "udvadm info" (A4TECH) के माध्यम से प्राप्त वेंडर आईडी की कोशिश की। मैंने 30 से 50 की संख्या भी बदल दी, क्योंकि मेरे पास एक वैश्विक कीबोर्ड कॉन्फ़िगरेशन सहित एक फ़ाइल "/usr/share/X11/xorg.conf.d/40-libinput.conf" है। लेकिन मैं कहीं भी नहीं मिल सका। किसी भी विचार कृपया? (उबंटू 18.04)
सादी

5

यह संभव हो सकता है, -xicemap को -device तर्क द्वारा देखते हुए:

       -देवी डिवाइस
               निर्दिष्ट करने के लिए इनपुट डिवाइस के संख्यात्मक डिवाइस आईडी को निर्दिष्ट करता है
               नए कीबोर्ड लेआउट के साथ अपडेट किया गया। यदि निर्दिष्ट नहीं है, तो
               X सर्वर का कोर कीबोर्ड डिवाइस अपडेट किया गया है।

स्वाभाविक रूप से, हालांकि, मेरे पास फिलहाल इसे आज़माने के लिए दूसरा कीबोर्ड नहीं है।

-डॉवरक उपयोगकर्ता


Hmph। -Vice 0 दोनों को स्विच करता है, -vice 2 (Arkenklo के उत्तर के अनुसार ऑन-बोर्ड कीबोर्ड होना चाहिए) कुछ भी स्विच नहीं करता है, कम से कम मेरे लैपटॉप और यूएसबी कीबोर्ड पर।
टॉमी मैकगायर

1

मुझे नहीं लगता कि आप ठीक उसी तरह से कर सकते हैं जैसा आप चाहते हैं। दो विकल्प हैं जो मुझे पता है:

1) आप एक साधारण माउस क्लिक / कीस्ट्रोक स्विच कर सकते हैं।

उबंटू / GNOME के ​​साथ:

माउस क्लिक

Ubuntu / Gnome में, आपको अपना इनपुट लेआउट सेटअप प्रदान करते हुए, अपने पैनल पर एक खाली जगह पर जाएं, राइट क्लिक करें और 'पैनल में जोड़ें' पर क्लिक करें। इसे पैनल में जोड़ने के लिए 'कीबोर्ड इंडिकेटर' चुनें। अपने कीबोर्ड लेआउट को इंगित करते हुए पाठ का एक छोटा सा टुकड़ा इनपुट करना चाहिए और आप इसे स्विच करने के लिए क्लिक कर सकते हैं।

कुंजीपटल संक्षिप्त रीति

सिस्टम -> वरीयताएँ -> कीबोर्ड -> लेआउट -> लेआउट विकल्प

वहाँ एक विकल्प है "कुंजी (s) लेआउट बदलने के लिए"। आप इसे Alt + Shift पर सेट कर सकते हैं, जो किसी भी सामान्य कीबोर्ड शॉर्टकट को परेशान नहीं करना चाहिए।

मुझे लगता है कि ऐसा करने का एक केडीई तरीका है।

2) अन्य विकल्प http://en.wikipedia.org/wiki/Xneur है , लेकिन मुझे यकीन नहीं है कि यह स्वीडिश के लिए उपलब्ध है और यह उन भाषाओं के लिए संभव नहीं हो सकता है जिनके पास अंग्रेज़ी के समान निर्माण हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.