यह केवल एक आंशिक समाधान हो सकता है (मैं ईमानदारी से नहीं जानता कि यह कीबोर्ड अनप्लगिंग / रिप्लेगिंग के लिए कैसे प्रतिक्रिया करता है), लेकिन चूंकि आपके पास पहले से ही एक स्क्रिप्ट है जो आप चाहते हैं, यह काफी करीब हो सकता है।
स्टार्टअप पर, X11 कई विशेष कार्यक्रमों को निष्पादित करता है, अगर वे सिस्टम पर मौजूद हैं। हमारे उद्देश्यों के लिए, सबसे दिलचस्प संभावना है ~ / .xsession , जिसे आप एक प्रदर्शन प्रबंधक के माध्यम से लॉग इन करने के बाद निष्पादित किया जाता है, जो इन दिनों ग्राफिकल वातावरण के लिए सामान्य सेटअप है। (यह ऐसा हुआ करता था कि आप सामान्य रूप से एक शेल में लॉग इन करते थे और फिर startx
X शुरू करने के लिए कमांड चलाते थे ; यदि हां, तो आपने इसी उद्देश्य के लिए ~ / .xinitrc का उपयोग किया था ।)
हम वस्तुतः आदेशों को निष्पादित करने के लिए इसका लाभ उठा सकते हैं, चाहे आप किसी भी डिस्प्ले मैनेजर (gdm, gdm3, kdm, ...) और डेस्कटॉप वातावरण (GNOME, Xfce, KDE, ...) का उपयोग कर रहे हों।
- नाम की एक फ़ाइल बनाएं
.xsession
और इसे अपने होम डायरेक्टरी में रखें।
- इसमें निम्नलिखित जोड़ें:
#!/bin/bash
/usr/bin/setxkbmap -option "ctrl:nocaps"
- फ़ाइल को सहेजें और 755 मोड में सेट करें (
chmod 755 ~/.xsession
)
- लॉग आउट करें और वापस, या रिबूट करें
यह लॉगिन पर आपके कीबोर्ड मैपिंग को सेट करना चाहिए। यह भी देर से क्रियान्वित होना चाहिए कि setxkbmap वास्तव में काम करता है।
किसी भी कारण से यह काम करने के लिए विफल रहता है, एक पाठ टर्मिनल (में लॉग इन करें Ctrl+ Alt+ F2[F1..F6] में किसी भी F2 अपने दोस्त होना चाहिए के लिए) और आदेश जारी करके फ़ाइल को नष्ट rm ~/.xsession
।
संदर्भ के लिए, यहां मेरा ~ / .xsession है, जो मोड 755 के साथ मुझे Xfce4 सत्र में ड्रॉप करता है (यह "ज्ञात अच्छे" उदाहरण के रूप में काम कर सकता है):
#!/bin/sh
xscreensaver &
exec xfce4-session
exec
अंत में निर्देश दिए गए आदेश के साथ स्क्रिप्ट ही बदल देता है। जो कुछ भी अधिक या कम तुरंत बाहर नहीं निकलता है, उसे पृष्ठभूमि में रखना होगा, इसलिए &
। (मुझे उम्मीद है कि लगभग तुरंत बाहर निकलने के लिए setxkbmap, इसलिए इसकी कोई पृष्ठभूमि की आवश्यकता नहीं है।)