Hi I have a problem with my new USB Lenovo keyboard, I can't (don't know how) switch Fn keys in Linux, on windows it was very easy.

But I don't know what I can do on Linux to switch Fn keys (or disable), do you know any solution? I need standard functions of F1 through F12...

  • 6
    Try pressing fn + Esc. – TheWanderer Apr 18 '15 at 8:13
  • Do you mean the key with the label Fn, or the 12 keys with 12 different labels Fn with n being one of 1 to 12? What exactly do you want the keys to do? – Volker Siegel Apr 18 '15 at 13:05
  • @Zacharee1 I tried, it doesnt work – Tomasz Cy-man Apr 18 '15 at 15:36
  • @Volker Siegel I mean 12 keys (additional functionality of F1-11), now when I press F1 then i mute sound, i have to press Fn key and F1... I want to primary function of F1 was F1 not mute, F2 not volume down, etc... And the question is how to switch that functionality (as an example i gave you link with solution for windows) or disable all Fn functions (mute, volume down, volume up...) – Tomasz Cy-man Apr 18 '15 at 15:36
  • So you want to have to press fn before you press F1-12 for it to function as a shortcut key? – TheWanderer Apr 18 '15 at 15:51

enter image description here

this is the best solution what i found ;-)

  • You will be happy to know that there is someone else with the exact same solution out there :D Thanks for the pic, I was starting to think of which small heavy object I could use to keep this key pressed. All that for a keyboard of very average quality... – Adversus Sep 30 '15 at 12:11
  • 9
    Did you do the FN+ESC trick? – Natim Dec 21 '15 at 21:13
  • 2
    FN+ESC will only work directly on the laptop not this keyboard, the keyboard miss also on/off switch I think the developer of this keyboard was fool. – maytham-ɯɐɥʇʎɐɯ Jan 8 '16 at 20:14
  • 2
    "Smart" engineers from lenovo broke that solution. Now the Fn key is between control and windows keys on the left of space bar. A paper blocker or heavy object are definitely a no go at that place. Actually putting the Fn key there is really awkward because it's very easy to mistake it with Windows key. I'm considering buying another (non lenovo) keyboard :-( – kriss Aug 17 '17 at 13:51
  • solaar installed via pip worked for me with the "K400 Plus" model. example: solaar config 1 fn-swap off – erjoalgo Jul 7 '20 at 8:28

I found a software solution.

clone the following program from github:

git clone https://github.com/lentinj/tp-compact-keyboard.git

compile to following program:

cd tp-compact-keyboard/tp-compact-usb-keyboard
sudo ./tp-compact-usb-keyboard /dev/hidraw1

Maybe some errors are shown when you execute the program.

This program sent 2 keystrokes to the keyboard (0x05 and 0x01).

i think, you can't press them physically:


They are mapped to special keys.

this is only a temporary solution - after a reboot this settings are gone.

maybe you create a cronjob to fix it permanently:


  • PS: Model-No: SK-8821 Bus 002 Device 002: ID 17ef:6018 Lenovo – MaCXyLo May 6 '16 at 17:02
  • same keyboard, also works for me! +1 :) – supervacuo May 19 '16 at 9:09
  • Worked for Lenovo SK-8821 in Xubuntu 16.04 – fikipollo Aug 21 '20 at 8:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.