ओपनबॉक्स xmodmap कॉन्फ़िगरेशन को अधिलेखित करता है


9

मैं अपने लैपटॉप पर लिनक्स मिंट 13 पर ओपनबॉक्स स्थापित कर रहा हूं। मैं चाहता हूं कि मेरी कैप्स लॉक कुंजी अतिरिक्त नियंत्रण कुंजी के रूप में कार्य करें। मैंने अपनी ~/.Xmodmapफ़ाइल में आवश्यक सेटिंग्स डाल दीं और इसे चलाकर जाँच की

xmodmap ~/.Xmodmap

यह सही ढंग से काम करता है।

हालाँकि जब मैं अपने ओपनबॉक्स सत्र में पुनः आता हूं, तो ये महत्वपूर्ण परिवर्तन मौजूद नहीं होते हैं। उपरोक्त xmodmapकमांड चलाने से इसे फिर से काम करना शुरू हो जाता है, लेकिन मैं चाहता हूं कि यह स्टार्टअप पर स्वचालित रूप से हो।

मजे की बात यह है कि मैंने zenityअपनी ~/.config/openbox/autostartफाइल के अनुसार एक टेस्ट कमांड जोड़ा

zenity --info --text=Hello

यह एक छोटी संवाद विंडो बनाता है और संवाद बंद होने के बाद ही बाहर निकलता है।

अब, जब मैं अपने ओपनबॉक्स सत्र के लिए फिर से आता हूं, तो कैप्स लॉक एक Ctrl कुंजी के रूप में कार्य करता है, जब तक कि जिनी डायलॉग बंद नहीं हो जाता। एक बार जब वह संवाद बंद हो जाता है, तो कैप्स लॉक अपने डिफ़ॉल्ट व्यवहार पर लौट आता है।

मुझे Google के साथ इस पर कुछ भी नहीं मिला है इसलिए मैं यहां मदद मांग रहा हूं। क्या तुम लोगों के पास कोई विचार है जो गलत हो सकता है?

अपडेट करें:

मैं यह पता लगाने की कोशिश कर रहा हूं और अपने प्रयोगों में, मैंने अपनी /usr/bin/xmodmapफ़ाइल को निम्न बैश स्क्रिप्ट के साथ फ़ाइल में /usr/bin/xmodmap_प्रतिस्थापित कर दिया है/usr/bin/xmodmap

#!/bin/bash

{
    echo '-------'
    date
    echo xmodmap "$@"
} >> ~/xmodmap-calls

exec /usr/bin/xmodmap_ "$@"

इसलिए, जब भी सिस्टम पर कोई लानत स्क्रिप्ट चलती है xmodmap, मुझे यह पता चल जाता है।

इसके साथ, मैं पुन: जुड़ जाता हूं और मुझे अपनी ~/xmodmap-callsफ़ाइल में केवल एक प्रविष्टि मिलती है , जो कि मेरी चल रही है ~/.Xmodmap, जो अपेक्षित है। इसलिए, मुझे लगा xmodmapकि यह मेरे बदलावों को लिख रहा है।

इसके बाद, थोड़ी सी गुगली ने मुझे setxkbmapकमान से परिचित कराया , जो कि जाहिर तौर पर ऐसा ही कर सकता है। मैंने उस निष्पादन योग्य को भी बदल दिया, ऊपर के xmodmap के समान। और मुझे अपराधी की आज्ञा मिल गई!

setxkbmap -option terminate:ctrl_alt_bksp

मुझे बिल्कुल पता नहीं है कि वह क्या करता है, लेकिन चलाने के बाद xmodmap ~/.Xmodmap(जिसने मेरी सेटिंग्स को सही तरीके से लागू किया है), अगर मैं उपरोक्त कमांड चलाता हूं, तो मेरे परिवर्तन रीसेट हो गए हैं! संपादित करें : यह असली अजीब बात है। setxkbmapबिना किसी दलील के बस एक कमांड, खुशी से xmodmap ~/.Xmodmapकमांड द्वारा मेरे बदलावों को लिख देता है ।

अब मेरे पास यह पता लगाने के लिए दो चीजें हैं, यह कहां setxkbmapसे चलाया जा रहा है और इसे कैसे और कैसे ठीक किया जाए। मैं अभी भी जांच कर रहा हूँ लेकिन गंभीरता से कुछ मदद का उपयोग कर सकता हूँ :)

अपडेट २

के साथ नरक करने के लिए xmodmap। मैं यह पता नहीं लगा सकता कि कहां setxkbmapसे बुलाया जा रहा है, लेकिन मुझे setxkbmapअपने कैप्स लॉक को Ctrl के रूप में व्यवहार करने के लिए कमांड का उपयोग करने का एक तरीका मिला ।

setxkbmap -option ctrl:nocaps

ओपनबॉक्स शुरू करने से ठीक पहले। शानदार काम करता है। कैप्स लॉक कुंजी एक ctrl कुंजी के रूप में कार्य करती है। xmodmapकभी नहीं चलाया जाता है।

मैं इस प्रश्न को यहाँ रखूँगा ताकि कोई व्यक्ति जो इन बातों को जानता है, कुछ जानकारी दे सके। इसके अलावा, जो लोग मेरे बाद इसका सामना करते हैं :)

अपडेट ३

यहाँ मेरी सामग्री है .config/openbox/autostart, जैसा कि पेड्रोसोरियो द्वारा अनुरोध किया गया है।

#!/bin/bash

# Set the wallpaper.
feh --bg-scale /wall.png

# Set default brightness.
xbacklight -time 1 '=40'

# Compositing.
xcompmgr &

# The panel.
tint2 &

# Start a terminal too.
roxterm &

इसका कीबोर्ड से कोई लेना-देना नहीं है, जहां तक ​​मैं बता सकता हूं। इसके अलावा, यहां वह स्क्रिप्ट है जो मेरा सत्र शुरू करती है: (lightdm द्वारा चलाएं)

#!/bin/bash

setxkbmap -option ctrl:nocaps

exec openbox-session

आप शायद किसी प्रकार के कीबोर्ड कॉन्फ़िगरेशन का उपयोग कर रहे हैं, उदाहरण के लिए कीबोर्ड लेआउट या ऐसा ही कुछ चुनें जो आपके लागू परिवर्तनों को बदल देता है
उलरिच डैंगेल

केवल अन्य स्थान जो मैंने कीबोर्ड कॉन्फ़िगरेशन से भरा था, वह है GUI कीबोर्ड लेआउट प्राथमिकताएँ विंडो, जहाँ मैंने अतिरिक्त ctrl के रूप में व्यवहार करने के लिए कैप्स लॉक कुंजी को बदल दिया है। यह ठीक काम करता है, दालचीनी डे में, मेरे कैप लॉक एक रीलोइन के बाद भी सीटीटी के रूप में कार्य करता है। मुझे लगता है कि विन्यास केवल दालचीनी था, लेकिन मुझे यकीन नहीं है।
श्रीकांत शरत

आप ऑटोस्टार्ट स्क्रिप्ट में कमांड कैसे जोड़ रहे हैं?
पेड्रोसोरियो

क्या आप अपनी autostartफाइल पोस्ट कर सकते हैं ?
पेड्रोसौरियो

जवाबों:


1

मैं एक ऐसी ही समस्या का सामना कर रहा था। यह पता चला कि यह इबुस के कारण हुआ था। मैंने बस इसकी स्थापना रद्द कर दी है क्योंकि मुझे इसकी सेवाओं की आवश्यकता नहीं है।

मुझे पटकथा के द्वारा setxkbmap को बदलने की आपकी चाल का उपयोग करके अपराधी पाया गया, हालांकि मैंने ps -AF --forestsetxkbmap के कॉलर को पहचानने के लिए भी जोड़ा ।


0

आपकी आटोस्टार्ट स्क्रिप्ट को जाने बिना मेरी शर्त यह है कि आप एम्परसेंड ( &) का उपयोग करके अपने कमांड को पृष्ठभूमि में चलने देकर उचित वाक्यविन्यास का उपयोग नहीं कर रहे हैं ।

अपनी .config/openbox/autostartफ़ाइल को संपादित करने का प्रयास करें ताकि यह इस तरह दिखे:

# Run the system-wide support stuff
#. $GLOBALAUTOSTART
# Programs to launch at startup
# Programs that will run after Openbox has started
(sleep 1 && xmodmap ~/.Xmodmap ) &

अगर संदेह में ओपनबॉक्स विकी में एक नज़र है और देखें कि &प्रत्येक प्रविष्टि के बाद सभी उदाहरण कैसे हैं ।

http://openbox.org/wiki/Help:Autostart


मेरी ऑटोस्टार्ट फ़ाइल खाली है। एक बिंदु पर मेरे पास xmodmap ~/.Xmodmapउस फ़ाइल में (बिना &, आवश्यक प्रतीत नहीं हुआ)। मैं स्क्रिप्ट में xmodmap(और अब setxkbmap) कॉल कर रहा हूं जो मेरा ओपनबॉक्स सत्र शुरू करता है। दौड़ने से पहले exec openbox-session, मैं setxkbmapकमांड चलाता हूं ।
श्रीकांत शरत

इसके अलावा, एक sleep 1देरी को जोड़ना ताकि xmodmapहर चीज के लोड के बाद इसके परिवर्तन लागू हों, जबकि अधिकांश समय काम करता है, मुझे समाधान के बारे में बहुत आश्वस्त नहीं करता है। यदि मेरे पास विकल्प हैं तो मैं इसे नहीं करना चाहूंगा।
श्रीकांत शरत

आप स्पष्ट रूप से सभी टिप्पणियों और sleepआदेश से बच सकते हैं , फिर भी &प्रत्येक प्रविष्टि के बाद आवश्यक है, अन्यथा पहली प्रविष्टि के बाद के सभी कार्यक्रम बिल्कुल नहीं चलेंगे।
पेड्रोसौरियो

हां, यदि इसका लंबे समय तक चलने वाला ऐप / प्रक्रिया है, तो &वसीयत को न जोड़ने से यह ब्लॉक हो जाएगा। मैंने zenityआदेश के साथ इस व्यवहार का उपयोग यह खोजने के लिए किया कि मेरे xmodmapपरिवर्तन खत्म होने के बाद autostart लिखे जा रहे हैं । मेरा ऑटोस्टार्ट अब आकार में बढ़ रहा है और इसे एक क्षण में प्रश्न में चिपका देगा। हालांकि इसका कीबोर्ड से कोई लेना-देना नहीं है।
श्रीकांत शरत

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