Cinnamon / Linux / Xorg में स्क्रॉल लॉक कुंजी अक्षम क्यों है?


13

मैंने हाल ही में एक बैकलिट कीबोर्ड खरीदा है जिसे इस तरह से डिज़ाइन किया गया था कि बैक लाइट को चालू करने के लिए स्क्रॉल लॉक कुंजी का उपयोग किया गया था। मैंने जल्दी से पाया कि जब स्क्रॉल लॉक कुंजी दबाया जाता है तो दालचीनी ठीक से प्रतिक्रिया नहीं देती है। मूल रूप से, मुझे लगा कि कीबोर्ड बैकलाइट DOA था क्योंकि बाकी सब कुछ बॉक्स से बाहर काम करता था। रिबूट के बाद मैंने पाया कि Xorg लॉन्च करने से पहले मैं स्क्रॉल लॉक कुंजी का उपयोग करके बैकलाइट को सफलतापूर्वक चालू करने में सक्षम था। फिर, एक बार फिर से, Xorg (और इसके परिणामस्वरूप दालचीनी_ सत्र) शुरू करने के बाद, इस कार्यक्षमता ने एक बार फिर से काम करना बंद कर दिया।

Xorg लॉन्च करने के बाद बैकलाइट काम करने के लिए मुझे xset led named "Scroll Lock"इस कार्यक्षमता को सक्षम और अक्षम करने के लिए a: जारी करने के लिए मजबूर किया गया था ।

थोड़ा शोध के बाद, मैंने एक कार्यक्रम xevके दौरान टर्मिनल पर उस महत्वपूर्ण घटना की जानकारी डंप की, जिसे शुरू किया गया था। स्क्रॉल लॉक कुंजी दबाने पर टर्मिनल इस जानकारी से आबाद हो गया:

KeyPress इवेंट, सीरियल 34, सिंथेटिक NO, विंडो 0x2c00001, रूट 0x2df, subw 0x0, टाइम 2609824, (410,0), रूट: (1724,142), स्टेट 0x0, की 78 (keyym 0xff14, स्क्रॉल_लॉक), same_screen YES, XLookupString देता है 0 बाइट्स: XmbLookupString देता है 0 बाइट्स: XFilterEvent रिटर्न: गलत

KeyRelease घटना, धारावाहिक 37, सिंथेटिक NO, विंडो 0x2c00001, रूट 0x2df, subw 0x0, समय 2609912, (410,0), रूट: (1724,142), राज्य 0x0, कीकोड 78 (keyym 0xff14, Scroll_Lock), same_screen YES, XLookupString 0 बाइट देता है:

इसलिए मुझे पता है कि महत्वपूर्ण घटना कर्नेल को भेजी जा रही है।

इसके अलावा, दिलचस्प बात यह है कि मैंने अजीब व्यवहार देखा, जब टर्मिनल (अभी भी Xorg या Cinnamon को लॉन्च करने से पहले) और स्क्रॉल लॉक का उपयोग कर रहा था। अर्थात्, इस बिंदु पर मेरी बैकलाइट उम्मीद के मुताबिक टॉगल कर रही थी, लेकिन जब स्क्रॉल लॉक सक्षम किया गया तो मैंने जो कुछ लिखा था वह स्क्रीन पर नहीं लिखा गया था। स्क्रॉल लॉक को अक्षम करने के बाद मैंने जो कुछ भी लिखा था उसे तुरंत टर्मिनल में डंप कर दिया गया था जैसे कि यह पहले से बफर हो रहा था।

tl; स्क्रोल लॉक और Xorg के साथ क्या सौदा है?


कोई भी भाग्य इस मुद्दे को हल करने वाला @sherrellbc है?
पाइकलर

जवाबों:


10

मैं दालचीनी से परिचित नहीं हूं, लेकिन आपकी स्क्रॉल लॉक कुंजी को सक्षम करना संभव होना चाहिए।

पहले, हमें यह देखने की आवश्यकता है कि क्या आपके पास एक अतिरिक्त कीबोर्ड संशोधक स्लॉट है। Daud:

xmodmap -pm

जो आपके वर्तमान संशोधक सेटअप की सूची प्रिंट करेगा। उम्मीद है, उन पंक्तियों में से एक में सूचीबद्ध कोई कुंजी नहीं होगी; आम तौर पर यही होगा mod3। यह मानते हुए कि आप इस आदेश के साथ स्क्रॉल लॉक को सक्षम कर सकते हैं:

xmodmap -e "add mod3 = Scroll_Lock"

आपके स्क्रॉल लॉक एलईडी को अब स्क्रॉल लॉक कुंजी प्रेस का जवाब देना चाहिए।

यदि वह काम करता है, तो आप शायद एक्स को ऐसा करना चाहते हैं जब भी यह शुरू होता है। ऐसा करने के लिए विभिन्न तरीके हैं: यह प्रति उपयोगकर्ता के आधार पर किया जा सकता है, लेकिन कुछ इस तरह से मुझे लगता है कि यह समझ में आता है कि इसे विश्व स्तर पर स्थापित किया जाए।

लेकिन मैंने ऐसा अपने आप से पहले कभी नहीं किया है, इसलिए मैं आगे का विवरण देने से पहले बेहतर परीक्षण करूंगा। :)

ठीक। जिस विधि से मैंने उस मॉडमैप को सक्रिय रूप से सक्रिय करने का प्रयास किया वह मेरे लिए केडीई पर काम नहीं करता है। :( लेकिन इसे मेरे घर निर्देशिका में सक्रिय करने से ठीक काम लगता है।

.Xmodmapअपने घर निर्देशिका में एक फाइल बनाएं जिसमें यह रेखा हो:

add mod3 = Scroll_Lock

ऐसा करने का सबसे आसान तरीका है:

cd ~
echo >.Xmodmap "add mod3 = Scroll_Lock"

अब X को पुनः आरंभ करें (लॉगआउट करें और फिर से लॉगिन करें)। उम्मीद है, आपकी स्क्रॉल लॉक कुंजी काम कर रही होगी। यदि यह नहीं है, तो कृपया मुझे बताएं।


.Xmodmap config ने Ubuntu 16.04 / Unity पर मेरे लिए काम नहीं किया, लेकिन पाइकलर के जवाब में स्थायी समाधान ने काम किया :)
Nebel54

7

आधे पके हुए घोल के साथ एक लंबी रात के बाद स्थायी रास्ता मिला

# backup your symbols file
sudo cp /usr/share/X11/xkb/symbols/us{,.distribution} 

xkb_symbols "basic" {अनुभाग में निम्नलिखित पंक्ति जोड़ें । चिंता न करें अगर वह दूसरी पंक्ति नहीं है, तो यह केवल कुछ भाषाओं के लिए है और हमारे सिस्टम पर हमारे लिए नहीं थी।

...
    modifier_map Mod3   { Scroll_Lock }; <==<< Add this line

    include "level3(ralt_switch)" <==<< before this line
};

यदि आप भाषाओं के बीच स्विच करते हैं तो आपको अपने अन्य लेआउट में भी ऐसा करना पड़ सकता है

इसके अलावा, एक कैश है जहां xkb लेआउट रहते हैं। नए कीबोर्ड सिंबल फाइल (नों) की जांच करने के लिए अपने एक्स सर्वर को फिर से शुरू करने से पहले आपको इसे साफ कर देना चाहिए।

sudo rm -f /var/lib/xkb/*

यह अच्छा है, लेकिन इसने केवल gsettings परिवर्तन और xkboptions परिवर्तन के साथ-साथ मेरे लिए askubuntu.com/a/1067921/274298 में उल्लेख किया है ।
peschü

2

के रूप में Scroll Lockजब सक्रिय (नाम अपने कीबोर्ड शॉर्टकट के साथ हस्तक्षेप कर सकते हैं F12, Ctrl+ Spaceकाम अपेक्षा के अनुरूप नहीं होगा), मैं मैच के लिए फैसला किया है Scroll Lockकी एक पुस्तिका लांच की कुंजी xset, एलईडी राज्य यह पहले वाली स्थिति के बारे में टॉगल।

मैंने एक निष्पादन योग्य स्क्रिप्ट बनाई, जिसका नाम है toggle_keyb_led.sh:

xset q | awk '/LED/{ if ($10 ~ "00000000") print "led"; else print "-led" }' | xargs xset

यह आउटपुट को पार्स करता है xset q, लाइन के साथ मेल खाता है LED mask

नोट 1 : यदि आप के लिए काम नहीं करता है, तो कृपया xset -led; xset q | grep 'LED'वर्तमान मुखौटा मूल्य के साथ सत्यापित करें ।

नोट 2 : xset led 3प्रकाश को सक्रिय करने के लिए कुछ उपयोगकर्ताओं को चलाने की आवश्यकता है । इस मामले में, कृपया स्क्रिप्ट के ऊपर फिर से लिखें।


फिर आप इस स्क्रिप्ट को अपने डेस्कटॉप वातावरण (जैसे कि एक दालचीनी के साथ) का उपयोग करके कस्टम शॉर्टकट के रूप में लॉन्च कर सकते हैं:

यहाँ छवि विवरण दर्ज करें

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