External keyboard: cannot use f1,f2 etc. keys without pressing fn key

keybindingskeyboard

I am using mba with high sierra and an external keyboard JETech 2156. The problem is I do not want to use fn key, for example F8 key has play or pause option. I have to press fn+f8 to pause or play. I simply want to press f8 rather than pressing fn key every time.

In the keyboard settings the box next to use f1, f2 as std function keys is unchecked. It does not matter if this box is checked or unchecked. In modifier keys I've selected the JETech 2156.

Best Answer

Unfortunately trying to fix this problem is as simple as checking a box on macOS. It is simply not something that macOS is capable of modifying—at least without third-party apps.

On a very simple level, keyboard work by sending "keystrokes" to the operating system that they are connected to. It is the job of the operating system to interpret the meaning of those keystrokes, which is generally does accurately.

The way the keyboard that you linked is designed is that it sends out the "special" keystrokes by default. For example, instead of sending out the F10 keystroke, it send out a "mute" keystroke. The OS interprets this keystoke and carries out the respective action.

If you wanted that button to send the actual F10 keystroke, the only way you can do it is by pressing Fn on the keyboard and then that button. Unless there is a specific setting that can be configured on the keyboard itself, there is no way of changing the keystroke that is sent out, and it looks like the keyboard does not support this useful feature.

So there is no way to change the actual keystrokes that are sent because the keyboard stubbornly doesn't want to send them. However, you can trick the keyboard. You can tell macOS to interpret the keystroke as something else—for example, you can tell macOS that, if it receives the "mute" command from that keyboard, it should interpret that as the F10 key. This is possible through the amazing little Karabiner Elements utility.

After installing Karabiner, open Karabiner EventViewer. Press the key that you want to change (for example the mute button). Click on the button that appears on the top right which says "Add mute to Karabiner-Elements." Then, change the action to F10. Ensure that the device at the top that is selected is your external keyboard and not "All Devices" because you don't want F10 to be triggered every time you use your Mac's keyboard to mute.

Note: one potential caveat: there are some keys that do not send a keystroke to the OS and thus can't be remapped. One example is the Fn key on external keyboards. Apart from those exceptions (to my knowledge only the Fn key), you should be able to remap just about any other key.