I'm using Apple Wireless keyboard and I'm slightly disappointed that Fn key and Ctrl key have that order. It's not convenient for me. How can I easily swap them?
8 Answers
Windows:
It can be done using SharpKeys 2.1.1:
SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. Included in the application is a list of common keyboard keys and a Type Key feature to automatically recognize most keyboard keys.
What you can do:
Map an entire key to any other key - e.g. you could remap Caps Lock to a Shift key
What you can't do:
Allow you to swap two keys with each other - e.g. you can’t have Q and Z swap places because the remapping code would get confused
Mac OS X
It can be done using DoubleCommand:
DoubleCommand is software for Mac OS X (a kernel extension) that lets you remap keys, in other words change the way your keyboard works. Often used to make a PC keyboard more comfortable with a Mac, swapping the Alt (Option) and Windows (Command or Apple) keys, since they are in swapped positions on Mac and PC keyboards. DoubleCommand is a quick and easy way to fix this if you use a PC keyboard with your Mac.
Related reading:
I've found the MacBook Pro Keyboard - How to Swap / Remap Keys? to contain useful information on this subject.
Alas, this most probably won't work. With the exception of exchanging the bluetooth keyboard's firmware or rewire the harddware buttons.
Reason: The Fn key is a modifier for the generated scancodes. This key is a modifier at the hardware level. A fn keypress cannot be seen even (using 'xev' on my Apple bluetooth keyboard under linux)
EDIT: A quick test shows it might be possible (using showkey on a real tty):
Fn has keycode 464
Ctrl has keycode 29
- 933
Under Windows, installation of the following driver allows to easily swap Ctrl and Fn.
https://github.com/samartzidis/WinAppleKey
In addition to that, cmd/win and alt can be swapped too and some Fn+Key combinations from the Mac layout are installed:
- Ctrl -> Fn (configurable at installation)
- Fn -> Ctrl (configurable at installation)
- Left/Right Alt -> Left/Right Windows (configurable at installation)
- Left/Right Windows -> Left/Right Alt (configurable at installation)
- Eject -> Delete
- Fn + Backspace -> Delete
- Fn + Enter -> Insert
- Fn + F3 -> (App) My Computer
- Fn + F4 -> (App) Calculator
- Fn + F5 -> Pause/Break
- Fn + F6 -> Print Screen
- Fn + F7 -> previous track
- Fn + F8 -> play/pause
- Fn + F9 -> next track
- Fn + F10 -> mute
- Fn + F11 -> volume down
- Fn + F12 -> volume up
- Fn + Up -> Page Up
- Fn + Down -> Page Down
- Fn + Left -> Home
- Fn + Right -> End
For versions up to (and including) 10.11, you can swap the keys with Karabiner (formerly KeyRemap4MacBook), while DoubleCommand can only turn your fn key into a control key.
For versions 10.12+, you'll want to use Karabiner-Elements, a complete rewrite of Karabiner, that is still catching up to the function available in Karabiner. The features that it supports are still in flux.
- 3,449
When you are using Linux I think it should be possible, too. At least when you have access to your system and you can recompile your kernel. Check this out Linux: Apple Wireless A1314 Fn key not registered, looks like software bug.
(Addition to Zuuls answer)
Linux
I have tried modifying the kernel module for Apple Keyboards here . If you have Linux kernel version 3.13 (or close), it should be easy to load it.
I have no experience writing kernel modules, so some of the code may not work as expected. As far as I know, it works on my keyboard :)
- 201
I have built a little open source project for this: Bluetooth HID Hub. It runs on Raspberry Pi Zero W (~$10/£10).
It is similar to RaspiKey, but:
- Supports not only a keyboard, but a mouse as well, both wired or wireless
- Does not require wire connection to your computer
- Supports connection to multiple computers (work on 2+ machines with the same keyboard
- Python based, so really easy to extend with your custom remappings or any other device specific logic
- 1
Here is the tool that can help you sharpkeys for fn and control, and for other short cuts you can use power toys. here is a video on how to do it : youtube: fn remap
- 101