लिनक्स में एक Apple कीबोर्ड पर फ़ंक्शन कुंजियों के "fn" उपयोग को कैसे स्वैप करें


43

मेरे पास एक ऐप्पल स्लिम कीबोर्ड (USB) है और अगर मैं फंक्शन की में से किसी एक का उपयोग करना चाहता हूं, तो मुझे पहले "fn" की को दबाना होगा। अन्यथा, यह कुंजी के अन्य कार्य को करने की कोशिश करेगा, जैसे प्रदर्शन की तीव्रता को बढ़ाना या घटाना, वॉल्यूम / मीटर को बदलना, आदि…।

साथ ही, fn कुंजी वास्तव में नियमित कीबोर्ड के लिए "इन्सर्ट" कुंजी की स्थिति में है। मैं वह सब कैसे ठीक कर सकता हूं?

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

धन्यवाद :-)

जवाबों:


58
echo 0 > /sys/module/hid_apple/parameters/fnmode

या, अनुमति जारी करने के मामले में:

echo 0 | sudo tee /sys/module/hid_apple/parameters/fnmode

यह आपको रीबूट करने से रोकेगा। विकल्प जोड़ना एक अच्छा विचार है, इसलिए परिवर्तन रिबूट के माध्यम से जारी रहता है।

  • 0 = Fn कुंजी अक्षम की गई
  • 1 = Fn कुंजी डिफ़ॉल्ट रूप से दबाया गया
  • 2 = डिफ़ॉल्ट रूप से जारी की गई एफएन कुंजी

से /drivers/hid/hid-apple.c लाइन 42 :

Apple कीबोर्ड पर fn कुंजी का मोड (0 = अक्षम किया गया, [1] = fkeyslast, 2 = fkeysfirst)


1
ऐसा लगता है कि मैं एक सेब ड्राइवर का उपयोग नहीं कर रहा हूं, इसलिए यह मेरे लिए काम नहीं कर रहा है। मेरे पास एक ऑफ-ब्रांड ऐप्पल कीबोर्ड (रेजर ब्लैक विडो) है।
कीवेल्ली

1
@Kieveli जब लोग कहते हैं कि ऐप्पल कीबोर्ड वे उदारता से इसका मतलब नहीं है, वे सेब हार्डवेयर में मतलब है। यदि हार्डवेयर सेब नहीं है, तो आप सेब के ड्राइवर का उपयोग नहीं करेंगे। आपको पता चलेगा कि आप किस ड्राइवर के साथ हैं
DallaRosa

4
Ubuntu 14.04.3 के लिए, @cynyr द्वारा उत्तर काम नहीं करता है। आपको "अनुमति अस्वीकृत" मिलती है। एक काम करना यहाँ है: गूंज 2 | सूदो टी / सीस / मॉड्यूल / hid_apple / पैरामीटर / fnmode
akikara

अनुमति के साथ मुद्दों के लिए, देखें [ askubuntu.com/questions/103643/…
Diogo

35

किस विकल्प को सेट किया जाए /etc/modprobe.d, इस बारे में उपरोक्त उत्तर थोड़ा पुराना है। सौभाग्य से Apple कीबोर्ड समर्थन पर विस्तृत प्रलेखन है :

  1. संपादित करें या फ़ाइल बनाएँ /etc/modprobe.d/hid_apple.conf, उदा:

    gksudo gedit /etc/modprobe.d/hid_apple.conf

  2. इस लाइन को पहले की खुली फाइल में जोड़ें।

    options hid_apple fnmode=2

  3. फ़ाइल को सहेजें और कॉन्फ़िगरेशन को फिर से लोड करने के लिए hid_apple मॉड्यूल को सूचित करने के लिए निम्न कमांड निष्पादित करें।

    sudo update-initramfs -u

  4. रीबूट

मैं व्यक्तिगत रूप sudo update-initramfs -u -k allसे आपके सभी कर्नेल के लिए इसे अपडेट करने की सलाह दूंगा (एक बार जब आपको विश्वास हो जाता है कि सेटिंग काम करती है)।

Fnmode के तहत /sysअभी भी उसी तरह काम करता है:

sudo -s 'echo 2 > /sys/module/hid_apple/parameters/fnmode'

दोनों विधियों में मूल्य इस प्रकार हैं:

  • 0 = अक्षम: 'fn' कुंजी अक्षम करें। 'Fn' + 'F8' दबाने पर आप जैसा व्यवहार करेंगे, केवल 'F8' दबाएं
  • 1 = fkeyslast: अंतिम कुंजी के रूप में फ़ंक्शन कुंजियों का उपयोग किया जाता है। 'F8' कुंजी दबाने पर विशेष कुंजी के रूप में कार्य किया जाएगा। 'Fn' + 'F8' दबाने पर F8 की तरह व्यवहार होगा।
  • 2 = fkeysfirst: फ़ंक्शन कुंजियों का उपयोग पहली कुंजी के रूप में किया जाता है। 'F8' कुंजी दबाने पर F8 की तरह व्यवहार होगा। 'Fn' + 'F8' दबाने पर विशेष कुंजी के रूप में कार्य किया जाएगा (प्ले / पॉज़)

धन्यवाद - मैंने इस विधि को अपने लिनक्स मिंट सेटअप स्क्रिप्ट में github.com/duncan-bayne/mint-setup
डंकन बेने

echo 2 > /sys/module/hid_apple/parameters/fnmodeएफएन को प्राथमिक और मैक को माध्यमिक बनाने के लिए आपको बस (कम से कम फेडोरा डिस्ट्रो पर) रूट के रूप में चलना होगा । अरे हां!! धन्यवाद, वुपुताह !!
इलिया रोस्तोवत्से

बोनस: यदि आप अपना ~ मुख्य काम करना चाहते हैं, तो आपको iso_layout = 0 भी सेट करना चाहिए। मेरा hid_apple.conf इस तरह दिखता है: विकल्प hid_apple fnmode = 2 iso_layout = 0
थेल्स Ceolin

5

से यहाँ

हम Fn कुंजी के कार्य को कैसे स्वैप करते हैं?

पहले /etc/modprobe.d/options संपादित करें

sudo नैनो /etc/modprobe.d/options

और सुनिश्चित करें कि यह लाइन है

विकल्प छुपाया pb_fnmode = 2

फिर सहेजें और बाहर निकलें। अंत में, हमें रैमफ़ अपडेट करने की आवश्यकता है:

सुडो अपडेट-इनट्रैमफ्स -यू -v -k uname -r

तो बस रिबूट!


1

इसने मेरे लिए फेडोरा 24 पर काम किया

  1. शुरू करने के लिए SystemD के लिए एक नई फ़ाइल बनाएँ।

    gedit /usr/lib/systemd/system/mac-keyboard.service

    सुनिश्चित करें कि फ़ाइल में निम्नलिखित शामिल हैं

    [Unit]
     Description=mac-keyboard
    [Service]
     Type=oneshot
     ExecStart=/bin/sh -c "echo 2 > /sys/module/hid_apple/parameters/fnmode"
     ExecStop=/bin/sh -c "echo 1 > /sys/module/hid_apple/parameters/fnmode"
     RemainAfterExit=yes
    [Install]
     WantedBy=multi-user.target
    
  2. अपने नए फ़ाइल को पढ़ने के लिए SystemD को पुनः लोड करें

    systemctl --system daemon-reload

  3. SystemD सेवा शुरू करें।

    systemctl start mac-keyboard.service

  4. बूट पर शुरू करने के लिए सेवा सक्षम करें।

    systemctl enable mac-keyboard.service

संदर्भ: https://www.dalemacartney.com/2013/06/14/changing-the-default-function-key-behaviour-in-fedora/


0
sudo add-apt-repository ppa:daniel.pavel/solaar
sudo apt-get update
sudo apt-get install solaar
solaar

मैक कीबोर्ड के साथ आपको एक रेडियो बटन मिलेगा toggle fn

http://i.stack.imgur.com/9omc6.png

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