Disabling the fn key in Wayland?

https://piefed.blahaj.zone/post/340904

Disabling the fn key in Wayland?

Hi! So, I have a 2014 MacBook Pro with the fn key permanently taped down. Which is fine when running macOS, as the fn key is disabled in system set…

You are the real life LongtimeUser4.

xkcd.com/1172/

Unfortunately I can’t help more than that.

Edit: can you give the output of lsmod? I wonder if a hacked linux keyboard driver could help? I’m happy to give it a try if your interested in testing it.

Workflow

xkcd

Haha, I even use Emacs too. :)

It’s a pretty long output. Maybe hid_apple or mac_hid? But I’m unsure what most of those are, hence why I included them all, sorry about that.

bin.infini

Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.

bin.infini
I’ll do a little research into both and try work out if there is anything that could be done. I can’t promise anything in terms of promptness, this is a learning experience for me as well. So hopefully someone else has an answer for you :)
All good now! Thank you so much though, I appreciate the attention. c:

The firmware might be hijacking the fn key. If you use one of the keycode-reporting tools, does it report the fn key? and what is fn+enter or fn+backspace being reported as? if you’re not seeing the fn key, or if say fn+enter is reported as a singular key instead of two keys, maybe you could bind that “key” to enter?

If the Mac settings panel has an option to lock the F-keys to either F1-F12 or the keybinds, that option may be stored in the firmware, so for those keys simply reversing it in firmware may be enough.

With the fn key taped down, I’m sadly unable to do fn+enter or fn+backspace. However, fn never shows up with sudo keyd monitor, sudo evtest, or xev. I’ve just tried setting fn to insert (enter) and delete (backspace) via keyd, but no luck there either. :c

Seems like the fn key is intercepted by the firmware then, that sucks. I’m repeating the same question differently just to ensure we’re on the same page:

If I understood correctly, your fn key is constantly “active”, making any key with an fn-modifier act as a different key, and that is why forexample the enter-button won’t be… well, enter? but if it enter acts as a different key, i.e. pressing enter gives a totally different keycode, can’t you rebind whatever keycode that turns into, into enter?

I did a super surface-level quick search, it seems like the older macbooks have had some firmware reverse engineering done. Might be some options there. Also, your issue may be a common case of a specific board trace needing new solder, which might not be too hard. Maybe that guy who does apple repairs/right to repair has something on this, or a community who may know. Louis Rossman something? can’t recall.

Also, you may’ve mentioned in your original post, but are there other keys that could work? doesn’t mac have that extra “option” key? i think i read that ctrl+fn key could be switched on a firmware level, if that means the ctrl key is then intercepted by the firmware I guess it won’t add much, but if all else fails, could be worth checking if it acts differently.

good luck, I don’t have any more ideas but I’m rooting for you, would be interesting to hear if you find a solution.

At first, I thought it might be some hardware issue like that. But it really is macOS shutting itself down after 500 ms of inactivity. Some kind of trigger related to the liquid contact indicator is my best guess.

Back when I switched to Linux, I still hadn’t taped down the fn key. That’s how I realized my laptop was actually fine, even without any key taped down. It runs better on Arch than on Mojave, too. If I ended up taping down the fn key, it’s only because I still need to use macOS from time to time.

But that’s okay, I can live without the fn key! And now that I can use my internal keyboard while running Linux, it’s gonna be all good. Thanks. c:

FN keys are usually handled at a firmware, sometimes BIOS or driver level. This makes them completely inaccessible to keyboard remappers (they have no idea when it is pressed), which is why none of them can do this.

This Stackexchange answer looks like it should contain the information you need, but I don’t have a 2014 MacBook to test it.

On an Apple Keyboard under Linux, how do I make the Function keys work without the fn modifier key?

I use an Apple wired keyboard on Linux. By default the function keys (F1, F2, F3, etc) require the fn key to be pressed for them to work. Without the fn key, these keys control the features like Sc...

Unix & Linux Stack Exchange

Oh my gosh! It worked! It totally worked! You’re awesome! Thank you so, so much!

To disable the fn key temporarily:
echo 0 | sudo tee /sys/module/hid_apple/parameters/fnmode

To disable the fn key permanently:
echo options hid_apple fnmode=0 | sudo tee -a /etc/modprobe.d/hid_apple.conf

And then regenerate the initramfs. If you’re using Arch like me, it’s:
sudo mkinitcpio -P

Being once again able to use my laptop while resting my back will make life much better.

Thank you to infinity and beyond! Blåhaj bless you. <3

You’re welcome, glad I could help :)
You really did! Thank you again. c:

Just curious, since the issue doesn’t exist on Linux, what would happen if you outright disabled the internal keyboard on Linux and use an external keyboard?

Or possibly, program a microcontroller board to send an obscure device input in a loop to your computer?

Using an external keyboard does work, even without disabling the internal one, but the goal really was to be able to use my laptop as a laptop again. c: