स्थायी रूप से एक अन्य xubuntu की एक कुंजी को हटा दें


2

मैंने कई सवालों को देखा है कि कैसे एक कुंजी को दोबारा बनाया जाए, लेकिन किसी तरह मेरी समस्या यह है कि यह कभी भी स्थायी रूप से नहीं आती है

मेरा यहाँ है ~/bootstrap-custom.sh

#!/bin/sh
# remaps Caps Lock to Ctrl
/usr/bin/setxkbmap -option "ctrl:nocaps"

मैंने source ~/boostrap-custom.shअपने स्टार्टअप एप्लिकेशन में जोड़ा है।

मैपिंग ठीक काम करती है।

हालाँकि:

  • मानचित्रण स्टार्टअप पर लोड नहीं करता है, या स्टार्टअप अनुप्रयोगों के बाद चलने वाली किसी चीज से कम से कम अधिलेखित है।
  • हर बार जब मैं अपने कीबोर्ड में प्लग करता हूं, मैपिंग भूल जाता है।

मैपिंग को स्थायी बनाने का कोई तरीका, लेकिन उसी तरीके (xkbmap) को बनाए रखते हुए?


अपना प्रतिनिधि रखें, उत्तर यूनिक्स और लाइनक्स
फोसोश

1
आप प्रतिनिधि नहीं चाहते, लेकिन मुझे पूरा यकीन है कि इसे वापस लाने के लिए edi9999 का कोई रास्ता नहीं है।
डैनियल एच

@ अगर मेरे सवाल का पूरा जवाब नहीं है, तो स्क्रिप्ट स्टार्टअप पर भी लिखी जाती है
edi9999

@ डैनियल सही है, बाउंटी नॉन-रिफंडेबल हैं। एक बार जब आप बाउंटी की स्थापना समाप्त कर लेते हैं, तो उस प्रतिनिधि को वापस पाने का कोई तरीका नहीं होता है, भले ही इसका कोई भी जवाब न हो।
बजे एक CVn

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

जवाबों:


1

यह केवल एक आंशिक समाधान हो सकता है (मैं ईमानदारी से नहीं जानता कि यह कीबोर्ड अनप्लगिंग / रिप्लेगिंग के लिए कैसे प्रतिक्रिया करता है), लेकिन चूंकि आपके पास पहले से ही एक स्क्रिप्ट है जो आप चाहते हैं, यह काफी करीब हो सकता है।

स्टार्टअप पर, X11 कई विशेष कार्यक्रमों को निष्पादित करता है, अगर वे सिस्टम पर मौजूद हैं। हमारे उद्देश्यों के लिए, सबसे दिलचस्प संभावना है ~ / .xsession , जिसे आप एक प्रदर्शन प्रबंधक के माध्यम से लॉग इन करने के बाद निष्पादित किया जाता है, जो इन दिनों ग्राफिकल वातावरण के लिए सामान्य सेटअप है। (यह ऐसा हुआ करता था कि आप सामान्य रूप से एक शेल में लॉग इन करते थे और फिर startxX शुरू करने के लिए कमांड चलाते थे ; यदि हां, तो आपने इसी उद्देश्य के लिए ~ / .xinitrc का उपयोग किया था ।)

हम वस्तुतः आदेशों को निष्पादित करने के लिए इसका लाभ उठा सकते हैं, चाहे आप किसी भी डिस्प्ले मैनेजर (gdm, gdm3, kdm, ...) और डेस्कटॉप वातावरण (GNOME, Xfce, KDE, ...) का उपयोग कर रहे हों।

  1. नाम की एक फ़ाइल बनाएं .xsessionऔर इसे अपने होम डायरेक्टरी में रखें।
  2. इसमें निम्नलिखित जोड़ें:
    #!/bin/bash
    /usr/bin/setxkbmap -option "ctrl:nocaps"
  3. फ़ाइल को सहेजें और 755 मोड में सेट करें ( chmod 755 ~/.xsession)
  4. लॉग आउट करें और वापस, या रिबूट करें

यह लॉगिन पर आपके कीबोर्ड मैपिंग को सेट करना चाहिए। यह भी देर से क्रियान्वित होना चाहिए कि setxkbmap वास्तव में काम करता है।

किसी भी कारण से यह काम करने के लिए विफल रहता है, एक पाठ टर्मिनल (में लॉग इन करें Ctrl+ Alt+ F2[F1..F6] में किसी भी F2 अपने दोस्त होना चाहिए के लिए) और आदेश जारी करके फ़ाइल को नष्ट rm ~/.xsession

संदर्भ के लिए, यहां मेरा ~ / .xsession है, जो मोड 755 के साथ मुझे Xfce4 सत्र में ड्रॉप करता है (यह "ज्ञात अच्छे" उदाहरण के रूप में काम कर सकता है):

#!/bin/sh
xscreensaver &
exec xfce4-session

execअंत में निर्देश दिए गए आदेश के साथ स्क्रिप्ट ही बदल देता है। जो कुछ भी अधिक या कम तुरंत बाहर नहीं निकलता है, उसे पृष्ठभूमि में रखना होगा, इसलिए &। (मुझे उम्मीद है कि लगभग तुरंत बाहर निकलने के लिए setxkbmap, इसलिए इसकी कोई पृष्ठभूमि की आवश्यकता नहीं है।)


जवाब के लिए धन्यवाद। अफसोस की बात है कि यह काम नहीं किया: यहाँ मेरे परिणाम है: ➜ ~ ll .xsession -rwxr-xr-x 1 edgar edgar 53 Jan 22 08:03 .xsession ➜ ~ cat .xsession #!/bin/bash /usr/bin/setxkbmap -option "ctrl:nocaps" हालाँकि, कीबोर्ड कैप्स लॉक अभी भी वही काम कर रहा था
edi9999

ठीक है, अब यह काम करने लगता है, मुझे मेरी .xsession-त्रुटियों में एक त्रुटि थी जो संभवतः कारण हो रही थी। xsession निष्पादित नहीं करने के लिए। यह अब काम करता है। बहुत बहुत धन्यवाद
edi9999

0

आप अपनी .profileफ़ाइल में शेल कोड डालने का प्रयास कर सकते हैं, या अधिक जटिल संस्करण यह है कि आप XKB का उपयोग करें। यहाँ एक त्वरित अवलोकन है।

पूर्ण अवलोकन के लिए इस आर्क विकि लेख को आज़माएँ ।


शेल स्क्रिप्ट को .profile में बदलना कुछ भी नहीं बदलता है (फिर भी रिबूट के बाद काम नहीं करता है)। मैं पहले से ही
xkb

0

जाहिरा तौर पर यह एक बग है।

"मैं आर्क लिनक्स में xfce का उपयोग करता हूं और मैं क्या करता हूं ~ / .config / xfce4 / पैनल / xkb-plugin को संपादित करता है - ##। Rc और एक नई लाइन या कुछ और जोड़ें और यह कुछ सत्रों के लिए काम करता है। एक अन्य अस्थायी सुधार हो सकता है। # 31 क्या सुझाव देता है।

  1. प्लगइन में वांछित विकल्प सेट करें
  2. ~ / .Config / xfce4 / panel / xkb-plugin - ## को कॉपी करें। कुछ अन्य फ़ाइल जैसे ~ ~ .config / xfce4 / पैनल / goodxkb.rc पर जाएं।
  3. इस कमांड को स्टार्टअप जॉब में जोड़ें:

    sh -c "cp ~ / .config / xfce4 / panel / goodxkb.rc ~ / .config / xfce4 / panel / xkb-plugin - ##। rc && pkill xkb" (## को अपने नंबर में बदलें)।

Pkill हिस्सा प्लगइन और उसके कॉन्फिगरेशन को पुनः लोड करने के लिए महत्वपूर्ण है। "

से https://askubuntu.com/questions/66096/how-to-set-up-xfce4-xkb-plugin-to-remember-settings-over-reboots


मुझे नहीं लगता कि वे मेरे सवाल के साथ बहुत आम हैं। उत्तर आपके प्रश्न iis whe आप कीबोर्ड लेआउट (जैसे EN, US, FR, ...) को बदलने के लिए xubuntu से कीबोर्ड सेटिंग्स का उपयोग करते हैं। ये विकल्प सेटिंग से सेट नहीं किए जा सकते हैं। इसलिए मैं नहीं देखता कि यह कैसे मदद कर सकता है
edi9999

-1

/Etc/rc.local संपादित करें और अपनी स्क्रिप्ट का अपना पथ जोड़ें। सुनिश्चित करें कि निष्पादन योग्य है और इसमें शीर्ष पर #! / बिन / बैश है । अपने कंप्यूटर को रिबूट न ​​करें इसे बंद करें और इसे फिर से स्विच करें। यह काम करना चाहिए।


क्षमा करें, यह भी काम नहीं करता है।
edi9999

/Etc/rc.local संपादित करें और अपनी स्क्रिप्ट का अपना पथ जोड़ें। सुनिश्चित करें कि निष्पादन योग्य है और इसमें शीर्ष पर #! / बिन / बैश है।
जड़-विशेषज्ञ

setxkbmapX11 सत्र को प्रभावित करता है जिसे यह भीतर निष्पादित करता है। मैन पेज भी टूल का नाम देता है setxkbmap - set the keyboard using the X Keyboard Extension। चूँकि /etc/rc.local किसी भी लिनक्स वितरण पर X सत्र के भीतर से नहीं चलता है जिसकी मैं कल्पना कर सकता हूँ, /etc/rc.local के भीतर से चलने वाली कुछ भी नहीं चलने वाली X11 को प्रभावित करेगी।
बजे एक CVn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.