NumLock को हमेशा चालू रखें


29

मेरे पास दाईं ओर संख्यात्मक कुंजी के साथ मानक कीबोर्ड है (मुझे लगता है कि इसे 104-कुंजी कीबोर्ड कहा जाता है)। मैं केवल संख्यात्मक कुंजियों के रूप में संख्यात्मक कुंजियों का उपयोग करना चाहता हूं। इसका मतलब है, मैं NumLockसंख्यात्मक कुंजियों को चालू और बंद नहीं करना चाहता ।

हालांकि, कभी-कभी ऐसा होता है (मुझे नहीं पता कि, शायद मेरे द्वारा गलती से NumLockकुंजी को मारते हुए ) कि अंक को बंद कर दिया गया है, और मुझे इसे फिर से दबाना होगा। यह बेहद कष्टप्रद है।

क्या यह संभव है कि अंकन से स्विचिंग अक्षम करें?

दूसरे शब्दों में: मैं चाहता हूं कि मेरी संख्यात्मक कुंजियाँ हमेशा संख्या कुंजियों के रूप में कार्य करें, और अंक स्विच को अक्षम करें

मैं डेबियन और LXDE (ओपनबॉक्स) का उपयोग कर रहा हूं।


: इस धागा है ubuntuforums.org/showthread.php?t=2138114
SLM

@MartinVegter चाहेंगे तुम यहाँ की सामग्री को पोस्ट करना चाहते ~/.config/openbox/autostartऔर ~/.config/openbox/rc.xml?
रिस्तो सलमिनन

एक घटना की आवश्यकता है, जो न्यूक्लॉक को फिर से चालू कर देगा अगर यह पता चला कि अंकलॉक चालू है। न्यूक्लॉक को डिसेबल करना उतना ही आसान है जितना इसके द्वारा बताया गया है xmodmap। केवल प्रश्न शेष है कि उस घटना को कैसे प्राप्त किया जाए ......?
SHW

जवाबों:


7

यहाँ सभी उत्तर पढ़ने के बाद मुझे यह देखकर काफी आश्चर्य हुआ कि आप निम्नलिखित कार्य कर सकते हैं।

<keybind key="Num_Lock">
  <action name="Execute">
    <command>numlockx on</command>
  </action>
</keybind>

इसलिए हर बार जब आप प्रेस करते हैं Num, जो कि नंबरलॉक को निष्क्रिय कर देता है। यह निष्पादित करेगा numlockx on, जो सुन्न पर प्रतिक्रिया करता है।

नाम मेरे आउटपुट से आता है xevजिसने मुझे कुंजी कोड 77 और नाम दियाNum_Lock

@MartinVegters मामले में उन्हें कुछ सेकंड इंतजार करने की आवश्यकता थी इसलिए numlockx onनिश्चित रूप से घटना Numको संभालने के बाद निष्पादित किया जाता है। चूंकि कर्नेल में अंडकोश के संचालन और निष्पादन के बीच एक दौड़ की स्थिति है numlockx

इस मामले के लिए आप एक छोटी सी स्क्रिप्ट लिख सकते denumlock.shहैं

#!/bin/sh

sleep "$1"
numlockx on

और कुंजी बंधन में इसका उपयोग करें

<command>/bin/sh denumlock.sh 1</command>

यह गंदा है लेकिन यह काम करता है।

मैं जो सुझाता हूं वह निम्नलिखित है जिसका मैं खुद परीक्षण नहीं कर सकता। आप पहले उन उत्तरों का बेहतर तरीके से पालन करते हैं जो उपयोग करने का सुझाव देते हैं

xmodmap -e 'keycode 77 = Escape'

लेकिन LXDE के लिए आपको LXDE ऑटोस्टार्ट तंत्र का उपयोग करने की आवश्यकता है जो संपादन के ओपनबॉक्स तरीके से अलग है ~/.config/openbox/autostart

LXDE में आपको स्पष्ट रूप ~/.config/lxsession/LXDE/autostartसे ल्यूबुन्टू को संपादित करने की आवश्यकता होती है ~/.config/lxsession/Lubuntu/autostart, जो स्टार्ट अप के लिए कमांड रखता है। (देखें आर्क डॉक्स और LXDE डॉक्स ) आप उस फ़ाइल बना सकते हैं और इस लाइन को जोड़ने की आवश्यकता हो सकती है।

@xmodmap -e 'keycode 77 = Escape'

अफसोस की बात है, जैसा कि मैंने कहा कि अगर मैं केवल LXDE के साथ एक वीएम चल रहा है, तो यह काम नहीं कर सकता।


1
मैंने आपके समाधान की कोशिश की है <keybind key="Num_Lock">लेकिन दुर्भाग्य से यह काम नहीं करता है। जबकि कमांड numlockx onनिष्पादित हो जाता है, <kbd> NumLock </ kbd> अभी भी अपने फ़ंक्शन को numlock के रूप में रिटेल करता है। तो मैं अभी भी / पर / बंद numlock स्विच कर सकते हैं।
मार्टिन वेग्टर

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

@MartinVegter Mhh आप sleep 3; numlockx onकुंजी बाँध के लिए कोशिश कर सकते हैं। दूसरे समाधान के लिए आपने इसे ऑटोस्टार्ट के साथ आज़माया है?
राफेल एहरेंस

मुझे समझ में क्यों नहीं आता है, लेकिन यहां तक ​​कि sleep 3; /usr/bin/numlockx onकाम नहीं करता है। NumLockअभी भी चालू / बंद स्विच के रूप में कार्य करता है।
मार्टिन वेग्टर

@MartinVegter /usr/bin/numlockx onआपके सिस्टम पर काम करता है?
राफेल एहरेंस

13

शायद मेरे द्वारा गलती से NumLockचाबी मारना

यदि कीबोर्ड आपका है (उदाहरण के लिए आपके नियोक्ता के बजाय), तो बस इसे कीबोर्ड से भौतिक रूप से हटा दें

आप अभी भी इसे एक नुकीली चीज के साथ दबा सकते हैं अगर आपको वास्तव में कभी ज़रूरत पड़े।

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


4
हाँ, +1। सिंपल एलिगेंट है।
ypercube y

1
दुख की बात है कि मेरा न्यूक्लुक डिफॉल्ट स्टेट गलत है :(
माइकलचिरिको

6

मेरे लैपटॉप कीबोर्ड पर (Ubuntu 10.04) कीबोर्ड लॉक वर्तमान में चालू है।

$ xmodmap -pke|grep 77
keycode  77 = Num_Lock Pointer_EnableKeys Num_Lock Pointer_EnableKeys
keycode 177 = XF86Phone NoSymbol XF86Phone
$ xmodmap -e "keycode 77 ="

वोइला! numlock अब अक्षम है।

xmodmap -e "keycode  77 = Num_Lock Pointer_EnableKeys Num_Lock Pointer_EnableKeys"

इसे फिर से वापस डालता है। (शायद Num_lock के लिए greping एक बेहतर विचार रहा होगा, लेकिन आप इसे प्राप्त करते हैं)।

@Martin Vegter की टिप्पणी का उत्तर दें।

ठीक है , आपकी टिप्पणी के जवाब में xmodmap ने आपके बाइंडिंग को बर्बाद कर दिया, समझा।

मैंने अभी-अभी Openbox Documentation को चेक किया है

~ / .Config / openbox / lxde-rc.xml पर एक नज़र डालें

ls -l lxde-rc.xml (क्या आपके पास rc.xml भी है? कृपया जाँच करें)।

बैकअप के रूप में इसकी एक प्रति लें

(एक संपादक का उपयोग) numlock के लिए खोज (शायद nmlk)।

क्या आपको ऐसा कुछ दिखाई देता है?

<keybind key="Numlock">
<action name="whatEverItSays"/>
</keybind>

इसे बाहर टिप्पणी करें या कीबाइंड कुंजी-मान को वैकल्पिक के लिए बदलें जैसे कि Alt-Numlock टॉगल करने के लिए

key="A-Numlock"

उदाहरण के लिए

करने के लिए बाहर टिप्पणी

<!-Commented out from here
    <keybind key="Numlock">
    <action name="whatEverItSays"/>
    </keybind>
To Here -->

या

Alt + Numlock टॉगल में बदलें

<keybind key="A-Numlock">
  <action name="whatEverItSays"/>
</keybind>

परिवर्तन सहेजें और लॉगआउट / लॉगिन या पुनरारंभ करें।


समस्या यह है कि कोई भी xmodmapआदेश (अर्थात xmodmap -e 'keycode 77 = Escape') मेरे मौजूदा की-बाइंडिंग को नष्ट कर देता है जो कि परिभाषित हैं.config/openbox/lxde-rc.xml
मार्टिन वेज्टर

1
मैंने बेहतर स्वरूपण प्राप्त करने के लिए ऊपर उत्तर दिया है।
एक्स तियान्

आपके जवाब के लिए धन्यवाद। हालाँकि, मेरे में .config/openbox/lxde-rc.xml, कोई लाइन नहीं है Numlockया Num_Lock। जब मैं एक बनाता हूं, तो इसका कोई प्रभाव नहीं पड़ता है: <keybind key = "Num_Lock"> <Action name = "Execute"> <कमांड> / बिन / सच </ कमांड> </ कार्रवाई> </ keybind>
मार्टिन वीटर

1
आपके होम डाइरेक्टरी में एक से पहले एक और कॉन्फिग फाइल पढनी चाहिए। दो जगहों पर मेरा सुझाव है, / etc / xdg / openbox और / usr / share / ... यदि यह कोई मदद नहीं है, तो मुझे छोड़ना होगा - क्षमा करें।
X Tian

3.4.7 परिवर्तित लॉग (ओपनबॉक्स) से "फिक्स कुंजी बाइंडिंग खो रही है यदि एक ही स्तर पर कई बाइंडिंग का अनुवाद नहीं किया जा सकता है (फिक्स वीएमवारे ओपनबॉक्स कीबाइंडिंग को काम करना बंद कर देता है)"
X Tian

5

के साथ अपने numlock कीकोड का पता लगाएं xev। उदाहरण के लिए, यहाँ, Num_Lock 77 है।

कीमोड को रीमैप करने के लिए xmodmap का उपयोग करें:

  • वर्तमान एक्स सत्रों के लिए, शेल के अंदर, उपयोग करें xmodmap -e 'keycode 77 = '
  • सभी भविष्य के एक्स सत्रों के लिए, अंदर ~/.xprofileजगह xmodmap -e 'keycode 77 = '

    EDIT: नोट: यदि कोई सॉफ्टवेयर Num Lock स्थिति को बदल रहा है तो काम नहीं करता है।


1
आदेश xmodmap -e 'keycode 77 = 'काम करता है, लेकिन यह एक गंभीर समस्या का कारण बनता है: मेरे सभी कुंजी-बाइंडिंग काम करना बंद कर देते हैं
मार्टिन वेग्टर

ठीक है, आप इसे एक वैध, हानिरहित कुंजी पर मैप करने का प्रयास कर सकते हैं। जैसे xmodmap -e 'keycode 77 = Escape'(YMMV, ESC मेरे लिए सुरक्षित लगता है)। क्या आपके पास ~ / .Xmodmap फ़ाइल है? यदि हाँ, इसके बजाय ~/.xprofile, keycode 77 = Escapeइस फ़ाइल के अंत में रखें।
emp.justine

1
समस्या यह है कि कोई भी xmodmapआदेश (अर्थात xmodmap -e 'keycode 77 = Escape') मेरे मौजूदा की-बाइंडिंग को नष्ट कर देता है जो कि परिभाषित हैं.config/openbox/lxde-rc.xml
मार्टिन वेग्टर

4

बस कुछ भी नहीं मैप करके NumLock कुंजी मैपिंग को हटा दें: पहले रन xevऔर Num Lock को दबाएं (यह संभवतः 77 प्रिंट करेगा), और फिर कमांड चलाएँ:

xmodmap -e "keycode # = """

जहाँ # NumLock की कुंजी है।

आपने ~/.xprofileX सत्र में NumLock को अक्षम करने के लिए भी इसे रखा होगा ।


मामले में मेरा मूल प्रश्न स्पष्ट नहीं है: मैं नंबरों को बंद नहीं करना चाहता। मैं इसके विपरीत चाहता हूं। मैं यह सुनिश्चित करना चाहता हूं कि इसे बंद नहीं किया जा सके (मैं हमेशा
सुन्न

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

इसका मेरे सिस्टम पर कोई प्रभाव नहीं पड़ा है:xmodmap -e "remove Lock = Num_Lock"
मार्टिन वेगाटर

अब कमांड काम करता है, लेकिन यह मेरे सभी की-बाइंडिंग को नष्ट कर देता है। सभी की-बाइंडिंग काम करना बंद कर देती हैं।
मार्टिन वेगा

सुपरसिर पर इस जवाब के अनुसार, यह नहीं होना चाहिए ।
रिस्टो सलमिनन

4

कीबोर्ड विकल्पों की तस्वीरLinuxMint 17.2 के साथ और मुझे लगता है कि आप अपने कीबोर्ड सेटिंग में जा सकते हैं और उबंटू के अन्य संस्करणों की कल्पना करते हैं और फिर उस पृष्ठ पर आपको एक छोटा "विकल्प" बटन मिलेगा।

वहां से "मिस कम्पैटिबिलिटी ऑप्शंस" पर जाएं और चेक करें "नंबर कीज हमेशा डिजिट में दर्ज करें"

यह मेरे लिए जीवन रक्षक है। यह एक नंबर टाइप करने और पृष्ठ पर कहीं और स्थानांतरित होने के लिए मुझसे अलग हो जाता है। चीयर्स! ;)


1
इस उत्तर में और भी बहुत सारे बिंदु होने चाहिए!
कार्लोस गैंट

यह द्वारा कमांड लाइन से भी किया जा सकता है setxkbmap -option numpad:macया निर्धारित करके Option "XkbOptions" "numpad:mac"में xorg.conf
j123b567

2

यहाँ अन्य उत्तरों के numlockx onसाथ प्रयोग करने का सुझाव दिया गया है xmodmap -e 'keycode 77 =', लेकिन numlockx onमेरे सिस्टम पर उस xmodmapकमांड के साथ काम नहीं करेगा , जो मुझे एक त्रुटि संदेश दिखा रहा है:

$ numlockx on
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  132 (XTEST)
  Minor opcode of failed request:  2 (X_XTestFakeInput)
  Value in failed request:  0x0
  Serial number of failed request:  17
  Current serial number in output stream:  20

और xmodmap -e 'keycode 77 ='किसी कारण से सेटिंग करने से मेरी सभी कीबाइंडिंग भी निकल जाएगी xbindkeys

हालांकि इसी तरह के सवाल के जवाब ने मेरी मदद की है। मेरा हिस्सा ~/.xinitrc:

numlockx on
xmodmap -e 'keycode 77 = NoSymbol Num_Lock'

इस तरह से NumLock अपने आप में कुछ भी नहीं करता है, लेकिन यदि Shift के साथ दबाया जाता है तो यह अपने मूल (अधिकतर बेकार) उद्देश्य को पूरा करता है, और सबसे महत्वपूर्ण बात यह है कि यह numlockx onमेरे सिस्टम पर काम करने से रोकता नहीं है, या मेरे xbindkeysप्रमुख बाइंडिंग को गड़बड़ करता है ।


1

एक अन्य तरीका, यदि आप numlockकुंजी को स्थायी रूप से अक्षम करना चाहते हैं । आप अपनी वर्तमान कीमैप फ़ाइल को कीकोड 77 में संशोधन करके ऐसा कर सकते हैं।

इस मान को "कोई नहीं" पर सेट करें, ताकि आकस्मिक प्रेस कुंजी कुछ भी न करे।

numlockxइसे शुरू करने के लिए बूटअप का उपयोग करें और स्क्रिप्ट ~/.bashrcया उदाहरण में से एक में संशोधित कीमैप फ़ाइल का उपयोग करें /etc/profile

नोट: मैंने इसका परीक्षण नहीं किया है, लेकिन यह काम करना चाहिए।


1

KDE के साथ OpenSuse 13.x पर, इसने मेरे लिए काम किया:

  • अंकसूची स्थापित करें
  • कस्टम शॉर्टकट जोड़ें:
    • कस्टम शॉर्टकट -> संपादित करें -> नया -> वैश्विक शॉर्टकट -> कमांड / URL:
    • क्रिया का नाम: NumLockOn
    • टिप्पणी: सुन्न रखें
    • ट्रिगर: NumLockk पर सेट
    • क्रिया-> कमांड / URL: sh -c 'स्लीप 0.5; अंकलॉक' पर
    • मारो आवेदन
    • (किया हुआ)

यदि NumLock को सक्षम होने की आवश्यकता है क्योंकि इसका उपयोग बंद है, तो बस उपयोग करें % numlockx on


मुझे इसकी ही आवश्यकता थी। Xubuntu 16.04 पर काम करना।
kodmanyagha


0

यह सबसे अच्छा समाधान नहीं हो सकता है, लेकिन यह मेरे लिए काम करता है:

stdbuf -oL xinput test 11 | mawk -W interactive '$3==77 {printf "/usr/bin/numlockx on\n"}' | bash

जहां 11 आपके कीबोर्ड की आईडी है। xinputअपनी कीबोर्ड आईडी निर्धारित करने के लिए एक सूची बनाएं (मेरे मामले में यह 11 है):

user@host:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ DualPoint Stick                           id=12   [slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS DualPoint TouchPad          id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Sony Vaio Keys                            id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ USB 2.0 Camera                            id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]

जाहिर है, numlockxकाम करने के लिए स्थापित किया जाना चाहिए।

स्पष्टीकरण:

  • stdbuf -oL बफर करने के लिए आउटपुट स्ट्रीम के बफरिंग संचालन को संशोधित करता है
  • xinput test 11 दबाए गए कुंजी को स्टडआउट करने के लिए प्रिंट करता है
  • mawk -W interactive '$3==77 {printf "/usr/bin/numlockx on\n"}'प्रत्येक पंक्ति के लिए जो मुद्रित होती है और जिसमें 77 (नंबरलॉक कुंजी) होती है, एक कमांड का निर्माण करती है /usr/bin/numlockx on...
  • | bash ... और इसे निष्पादित करने के लिए बैश करने के लिए पाइप करें।

आप इस ऑनलाइनर को डेस्कटॉप वातावरण प्रारंभिक स्क्रिप्ट में से एक में सम्मिलित कर सकते हैं या इसे पृष्ठभूमि में चला सकते हैं।


0

मैं यह भी चाहता हूं कि संख्यात्मक कीपैड नंबर कुंजी हमेशा संख्याओं की हो, कोई भी KP _... सामान न हो।

मेरा समाधान लिनक्स रेपो के साथ उपयोग के लिए मेरे रीमैपिंग ऐप्पल कीबोर्ड का हिस्सा है ।

मूल रूप से, यह बस F20 के रूप में Num_Lock, और खुद को संख्याओं के रूप में याद दिलाता है।

यह समाधान हमेशा वांछित परिणाम और फ्रिंज लाभ के रूप में एक अतिरिक्त फ़ंक्शन कुंजी प्रदान करता है।


-1

निम्नलिखित स्क्रिप्ट बनाएं और इसे निष्पादन योग्य बनाएं chmod +x <filename>

#!/bin/bash
if [ -x /usr/bin/numlockx ];then
/usr/bin/numlockx on
fi

में फ़ाइल पथ रखो .config/openbox/autostart

या इसे एक क्रोन जॉब के रूप में रखें जो हर जोड़े की जाँच करता है और स्क्रिप्ट बंद होने पर उसे चलाता है।

crontab -e 
*/1 * * * * <path-to-file>

या बस स्क्रिप्ट को एक लूप में चलाएं।

#!/bin/bash
  x=0
  while [ x -eq 0 ];do
    if [ -x /usr/bin/numlockx ];then
    /usr/bin/numlockx on
    fi
  done

यदि आपके पास अंकसूची नहीं है तो आपको इसे प्राप्त करने में सक्षम होना चाहिए sudo apt-get install numlockx


नहीं, यह निश्चित रूप से एक अच्छा समाधान नहीं है। क्षमा करें
बजे मार्टिन वेगाटर

1
क्या आप स्पष्ट करने में सक्षम हैं क्यों नहीं?
17

1
ठीक है, क्योंकि यह बहुत गंदा काम है। यह अंतर्निहित समस्या को ठीक नहीं करता है, यह केवल कालीन के नीचे लक्षणों को स्वीप करता है।
मार्टिन वेगाटर

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

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