Disabling the fn key in Wayland?
Disabling the fn key in Wayland?
You are the real life LongtimeUser4.
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.
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.
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.
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.
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...
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
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?