I can't find the correct key assignment

Hello everyone.

I need help setting up a very specific key using https://keyboard.frame.work/. It’s the key located between Y (German) or Z (English) and the left Shift key in the ISO layout: the simple triangular arrow on the left and right (see the diagram at ISO-DE, ANSI-US - unser Keycap Guide bringt Klarheit!, the first image labeled “ISO-DE (TKL)”). Since the ANSI keyboard doesn’t have space for this key, I’d like to at least accommodate it on the macro pad (bottom row, second key from the left). However, I’m having trouble setting it up because I don’t know how. I’ve tried several keys, including the one with a pipe and backslash in the English ISO layout, but it’s acknowledged with ‘#’ by the German keyboard driver (Ubuntu 24.04 LTS).

Regards, Ralph

The same key that is on the German FWL16 keyboard, correct?
frame.work/products/keyboard-module?v=FRAKDW00A7

What layout is your OS keyboard set to?
What character a key produces depends on the layout you have set. As keyboards just send a set of codes for their keys, and the OS is what really decides what a key will produce in different languages and layouts. You will get whatever is in that location on the keymap set in your OS. If the layout you have set not have the key you want, then you will not get it.

The FWL16 keyboard ISO layout from the firmware.
github.com/FrameworkComputer/qmk_firmware/blob/v0.2.9/keyboards/framework/iso/keymaps/default/keymap.c

     *         ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
     * 14 keys │Esc  │Mut│vDn│vUp│Prv│Ply│Nxt│bDn│bUp│Scn│Air│Prt│App│ Del│
     *         ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
     * 14 keys │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Backsp│
     *         ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
     * 13 keys │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Entr│
     *         ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐   │
     * 14 keys │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │   │
     *         ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┤
     * 13 keys │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │  Shift  │
     *         ├────┼───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤
     *         │    │   │   │   │                   │   │   │    │↑  │    │
     * 11 keys │Ctrl│FN │GUI│Alt│                   │Alt│Ctl│ ←  ├───┤  → │
     *         │    │   │   │   │                   │   │   │    │  ↓│    │
     *         └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘
     * 79 total
     */
    [_BASE] = LAYOUT(
        KC_ESC,  KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_SCRN, KC_AIRP, KC_PSCR, KC_MSEL,  KC_DEL,
        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC,
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
        KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,     KC_RSFT,
        KC_LCTL, MO(_FN), KC_LGUI, KC_LALT,          KC_SPC,                    KC_RALT, KC_RCTL, KC_LEFT, KC_UP,   KC_DOWN, KC_RGHT

All ISO keyboards use the same firmware and will send the same keycode for that key.

NUBS aka NONUS_BACKSLASH: “Non-US \ and |” is what that key will send. github.com/qmk/qmk_firmware/blob/master/docs/keycodes_basic.md?plain=1#L96

If you don’t want to change the layout you have set in your OS to a layout which has the key you want in that location on it’s keymap, then you’ll have to use other methods to input the character. unicode-explorer.com/articles/how-to-type-unicode-characters-in-linux. You can put the unicode entry into a macro. Creating a custom layout within your OS just for your use is another option. I’ve looked at that in the past, but I don’t recall the details, where the config files are in the distro I use, etc.

Because I, the idiot I was, absolutely wanted the RGB ANSI keyboard because it simply looks cool, and under the mistaken assumption that the advertising claim “uses open-source firmware” would provide some kind of support. Now here I am, with little knowledge of programming, having read thousands of threads and tried to follow instructions, and every instruction, even if it’s often only 2-3 months old, runs into errors somewhere. Then I’ve tried several times to get help with these errors, and often only received question marks or instructions that sometimes didn’t work.

And as if that wasn’t enough, I’m apparently dyslexic with the English language; I’ve been trying to learn better English for years, to no avail. My native language is German, and I’m constantly being asked to post in English on forums, pointing out that I can translate everything with a translator, but the translations from English to German are often so incomprehensible and meaningless that the frustration grows ever greater.

Like now.

So, to answer your question (if the translator translated it correctly): yes, it’s the same key as on the German ISO keyboard. And yes, my Linux is set to German. Unfortunately, I can only use https://keyboard.frame.work/ with en-en or en-us layouts. So I have to set up macros in keyboard.frame.work. But I have just as little knowledge of that, and here, too, there’s only English help, which often makes little sense after the translation. My fear with all this is that I’ll accidentally distort the keyboard so that I can’t do anything anymore, just because I have to figure it out by trial and error.

Sorry, I’m going to go play some games now; I need to get rid of this frustration for now.

Greetings,

Ralph

You can make a backup of your keyboard keymap (layouts) first.

Saving (making a backup) or loading saved keymaps (layouts):

The disk icon in the lower left takes you to the “Save Current Layouts” and “Load Layout options”.

1 Like

Ah, I think just I missed what the problem was with what you had tried. Sorry, I’m not familiar with the german layouts and I missed the problem. I see now, that key, pipe and backslash | \ English ISO layout, and producing # in German layout, that is not the key you need.

Pictured here is the key you need:


NUBS key. It is located in the section labeled “Special”. This is the key I mentioned here:

NUBS is the ISO key < >. And it should type < > when you are in the german layout.

2 Likes

Getting an ansi keyboard and running an iso keymap tends to be a recepie for pain and should normally be reserved for masochists (and consumer hp and asus laptop owners but those at least run a weird hybrid and give you the missing key via a clunky fn combo).

First of all, I have to apologize. Firstly, it was a stressful day, and then to get an answer that doesn’t help me, well, one thing led to another. Secondly, I could have thought of searching the various key collections using the keyword NUBS. But thank you so much!!! Yes, I was primarily interested in the RGB functions (which I’m still struggling with), and the fact that I’ve owned several HP and ASUS notebooks, so the ANSI layout was probably not unfamiliar to me, but there was always this NUBS key somewhere. Anyway, now I can close this chapter. YEAHH!!

Do you happen to know if I can also load the colors of individual keys using the layout load function? I tried to read the Via documentation, but the information there fundamentally differs from the entries in the JSON file, which you can create via backup…

Regards,

Ralph

1 Like

Hmm, could you clarify what you mean?
Do you mean, for example, the letter D in blue, and the letter F in red, at the same time? If that’s what you mean, I’ve afraid that can’t be done so easily at the moment. Via certainly can not do it.

Yes, that’s exactly what I mean. I want all the letters blue, the numbers green, and the rest around them in two or more other colors (e.g., the F keys red, period, comma, etc. yellow, and shift, ctrl, etc. purple or another color, and the space and arrow keys white).

No easy, good way to do that yet.

Currently, your options are,

  1. add the color assignments you want by editing the firmware directly. Requires some familiarity with editing and compiling code, or the desire to learn.

  2. install the OpenRGB firmware a community member created for the FWL16 keyboards (currently available for the ANSI (US english) layout and macropad). This allows point-and-click changing of individual key colors. But, you currently lose Via / keyboard.frame.work access. And setup is a multi-step process. Possible it might be hard to follow, if not fluent in English at least.

Neither option is ideal. So I wouldn’t recommend either.

Hopefully someone creates an easier / better way.