วิธีสลับการใช้ปุ่มฟังก์ชั่น "fn" บน Apple Keyboard ใน Linux


43

ฉันมีแป้นพิมพ์แอปเปิ้ลเพรียวบาง (USB) และหากฉันต้องการใช้แป้นฟังก์ชันอย่างใดอย่างหนึ่งตามที่เป็นอยู่ฉันต้องกดแป้น "fn" ก่อน มิฉะนั้นจะพยายามใช้งานฟังก์ชั่นอื่น ๆ ของปุ่มเช่นเพิ่มหรือลดความเข้มของหน้าจอเปลี่ยนระดับเสียง / ปิดเสียง ฯลฯ ...

และปุ่ม fn นั้นอยู่ในตำแหน่งของปุ่ม "insert" สำหรับแป้นพิมพ์ทั่วไป ฉันจะแก้ไขทั้งหมดได้อย่างไร

ฉันชอบแป้นพิมพ์นี้มากเพราะทำให้การพิมพ์ของฉันง่ายขึ้นและเงียบขึ้นด้วย แต่การแมปที่แตกต่างกันบางครั้งฉันก็ทำผิด

ขอบคุณ :-)

คำตอบ:


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

หรือในกรณีที่มีปัญหาการอนุญาต:

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

นี่จะเป็นการป้องกันไม่ให้คุณต้องรีบูท การเพิ่มตัวเลือกเป็นความคิดที่ดีดังนั้นการเปลี่ยนแปลงจึงยังคงมีอยู่ผ่านการรีบูต

  • 0 = คีย์ Fn ถูกปิดใช้งาน
  • 1 = ปุ่ม Fn ที่กดตามค่าเริ่มต้น
  • 2 = ปุ่ม Fn ปล่อยตามค่าเริ่มต้น

จาก/drivers/hid/hid-apple.c บรรทัดที่ 42 :

โหมดของปุ่ม fn บนแป้นพิมพ์ของ Apple (0 = ปิดใช้งาน, [1] = fkeyslast, 2 = fkeysfirst)


1
ดูเหมือนว่าฉันไม่ได้ใช้ไดรเวอร์แอปเปิ้ลดังนั้นนี่ไม่ได้ผลสำหรับฉัน ฉันมีแป้นพิมพ์แอปเปิ้ลนอกแบรนด์ (Razor Black Widow)
Kieveli

1
@Kieveli เมื่อมีคนพูดว่าแป้นพิมพ์ apple พวกเขาไม่ได้หมายความว่ามันเป็นคนทั่วไปพวกเขามีความหมายเหมือนในฮาร์ดแวร์ของ Apple หากฮาร์ดแวร์ไม่ใช่แอปเปิ้ลคุณจะไม่ได้ใช้ไดรเวอร์ของแอปเปิ้ล คุณต้องหาไดรเวอร์ตัวแรกที่คุณจะได้รับ
DallaRosa

4
สำหรับ Ubuntu 14.04.3 คำตอบโดย @cynyr ไม่ทำงาน คุณได้รับ "ปฏิเสธสิทธิ์" ทำงานอยู่ที่นี่: echo 2 | sudo tee / sys / module / hid_apple / พารามิเตอร์ / fnmode
akikara

สำหรับปัญหาที่ได้รับอนุญาตให้ดู [ askubuntu.com/questions/103643/…
Diogo

35

คำตอบข้างต้นเกี่ยวกับตัวเลือกการตั้งค่า/etc/modprobe.dเป็นล้าสมัยเล็กน้อย โชคดีที่มีเอกสารรายละเอียดเกี่ยวกับการสนับสนุน Apple Keyboard :

  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. Reboot

ฉันขอแนะนำเป็นการส่วนตัว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' จะทำหน้าที่เป็นปุ่มพิเศษ (เล่น / หยุดชั่วคราว)

ขอบคุณ - ฉันได้เพิ่มวิธีนี้ในสคริปต์การตั้งค่า Linux Mint ที่github.com/duncan-bayne/mint-setup
Duncan Bayne

สิ่งที่คุณต้องทำก็คือเรียกใช้ในฐานะรูท (อย่างน้อยใน Fedora distro) echo 2 > /sys/module/hid_apple/parameters/fnmodeเพื่อให้ FN เป็นอุปกรณ์หลักและ Mac เป็นอุปกรณ์ควบคุมรอง โอ้ใช่!! ขอบคุณ wuputah !!
Ilia Rostovtsev

โบนัส: หากคุณต้องการให้ปุ่ม ~ ทำงานได้คุณควรตั้งค่า iso_layout = 0 hid_apple.conf ของฉันมีลักษณะเช่นนี้: options hid_apple fnmode = 2 iso_layout = 0
Thales Ceolin

5

จากที่นี่

เราจะสลับการทำงานของปุ่ม Fn ได้อย่างไร

แก้ไข /etc/modprobe.d/options เป็นครั้งแรก

sudo nano /etc/modprobe.d/options

และตรวจสอบให้แน่ใจว่ามันมีสาย

ตัวเลือก hid pb_fnmode = 2

จากนั้นบันทึกและออก สุดท้ายเราต้องอัพเดต ramfs:

sudo update-initramfs -u -v -k uname -r

จากนั้นเพียงรีบูต!


1

สิ่งนี้ใช้ได้กับฉันในFedora 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

ด้วยแป้นพิมพ์ mac คุณจะได้รับปุ่มตัวเลือก toggle fn

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.