Is it possible to swap the control and fn keys on mac m2?

I’m using gnome on a 13 inch macbook air m2, asahi fedora 41.

Thanks …

I am not on Asahi, but using Fedora Silverblue and Workstation (so GNOME) on Macs (either bare-metal or VMs). What I did is swap Ctrl with Cmd, in order to have the Mac-specific Cmd+<Letter> key combinations mapped to Ctrl+<Letter>, as used under Linux:

So instead of moving Ctrl to the far left of the keyboard, in order to mimic the non-Mac keyboards, I have made Cmd to work as Ctr and Ctrl as Meta, in order to work similar to Macs. Can’t fight muscle memory.

Switching the fn key doesn’t seem to be an option in GNOME Tweaks though. You might find an xkb identification for the fn key, in which case the dconf database would probably have to be edited directly. It might be a more difficult endeavor though.

1 Like

The Fn key is mapped at the driver level, because for legacy reasons obsolete window systems (X11) cannot handle it. For this reason, it cannot be controlled by the desktop environment currently. My plan is to move Fn handling to Wayland/XKB as a modifier, which will allow such tweaks to be made at the desktop environment level, but we’re not there yet.

While this is a driver-managed hack, the way to swap them is with the hid-apple.swap_fn_leftctrl=1 kernel parameter.

4 Likes