skip to content
Ruban Selvarajah

Lenovo took my function keys hostage but I got them back!

/ 2 min read

So the great minds behind Lenovo made the design decision to set the function keys in the Yoga 910 model default to media functions.

Not exactly an uncommon idea at the time.

But then they removed the option to reverse it from bios in favour of their bloated desktop app.

And then removed it from their desktop app.

And then promised to share a special bios to customers who use Linux as OS, back in 2016.

If you can’t tell from this sequence of events, that option is never getting backported. I’m the idiot for expecting it in the first place. But there’s a lesson to be learned here though. Don’t get a Lenovo laptop unless it’s a Thinkpad.

Rant over.

Now luckily thanks to a certain Oleg Keri who is currently my favourite person in the world as I’m typing this, I found out that I can override this in the Linux kernel. Just follow the steps below:

Let’s 🚀

Solution for time-travelers

Solution for poor saps using this device in 2023

1. Check your linux kernel version

Terminal window
uname -r
# Returns `5.19.0-50-generic` for me

If you’re on 4.17 or lower, check out Oleg’s repo.

2. Search for the relevant flag

Terminal window
sudo find /sys -name "fn_lock"

You should see something like this: /sys/devices/pci0000:00/0000:00:1f.0/PNP0C09:00/VPC2004:00/fn_lock

3. Toggle the flag

Terminal window
sudo cat /sys/devices/pci0000:00/0000:00:1f.0/PNP0C09:00/VPC2004:00/fn_lock
# It should return 1, let's make it 0
sudo bash -c "echo 0 > /sys/devices/pci0000:00/0000:00:1f.0/PNP0C09:00/VPC2004:00/fn_lock"

That’s it! No need for a reboot or anything. My function keys have been reversed and I can finally open Dev Tools without holding the fn key. Huzzah!