Using multiple physical keyboards with different layouts

I have searched far and wide, and I can not figure out how to have different layouts per keyboard for the life of me!

I don’t understand why the System Settings don’t let you adjust keyboard options per device like with every other peripheral.

I have my laptop’s keyboard, a standard US layout, with some special function keys that handle brightness, volume etc. which can be toggled using the Fn Key. That all works well.

The problem comes when I plug in my GMK67 keyboard. It has no physical function keys, so I either have the number row, or the special function keys by holding Fn.
I would like my GMK67 to use regular F1-F12 keys, instead of the special ones when holding Fn.
Is there any way to do this that doesn’t require some wicked Linux wizardry?

Welcome to Manjaro! :smiling_face_with_three_hearts:

  1. Please read the information behind this link. It will help you to post necessary information.
  1. Please press the three dots below your post and then press the :pencil2:
  • If you give us information about your system, we can see what we’re talking about and make better suggestions.
  • You can do this by using inxi in a terminal or in console.
sudo inxi --admin --verbosity=8 --filter --no-host --width --repos
  • Personally identifiable information such as serial numbers and MAC addresses are filtered out by this command
  • Presenting the information in this way allows everyone to be familiar with the format and quickly find the items they need without missing anything.
  1. Copy the output from inxi (including the command) and paste it into your post.
  • To make it more readable, add 3 backticks ``` on an extra line before and after the pasted text.

Have you already :mag: for your problem in the forum ? (Wisdom lies in asking → listening → reading :wink: )

You could try this script here GitHub - MightyPork/autonumlock: Script watching for external USB keyboard and enabling numlock iff found.

Don’t be confused by the name, you can run any script after a new keyboard is detected. It might need some wizardry, though.

1 Like

I think this is a programmable firmware keyboard, so you can probably solve it either manjaro-side or keyboard-side. I have read about such keyboards but have no practical experience.

1 Like

If a GMK67 keyboard has 67 keys and no F1-F12 keys
and cannot be replaced by a keyboard with >75 keys that does have F1-F12 keys
I would suggest using a 12-key or 16-key keypad mapped to the function keys

2 Likes

If you’re using X11 then you can use setxkbmap -id $id $layout to set a layout per device.

The id can be found using xinput, the layout names are the same as the files in /usr/share/X11/xkb/symbols.

On the Linux side, if memory serves, you could remap scancodes to keycodes or copy and edit a layout.

It seems like @Teo is correct…so that would be the best way.

Macro Driver Software
Customized your keyboard key’s function as you want, and also can programable the CMK67 through the Macro Driver Software.

https://uk.whatgeek.com/products/zuoya-gmk67-gasket-triple-mode-gaming-keyboard-diy-kit

EDIT:

Forgot about input remap utilities:

https://wiki.archlinux.org/title/Input_remap_utilities