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.
I have just started reverse engineering the protocol used to control these keyboards since I got one today. Disappointed at the lack of support I decided to dig out my USB debugging hardware and get to work.
After less than an hour I have a proof of concept program working.
It is very very crude (as I say it's just a proof of concept) but it does work (for me at least).