บน Apple Keyboard ภายใต้ Linux ฉันจะทำให้ปุ่มฟังก์ชั่นทำงานโดยไม่ต้องใช้ปุ่มตัวปรับเปลี่ยน fn ได้อย่างไร


20

ฉันใช้คีย์บอร์ดแบบมีสายของ Apple บน Linux โดยค่าเริ่มต้นปุ่มฟังก์ชั่น (F1, F2, F3, ฯลฯ ) fnจะต้องกดปุ่มเพื่อให้ปุ่มเหล่านั้นทำงาน โดยไม่ต้องfnคีย์คีย์เหล่านี้ควบคุมคุณสมบัติเช่นหน้าจอสว่าง, ปริมาณ, ควบคุมและติดตามเพลง

มีวิธีใดบ้างที่จะสลับสิ่งเหล่านี้รอบ ๆ ดังนั้นปุ่มฟังก์ชั่นจึงไม่ต้องการfnตัวดัดแปลง แต่ฟังก์ชั่นอื่น ๆ (ความสว่าง ฯลฯ ) ทำหน้าที่อะไร?

คำตอบ:


25

คุณจำเป็นต้องเพิ่ม0หรือเข้าไป2/sys/module/hid_apple/parameters/fnmode

เช่น:

echo 2 > /sys/module/hid_apple/parameters/fnmode

ดูเหมือนจะมีความสับสนเกี่ยวกับความแตกต่างระหว่างค่าสองค่านี้ การอ้างถึงเอกสารของ Ubuntu :

  1. 0 = ถูกปิดใช้งาน: ปิดใช้งานคีย์ 'fn' การกด 'fn' + 'F8' จะทำงานเหมือนคุณแค่กด 'F8'
  2. 1 = fkeyslast: ใช้ปุ่มฟังก์ชันเป็นคีย์สุดท้าย การกดปุ่ม 'F8' จะทำหน้าที่เป็นปุ่มพิเศษ การกด 'fn' + 'F8' จะทำตัวเหมือน F8
  3. 2 = fkeysfirst: ปุ่มฟังก์ชันใช้เป็นปุ่มแรก การกดปุ่ม 'F8' จะทำงานเหมือน F8 การกด 'fn' + 'F8' จะทำหน้าที่เป็นปุ่มพิเศษ (เล่น / หยุดชั่วคราว)

โปรดทราบว่าสิ่งนี้ใช้ได้กับฉันใน Fedora ด้วย


It's fnmode = ไม่มีขีดล่าง
Yauhen Yakimovich

ขอบคุณมาก!!!
Shivam

3

ฉันคิดว่ามันเป็นเรื่องง่ายสวยที่จะเปลี่ยนพฤติกรรมของตัวปรับแต่งนี้เป็นรากเปลี่ยนค่าในไฟล์/sys/module/hid_apple/parameters/fnmodeจากไป1 0ตัวอย่างเช่น:

# echo 0> / sys / module / hid_apple / พารามิเตอร์ / fnmode

/sys/module/apple/parameters/fnmodeโปรดทราบว่าในบางรุ่นเก่าของลินุกซ์ไฟล์นี้ตั้งอยู่ใน นอกจากนี้การเปลี่ยนแปลงนี้จะไม่คงอยู่เมื่อคุณรีบูท


3

สำหรับใครก็ตามที่สะดุดกับเธรดนี้โดยใช้หนึ่งในผู้เชี่ยวชาญด้าน MacBook รุ่นใหม่กว่า (2016 และใหม่กว่า) ซึ่งต้องการไดร์เวอร์แอปเปิ้ลเพียเพื่อทำให้คีย์บอร์ดและทัชแพดทำงานได้นี่เป็นวิธีการทำงานนี้ Mac ที่ใหม่กว่า

เท่าที่ฉันเข้าใจไดรเวอร์มีประสิทธิภาพแทนที่บทบาทของโมดูล hid_apple ดังนั้นไฟล์ที่จะแก้ไขแตกต่างกันเล็กน้อย

ก่อนอื่นเพื่อตรวจสอบว่าคุณใช้ไดรเวอร์ applespi ไม่ใช่ไดรเวอร์ hid_apple ให้ตรวจสอบว่าคำสั่งใดบ้างที่ใช้คำสั่งเหล่านี้ ไม่ว่าจะทำอะไรจะบอกคุณว่าคุณกำลังใช้ไดรเวอร์ใดอยู่:

# If this returns "applespi", you are using applespi
ls /sys/module | grep applespi

# If this returns "hid_apple", you are using hid_apple
ls /sys/module | grep hid_apple

หากต้องการทดสอบการตั้งค่าชั่วคราว (การตั้งค่าจะรีเซ็ตหลังจากรีบูต):

echo 2 | sudo tee -a /sys/module/applespi/parameters/fnmode

หากต้องการใช้การเปลี่ยนแปลงอย่างถาวร (คงอยู่กับการรีบูต):

# Add the option for the fn key
echo options applespi fnmode=2 | sudo tee -a /etc/modprobe.d/applespi.conf
# Update initramfs bootfile
sudo update-initramfs -u -k all
# Reboot to test (optional)
sudo reboot

สำหรับ MacBook Pros รุ่นเก่าที่ใช้โมดูล hid_apple ให้ใช้ "hid_apple" แทน "applespi" ในคำสั่ง


2

สำหรับผู้ที่ปฏิเสธการเข้าถึงและไม่สามารถใช้ "sudo" นำหน้าได้เลย:

sudo nano /sys/module/hid_apple/parameters/fnmode

เปลี่ยนเป็น2หรืออะไรก็ตามแล้วCtrl+Xบันทึก


วิธีที่ดีกว่าคือecho 2| sudo tee /sys/module/hid_apple/parameters/fnmodeแต่โซลูชันทั้งหมดเหล่านี้เป็นแบบชั่วคราว .... วิธีหนึ่งในการทำให้ถาวร ( systemdเช่นในสภาพแวดล้อมเช่น Fedora):echo "w /sys/module/hid_apple/parameters/fnmode - - - - 2" | sudo tee /etc/tmpfiles.d/rev_fn_key.conf
30915

1

ในการอภิปรายที่เก่ากว่าจะมีวิธีแก้ปัญหาด้วยพารามิเตอร์การบู๊ตของเคอร์เนลซึ่งอาจเป็นที่นิยม (แอพพลิเคชั่นทั้งระบบ, การแก้ไขเพียงบรรทัดใน/etc/default/grubฯลฯ )

เฉพาะตามวิธีการแก้ปัญหาที่fnmodeถูกตั้งค่าให้แทน2 0ฉันเพียงแค่พยายามที่จะตั้งhid_apple/parameters/fnmodeไป2และจะมีผลที่ต้องการมากเกินไป บางทีตรรกะเป็นเพียง `1 → "จำเป็นต้องใช้Fnในการเข้าถึงF1, F2, F3, ..." เมื่อเทียบกับค่าอื่น ๆ ทั้งหมดหรือไม่


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