Pada Keyboard Apple di Linux, bagaimana cara membuat tombol Fungsi berfungsi tanpa tombol pengubah fn?

18

Saya menggunakan keyboard kabel Apple di Linux. Secara default tombol fungsi (F1, F2, F3, dll) memerlukan fntombol yang ditekan agar berfungsi. Tanpa fntombol, tombol-tombol ini mengontrol fitur-fitur seperti Kecerahan Layar, Volume, dan Kontrol Track Musik.

Apakah ada cara untuk menukar ini, sehingga tombol Fungsi tidak memerlukan fnpengubah, tetapi fungsi lain (Brightness dll) lakukan?

ryanlerch
sumber

Jawaban:

23

Anda perlu menambahkan 0atau 2masuk /sys/module/hid_apple/parameters/fnmode.

yaitu:

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

Tampaknya ada beberapa kebingungan mengenai apa perbedaan antara kedua nilai itu. Mengutip dokumentasi Ubuntu :

  1. 0 = dinonaktifkan: Nonaktifkan kunci 'fn'. Menekan 'fn' + 'F8' akan berperilaku seperti Anda hanya menekan 'F8'
  2. 1 = fkeyslast: Tombol fungsi digunakan sebagai kunci terakhir. Menekan tombol 'F8' akan bertindak sebagai kunci khusus. Menekan 'fn' + 'F8' akan berperilaku seperti F8.
  3. 2 = fkeysfirst: Tombol fungsi digunakan sebagai kunci pertama. Menekan tombol 'F8' akan berperilaku seperti F8. Menekan 'fn' + 'F8' akan bertindak sebagai tombol khusus (putar / jeda).

Perhatikan bahwa ini juga berfungsi untuk saya di Fedora.

meraba-raba
sumber
itu fnmode = tanpa garis bawah
Yauhen Yakimovich
Terima kasih banyak!!!
Shivam
3

Saya tahu bahwa cukup mudah untuk mengubah perilaku pengubah ini, karena root mengubah nilai dalam file /sys/module/hid_apple/parameters/fnmodedari 1menjadi 0. Sebagai contoh:

# echo 0> / sys / module / hid_apple / parameter / fnmode

Perhatikan bahwa di beberapa versi linux yang lebih lama, file ini terletak di /sys/module/apple/parameters/fnmode. Juga, perubahan ini tidak akan bertahan ketika Anda reboot.

ryanlerch
sumber
2

Bagi yang mendapat akses ditolak dan tidak bisa begitu saja awalan "sudo" gunakan:

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

Ubah ke 2atau apa pun lalu Ctrl+Xsimpan.

Marc
sumber
cara yang lebih baik adalah dengan echo 2| sudo tee /sys/module/hid_apple/parameters/fnmode, tetapi semua solusi ini bersifat sementara .... Salah satu cara untuk membuat gigih (pada systemdlingkungan seperti Fedora misalnya): echo "w /sys/module/hid_apple/parameters/fnmode - - - - 2" | sudo tee /etc/tmpfiles.d/rev_fn_key.conf
nhed
2

Bagi siapa pun yang menemukan thread ini menggunakan salah satu MacBook Pro baru (2016 dan yang lebih baru) yang memerlukan driver applespi untuk membuat keyboard dan touchpad berfungsi, inilah cara membuat ini berfungsi, karena saya tidak dapat menemukan utas lain yang menjelaskan hal ini untuk Mac yang lebih baru.

Sejauh yang saya mengerti, driver secara efektif menggantikan peran modul hid_apple, sehingga file yang akan diedit sedikit berbeda.

Pertama, untuk memverifikasi bahwa Anda menggunakan driver applespi dan bukan driver hid_apple, periksa perintah mana (menggunakan terminal) yang mengembalikan sesuatu. Yang mana pun akan memberi tahu Anda driver mana yang sedang Anda gunakan:

# 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

Untuk menguji pengaturan sementara (pengaturan akan diatur ulang setelah reboot):

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

Untuk menerapkan perubahan secara permanen (tetap dengan reboot):

# 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

Untuk MacBook Pro lama menggunakan modul hid_apple, gunakan "hid_apple" daripada "applespi" dalam perintah.

Misha
sumber
1

Dalam diskusi yang lebih lama, solusi diberikan dengan parameter boot kernel yang mungkin lebih disukai (aplikasi seluruh sistem, modifikasi hanya satu baris /etc/default/grub, dll).

Hanya sesuai dengan solusi itu, fnmodediatur ke 2bukan 0. Aku hanya mencoba untuk mengatur hid_apple/parameters/fnmodeuntuk 2, dan memiliki efek yang diinginkan juga. Mungkin logika hanya `1 → "memerlukan Fnakses F1, F2, F3, ..." vs semua nilai-nilai lain?

RJVB
sumber
Hai RJVB, selamat datang di unix.SE. Saya telah mengedit jawaban Anda untuk meningkatkan format. Lihatlah sumbernya untuk mempelajari beberapa trik.
drs