31

There is a software for Windows called "Logitech Options" which can switch media keys to function keys, but this setting is not remembered in keyboard. There are similar cases with other logitech keyboards already with solutions:

But neither seems to work for K380. Has anyone figured out solution for this keyboard? It probably needs capturing communication between keyboard and Windows software, but it's quite complicated.

Jerguš
  • 751
  • 1
  • 7
  • 15
  • Have you tried looking at the BIOS/UEFI settings? There is usually an entry called "Fn key mode" which determines the default behaviour of Fn keys. – Ashhar Hasan Dec 12 '15 at 07:14
  • 1
    No, this function is only for internal keyboard. Required solution is like https://github.com/milgner/k290-fnkeyctl Logitech has software for windows for FN modifications, but we need to backport this to linux. – MᴀʀɪᴜsᴢS Dec 12 '15 at 21:16
  • @MariuzS Thanks for this piece of knowledge. **;)** – Ashhar Hasan Dec 13 '15 at 04:19
  • I was able to do this by using Solaar (https://github.com/pwr/Solaar). Your device does not seem to be on the list of supported devices (https://github.com/pwr/Solaar/blob/master/docs/devices.md), though you might still want to give it a try. – zenhaeus Dec 14 '15 at 19:07
  • Solaar is not working for me – MᴀʀɪᴜsᴢS Dec 15 '15 at 15:30
  • Solaar is not for bluetooth devices but for Logitech Unifying Receiver – Jerguš Dec 23 '15 at 09:33

5 Answers5

35

I created GitHub repository for k380 configuration program.

https://github.com/jergusg/k380-function-keys-conf

I did the same steps as Mario to get sequence for k380. The code is same as Mario's, but with the sequence for k380 keyboard and k380 device ID. It outputs write: 0 were written instead of 7 on my computer, but it works anyway.

The sequences are:

const char k380_seq_fkeys_on[]  = {0x10, 0xff, 0x0b, 0x1e, 0x00, 0x00, 0x00};
const char k380_seq_fkeys_off[] = {0x10, 0xff, 0x0b, 0x1e, 0x01, 0x00, 0x00};
Jerguš
  • 751
  • 1
  • 7
  • 15
11

I like Jerguš's answer, but I don't want to compile c code.

Here is the equivalent one-line bash

echo -ne "\x10\xff\x0b\x1e\x00\x00\x00" | sudo tee /dev/[the device]

Even better, this can be automatized!

Create a file /etc/udev/rules.d/70-logi-k380.rules with the folloing line

ACTION=="add", SUBSYSTEM=="hidraw", KERNEL=="hidraw*", SUBSYSTEMS=="hid", KERNELS=="*:046D:B342.*", RUN+="/bin/bash -c \"echo -ne '\x10\xff\x0b\x1e\x00\x00\x00' > /dev/%k\""

Your keyboard will be fn-locked automatically.

Tianren Liu
  • 611
  • 5
  • 14
9

Just an update, Logitech Options software can natively support the feature, Use F1 - F12 as standard function keys. See the picture below.

enter image description here

CHANist
  • 199
  • 1
  • 2
  • System Requirements Supported Logitech device Windows® 10, Windows 8, and Windows 7 macOS™ 10.11 or above Logitech Flow requires computers that can connect to each other over a local network. – Jerguš Jul 13 '20 at 11:47
  • I installed this on a windows VM with an usb bluetooth passthrough, then selected the option to use f1-f12 as standard function keys, but this only works on the selected OS. If I switch back to my ubuntu profile it wont respect the selection – Guerlando OCs Mar 25 '21 at 19:49
  • Thanks @CHANist it works well. Link - https://www.logitech.com/en-us/software/options.html – Alexis Jul 15 '22 at 09:01
1

I have exactly the same problem and also found the article about K810, which is:

http://www.trial-n-error.de/posts/2012/12/31/logitech-k810-keyboard-configurator/

I have already tried something similar to what Mario did with K810, but I am yet to find the proper sequence that needs to be sent to K380. In fact, it's something I don't quite understand from the article. I have already sent Mario a message asking how he figured out the exact sequence, but I don't have any reply yet.

In case someone else tries to figure it out, this seems to be the keyboard ID, at least in my case:

#define HID_DEVICE_ID_K380      (__s16)0xb342

vendor ID seems to be the same:

#define HID_VENDOR_ID_LOGITECH  (__u32)0x046d
mdm
  • 11
  • 1
  • 1
  • 1
    I did procedure from the article and found the sequence which is `0x10, 0xff, 0x0b, 0x1e, 0x00, 0x00, 0x00`. Device ID is as you wrote. I works for me. – Jerguš Dec 23 '15 at 09:30
  • Awesome, it works for me, too! Thanks a lot!!! – mdm Dec 23 '15 at 19:56
  • echo -ne "\x10\xff\x0b\x1e\x00\x00\x00" | sudo tee /dev/[the device], it works on my keyboard, thank you so much. – Claire Duong Jun 11 '22 at 16:45
0

I've just bought Logi K380 and installed the Solaar app. It seems that it is being supported by Solaar app now. (Kubuntu 22.04)

A. Vehbi
  • 1
  • 1