i'm running Ubuntu 16.04 LTS and want to use an apple keyboard (wired). No i'm facing some problems whith making my custom settings permanent. I'm using the 'English internationl, AltGr dead keys' layout.

The keyboard has some keys swapped and i set the settings manually in the /sys/module/hid_apple/parameters/ folder. I set fnmode to 2 , iso_layout to 0 and swap_opt_cmd to 1. After this everything works like intended. But after rebooting the settings are back to the default. I have to reset everything manually after each reboot.

For now i wrote a little shell script which would do it but that's not the best way i think.

How can i make these settings persistent?


2 Answers 2


I had a similar issue with a Varmilo VA109M Keyboard (for some reason, it registers as an Apple keyboard).

I'm running Ubuntu 20.04, and everything worked after doing these steps from this guide:

  1. Run the following command to append the configuration line to the file /etc/modprobe.d/hid_apple.conf, creating it if necessary:

    $ echo options hid_apple fnmode=0 | sudo tee -a /etc/modprobe.d/hid_apple.conf
  2. Trigger copying the configuration into the initramfs boot file.

    $ sudo update-initramfs -u -k all
  3. Reboot

    $ sudo reboot

You may need to echo different options into your /etc/modprobe.d/hid_apple.conf file to set up your keyboard to your liking.

  • Worked like a charm thx!
    – glades
    Oct 17, 2023 at 5:43

It appears that you can create /etc/modprobe.d/hid_apple.conf and add the entries you need fixing in there, such as,

options hid_apple fnmode=2

NB: This assumes the hid_apple module is already being loaded.

  • 1
    That did only work for logout and login again. After rebooting settings have been reset and i have to reload the module manually via modprobe ... which needs a keyboard to unload and reload it. Or another script ...
    – Ian
    Nov 29, 2017 at 15:24
  • After the reboot, does /etc/modprobe.d/hid_apple.conf still exist, and does it still have that line in it? Nov 29, 2017 at 21:03
  • It is still there.. Do i have to enable loading in any way?
    – Ian
    Dec 3, 2017 at 11:14
  • 3
    I found it... I had to add hid_apple to /etc/modules. After doing this the correct settings have been set. Thanks!
    – Ian
    Dec 3, 2017 at 11:48
  • Same thing on Arch Linux. Editing /etcf/modprobe.d/hid_apple.conf and then running mkinitcpio -p linux did the trick here.
    – Alexander
    Feb 11, 2021 at 22:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .