K780 doesn't have a hard switch to lock the function keys. Logitech provides a utility to do this on Windows and iOS but not on Linux. You need to manually remap the keys.
Below works for Arch Linux, other systemd based distros should be about the same.
There's a problem with the F1-F3 keys as they're hardware specific and don't emit an event if pressed on their own and therefore can't be remapped. I might be wrong as I haven't spend any time on researching that.
Edit: about htat, see @tangruize comments below https://gist.github.com/andrejcremoznik/e56234138305226abd41fe4d1d2561a3#gistcomment-3390489
# Logitech K780 map:
# Fn + F4/F5/F6 ==> F4/F5/F6
evdev:input:b0003v046Dp405B*
KEYBOARD_KEY_c0223=f4
KEYBOARD_KEY_70065=f5
KEYBOARD_KEY_c0224=f6
sudo systemd-hwdb update
sudo udevadm trigger
Make sure the ConditionNeedsUpdate=/etc
is commented out in /usr/lib/systemd/system/systemd-hwdb-update.service
. If it isn't create an override:
sudo systemctl edit --full systemd-hwdb-update.service
Comment out:
#ConditionNeedsUpdate=/etc
This creates a replacement systemd unit file in /etc/systemd/system/systemd-hwdb-update.service
. If some update breaks anything related to this, remove it and recreate with systemctl edit
like before.
Awesome gist! How did you convert the scancodes to keyboards_key? I read the Arch wiki links you posted but couldn't figure out how to do it.
I actually want to map Fn + F4 to Fn - F12 to F4 to F12.