Fn कुंजियाँ कैसे काम करती हैं?


26

मुझे यह जानना पसंद है कि Fnमेरे लैपटॉप में चाबियाँ कैसे काम करती हैं। मुझे लगता है कि एक कर्नेल मॉड्यूल मौजूद है जो Fnकुंजी को पकड़ता है और कुछ करने के लिए कुछ स्क्रिप्ट को कॉल करता है। अपने लैपटॉप, में Fn+ F2वायरलेस और नीली दांत के स्विच बिजली।

acpi_listenजब मैं Fn+ दबाता हूं तो यह आउटपुट होता हैF2

hotkey ATKD 0000005d 00000019
hotkey ATKD 0000007e 00000009

और, फ़ोलोइंग + के xevलिए आउटपुट हैFnF2

keycode 238 press
keycode 238 release
keycode 237 press
keycode 237 release

मुझे लगता है कि जब भी मैं दबाया जाता है Fn+ F2दो घटनाओं को बाहर कूद रहे हैं। मैंने यह खोजने की कोशिश की कि इस कुंजियों के लिए कौन से कार्य निष्पादित किए जाते हैं। किसी भी विचार की सराहना की;)

जवाबों:


26

Synetech यहाँFn कुंजियों के बारे में बहुत ही पठनीय व्याख्या देता है

तकनीकी जानकारी

जब आप एक कुंजीपटल पर एक कुंजी दबाते हैं, कुंजीपटल नियंत्रक (एक छोटे से आईसी चिप के अंदर कुंजीपटल) बिजली के सर्किट का पता लगाता है और डिकोड जो कुंजी दबाने था करने के लिए इसे संसाधित करता है और फिर भेजता है scancode के लिए मदरबोर्ड । ऑपरेटिंग सिस्टम BIOS से स्केनकोड प्राप्त करता है और फिर उस की-वर्ड को संसाधित करने के लिए जो भी कार्रवाई की आवश्यकता होती है वह करता है।

अधिकांश कुंजियों के साथ, यह काफी सरल है। यदि आप A कुंजी दबाते हैं, तो इसका कीबोर्ड नियंत्रक मदरबोर्ड को स्कैन्कोड भेजता है जो फिर इसे ओएस को पास करता है जो बदले में आमतौर पर 'ए' प्रिंट करता है। (यदि OS यह पता लगाता है कि वर्तमान में संशोधक कुंजी में से एक को नीचे रखा गया है, तो यह कुछ अलग कर सकता है। वास्तव में, आप इसे कॉन्फ़िगर कर सकते हैं कि जब भी आप Aकुंजी के साथ या बिना संशोधक को दबाए रखना चाहते हैं ।

अब Fnकुंजी विशेष है। जब आप इसे खुद से दबाते हैं, तो कुछ भी नहीं होता है क्योंकि यह विशेष रूप से एक संशोधक कुंजी है और यह (आमतौर पर) अपने दम पर कुछ भी करने के लिए नहीं है। जब आप इसे पकड़ते हैं और दूसरी कुंजी दबाते हैं, तो कीबोर्ड कंट्रोलर पता लगाता है और इसकी अंतर्निहित तालिका में यह देखने के लिए कि क्या यह एक ज्ञात संयोजन है। यदि कॉम्बो तालिका में नहीं है, तो यह इसे अनदेखा करता है, लेकिन यदि कॉम्बो तालिका में है, तो यह संबंधित स्कैकोड को देखता है और भेजता है।

OS देखने से क्या समाप्त हो जाता है? यह कुंजी के लिए स्कैन्कोड और दूसरी कुंजी के लिए स्कैन्कोड को नहीं देखता है Fn। इसके बजाय, यह देखता है कि एफएन-कॉम्बो को जिस भी फ़ंक्शन से जोड़ा गया है, उससे जुड़ा एक एकल स्कैकोड। उदाहरण के लिए, यदि लैपटॉप निर्माता ने वॉल्यूम को कम करने के लिए Fn+ Down Arrowकॉम्बो सेट किया है , तो ओएस उस से जुड़े स्केनोड को देखता है Volume Down, जिसमें कुछ कीबोर्ड वास्तव में हैं।

यह भी ध्यान दें कि Fnकुंजी ऑपरेटिंग सिस्टम से स्वतंत्र रूप से काम करती है।

इसके अलावा, यह लेख आपको सही दिशा में इंगित करने में मदद कर सकता है:

कर्नेल की मैपिंग टेबल की अपनी एक विशेषता scancodeहै keycode, इसलिए यह एक निश्चित स्कैकोड को कीकोड में मैप करता है। आप /usr/include/linux/input.h में देख सकते हैं कि आपके कर्नेल स्कैकोड को कीकोड मैपिंग के लिए क्या उपयोग करता है - इसे ए कहा जाता है keymap


परिशिष्ट भाग

मुझे पहले के दावे पर कुछ हद तक सुधार करने की आवश्यकता हो सकती है कि Fnचाबियाँ पूरी तरह से ओएस के स्वतंत्र रूप से काम करती हैं ; यहां अधिक तकनीकी विवरणों में जाने के बिना, यह प्रतीत होता है कि आपका OS Fnउदाहरण के लिए, आपके या आपके कीबोर्ड की कुछ चाबियों का "समर्थन" नहीं कर सकता है :


1
धन्यवाद, एफएन कुंजियों के बारे में रोचक जानकारी, वास्तव में मैं चाहता हूं कि ओएस का कौन सा हिस्सा scancodeजुड़ा हुआ है, उदाहरण के लिए, "कीकोड 238"।
सूरोशोश

3
शायद यह लेख आपको सही दिशा में इंगित करने में मदद कर सकता है? "कर्नेल की मैपिंग टेबल की अपनी एक विशेषता scancodeहै keycode, इसलिए यह एक कीकोड को एक निश्चित स्कैकोड को मैप करता है। आप /usr/include/linux/input.h में देख सकते हैं कि आपके कर्नेल ने कीकोड मैपिंग के लिए स्कैंडोड का उपयोग क्या किया है - इसे कहा जाता है keymap। "
बारे

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