Ubuntu – How to change Function (Fn) Key behavior on wireless Logitech keyboard


I do have a wireless Logitech K750 keyboard (silver Mac version) connected to a Lenovo ThinkPad (via the unifying USB receiver, together with a wireless Logitech mouse M705) and currently running Ubuntu 12.04.

By default the F-keys are mapped as multimedia/function keys, e.g. Play /Pause. As I don't use them very often, I want the F-keys to behave like the "real" F-keys (F1F12). How can I do that?

I know there is an option in the BIOS settings, but this only toggles the built-in keyboard of the notebook, not on my wireless keyboard.

I know there is a way to change this for the Apple wireless keyboard (AppleKeyboard#Change_Function_Key_behavior), but there is no "parameters" directory in /sys/module/hid_logitech_dj/.

Any ideas? Or is there maybe a way to do this in a later Ubuntu version (13.04)?


lsusb -d 046d: shows
Bus 002 Device 005: ID 046d:c52b Logitech, Inc. Unifying Receiver

Thanks a lot for your help Lekensteyn. Finally Solaar works just fine. In the "Known Issues" of Solaar it says that it does not work with the Nano Receiver. But I have one and it works just fine. Just don't forget to read the installation instructions and run the rules.d/install.sh script. It also recognized my M705 Mouse.

Best Answer

Solaar is a graphical utility that has the ability to configure the Fn key functionality on newer devices:

Solaar screenshot with Fn function swap configuration

Since Ubuntu 15.04 (Vivid), Solaar can be installed from the repositories (sudo apt-get install solaar). After installation, you can search for Solaar in the applications menu and start it from there.

A command line interface is also available. Example usage:

$ solaar show
  2: Wireless Illuminated Keyboard K800
$ solaar config 2
fn-swap = False
$ solaar config 2 fn-swap on
fn-swap = True

Note that these settings are not persistent, you will loose it after reboot. This may change in future versions of Solaar.

I have previously created the ltunify tool which is a Unifying tool that is able to communicate in the older HID++ 1.0 protocol. Until the next version of Solaar is released (current version is 0.8.7), you can use ltunify to toggle the Fn key on an older device such as the K800 keyboard.

Installation instructions (taken from https://askubuntu.com/a/114089/6969):

sudo apt-get install git gcc
git clone https://git.lekensteyn.nl/ltunify.git -b fkeyswap
cd ltunify
make install-home

The command ltunify fkeyswap shows the current status:

$ sudo ltunify fkeyswap 
F key functions are not swapped

To swap the functionality, run ltunify fkeyswap on:

$ sudo ltunify fkeyswap on
F key functions are now swapped

There is also an off action:

$ sudo ltunify fkeyswap off
F key functions are now normal

Please leave a comment if it does not work so it can be fixed. The above functionality uses undocumented hardware registers.