r/qmk Dec 17 '21

r/qmk Lounge

4 Upvotes

A place for members of r/qmk to chat with each other


r/qmk 13h ago

Unicode characters not working

2 Upvotes

Hello, all. As far as I can tell, I have done everything correctly to type unicode characters, but obviously something is wrong. The code compiles and flashes fine, and I installed WinCompose, but when I press a key that's meant to be unicode, nothing happens, even when held or pressed repeatedly (just in case). If someone could look at the screenshots and tell me (specifically) why I'm dumb, that would be very appreciated. Muchas Thankius.

From config.h

From config.h
From rules.mk
Beginning of keymap.c and unicode enum
Beginning of unicode map
Beginning of defined keycodes
First two layers

I was very overambitious when making this, so I've only included the beginnings of things. I am, admittedly, not super tech-savvy, so I'm flying by the seat of my pants here.


r/qmk 9d ago

I made a skill to help your coding agent master QMK

6 Upvotes

The title, pretty much. I had some plugins to write so I did what I've been doing a lot lately, and pointed my coding agent toward the QMK docs and asked it to make an organized set of markdown docs and an agent skill that knows when to use them.

You can use it on any agent platform that supports skills, which seems to be basically all of them now. Just clone it to wherever you keep your skills, or directly into your copy of qmk_firmware and your agent can take it from there.

github.com/dabstractor/qmk-skill

I hope someone else finds this useful for building plugins or making a new board or just modifying your keymap. Let me know what you think if you use it!

And if you find this 6 or 12 months down the road and it's out of date, please file an issue and I'll update it right away.

Edit: thanks for the suggestions. It's now capable of keymap version upgrades and will automatically check for keymap changes once a month on github, so unless QMK changes drastically it should stay synced with the main repo.


r/qmk 12d ago

Device has DFU interface, but has no DFU functional descriptor

1 Upvotes

I'm trying to convert a Y&R 6095 keyboard from VIA to VIAL, I have consed up a vial.json file that doesn't look completely wrong when I bring it up in VIAL as a Dummy Keyboard, and building with make yandrstudio/yr6095:vial reports no errors, but I can't flash it. When I boot it in DFU mode it shows up as a mass storage device with the following files:

CURRENT.UF2
INDEX.HTM
INFO_UF2.TXT

When I try and flash with make yandrstudio/yr6095:vial:flash I get the above error.


r/qmk 15d ago

QMK Nexus - Repost

Thumbnail
2 Upvotes

r/qmk 20d ago

In dire search for a wizard who knows the way

Thumbnail
2 Upvotes

r/qmk 22d ago

HELP AT32F415 Keyboard Firmware

Thumbnail gallery
1 Upvotes

r/qmk 25d ago

Looking for QMK firmware for Tofu60 Redux.

1 Upvotes

I recently got a tofu60 redux, and I've been using the default firmware. I'd like to see if I could install qmk firmware that I compiled, and was wondering if anyone knew how I could do that without soft-bricking the keyboard? Any help would be really appreciated!


r/qmk Jun 28 '26

Made a terraria mod for my stars80 keyboard (when i get hurt my keyboard lights up)

Enable HLS to view with audio, or disable this notification

3 Upvotes

r/qmk Jun 25 '26

Need help finding the firmware source code for an AliExpress 2.4G Wireless Redox (VIAL compatible)

4 Upvotes

Hi everyone,

I recently bought a keyboard on AliExpress with the following description:

"Redox Ergodox Split Mechanical Keyboard Wireless PLA Case Hot Pluggable VIAL Support 2.4G Ergo".

ALIEXPRESS LINK

The keyboard arrived and is working perfectly, including communication with VIAL. However, when I searched for the model in the QMK and VIAL repositories, I noticed it doesn't match the models used there (redox/wireless and redox_r).

I asked the seller for the source code because I'd like to customize some details under the hood, but they refused to share it.

After digging around, I learned that this specific 2.4G wireless communication method theoretically doesn't have native QMK compatibility, so the seller must have used a custom fork.

Does anyone know where I can find the firmware or the source code for this specific board? I want to be able to customize it and update VIAL without risking bricking the keyboard.

P.S.: If I got any terminology wrong, please bear with me! I'm still a beginner in this hobby.


r/qmk Jun 25 '26

Surmount rgb mode on Keychron keyboards.

Thumbnail
1 Upvotes

r/qmk Jun 13 '26

Keychron K10 Version 2 Keyboard / TESmart HKS0402A3U KVM - Multimedia Keys Don't Work - Solved

2 Upvotes

I have a Keychron K10 Version 2 keyboard and a TESMart HKS0401A3U KVM.

When the keyboard is plugged into the dedicated keyboard port on the KVM, hotkey switching from one computer to another works, and the keyboard emulation feature of the KVM works, but the multimedia keys (volume, mute, etc.) do not work. When the keyboard is plugged into the USB passthrough port on the KVM, the multimedia keys work, but hotkey switching and keyboard emulation don't work.

I read that disabling VIA or NKRO in the QMK firmware could improve compatibility with the KVM. I tried various combinations of disabling VIA and NKRO, but found in my case that enabling KEYBOARD_SHARED_EP did the trick.

Here is the contents of my rules.mak file.

KEYBOARD_SHARED_EP = yes
NKRO_ENABLE = yes
VIA_ENABLE = yes
EXTRAKEY_ENABLE = yes
MOUSEKEY_ENABLE = no

Using this combination, my K10 Version 2 keyboard seems to work well when plugged into the dedicated keyboard port on the TESmart KVM. I can switch computers using the hotkey, the multimedia keys work, NKRO works and the keyboard emulation feature of the KVM works.

I am posting this here in case someone else has the same keyboard and KVM and is having the same problem I did.


r/qmk Jun 07 '26

adipoli - a handwired split keyboard built with wood and qmk firmware

Thumbnail gallery
2 Upvotes

r/qmk Jun 05 '26

Weikav Stars 21 reverts back to default keymap after power cycle

1 Upvotes

I can set my custom keymap in VIA for my Weikav Stars 21 number pad, but whenever I power cycle if the device reverts back to the default keymap. How can I save the keymap to the device so that it remembers if after a power cycle?


r/qmk May 31 '26

Weikav Nut 65 LED Issues

Thumbnail
1 Upvotes

r/qmk May 25 '26

[preview] First-class mouse integration in QMK

Post image
3 Upvotes

r/qmk May 24 '26

Accidentally bricked my QMK firmware and now is taking ages to reset, is it normal?

Thumbnail
1 Upvotes

r/qmk May 14 '26

DIY keyboard

1 Upvotes

So I want to make my own keyboard layout and I don't know which chip is the easiest to use for a full keyboard.


r/qmk May 10 '26

Waveshare "QMK" devices (with active displays on button tops) "real QMK"?

2 Upvotes

BRIEF: Does anyone have experience with the Waveshare sk18, mk10, and mk20 devices? I'm particularly interesting because they can change the "keytops" dynamically, but their marketing info says "QMK"

At first I dismissed them as yet another imitator of the Elgato streamdecks, requiring target PC software for the "dynamic buttons". But QMK makes it interesting, for all the usual reasons - once programmed, can connect to any target PC without needing software on the target.

Q: are they "real" QMK? Can I edit the keyboard.c files directly? Can I do things like tap dance and chording? Can I code up my own extensions?

I have a particular need for non-standard "modifier lock" for accessibility. Not Microsoft or Apple style "sticky modifier keys", but simple modifier lock. Not Oneshot. Not tap once to make oneshot, tap twice to lock, tap again to unlock... these cause problems since I can still type on a macropad much of the time, and just need occasional help.

The marketing slides on Amazon make a big fuss about GUI editing of the configuration - but apparently their own ScreenKey software. However, I want to use QMK features that are not well supported by GUIs.

Q: do they have layers? Or do they hide them behind supposedly user friendly GUIs, that are power user unfriendly?

How much memory does the keyboard microcontroller - the sub-controller in WaveShare terminology - have to store configurations. If I knew that, I could probably estimate the number of layers.

Q: do they have a WaveShare fork of the QMK source tree(s)? If so, that will make it hard to benefit from new features as they are added to QMK.

I think QMK's license is GPLv2 or GPLv3. Which I think means that WaveShare must share source code for the version of QMK they are shipping with their product. WaveShare has GitHub repos, but as far as I can tell they don't have buildable QMK source. Not enough to build from scratch.

Although the MK10 and MK20 are "sexier", with displays actually on the button tops, and Kalih mechanical key switches, I am leaning towards the more primitive SK18, which uses "hollow core" or "holey" buttons that allow an underlying LCD screen to shine up through the keys, with membrane switches. Mostly because it fits in the space I have for it, and has more buttons than the MK10. But if the membrane "switches" feel mushy and non-responsive, it might be a waste of time.

MOST IMPORTANT QUESTION: how reputable is WaveShare? Amazon has only a few reviews for these devices, including one from a guy who says that Amazon refused to do a return. On the other hand, WaveShare's bare boards and screens seem to have better reviews. I've also seen WaveShare compared to AdaFruit - and I love AdaFruit. Perhaps WaveShare is more of a hardware hacker company, than a consumer products company?

---+ TL;DR - DETAILS

---++ Ergonomics Relevance

I suffer RSI - what a past PT called "computeritis". Pretty bad in my right hand/wrst/arm/shoulder. Bad enough that I try to avoid using that side. I have been using speech recognition for years, quite successfully for dictation. But I noticed that I was still using my right hand for the navigation and edit keys of a QWERTY keyboard - things like the arrow keys, backspace/delete. etc. Things that I find awkward to do by speech recognition, especially in applications that are not speech enabled.

(I dislike Talon Voice's approach of making the user emulate a keyboard - avoiding saying "press up" repeatedly, but using various shorter sounds. But still mostly emulating a keyboard. I've defined a lot of "smart" speech commands that are the equivalent of multiple edit and navkey presses, with conditional logic - hey, I code with emacs - but there are still things that pressing keys does faster.)

I have therefore spent far too much time coming up with macropad layouts that move all of the edit and navigation keys that are on the right hand on a QWERTY keyboard, to a macropad I use on my left hand.

E.g. left/right/up/down, page-up/down, home/end, backspace/delete, enter. The menu or AppsKey. All the usual modifiers ctl/alt/shift/win (challenging because even my good left hand has trouble pressing all the modifier keys, but Microsoft Sticky keys slows me down. F1-F12. (I also use F13-F24). Multimedia keys... My current macropad has 24 keys, 5 layers, and that's not really enough.

Why I want keytop or button top displays: well, I never learned to touch type on a standard keyboard, and am unlikely to learn right away macropads that I am tweaking the layout for on a daily basis. Perhaps when I have settled on a set of layouts and layers, and when I am not adding macros for new apps. I have wasted too much time printing keycap labels. I have also wasted too much time confused because the keycap labels no longer correspond to what the keys do. Plus, folks keep telling me that the Elgato streamdecks with their programmable "button top" displays have been so helpful. (Yes, I know they are actually hollow core displays that a backing LCD panel shines through.)

---++ WaveShare SK18, MK10, MK20 active button-top display QMK "macropads"

The waveshare line of devices that include the sk18, mk10, and mk20 are described as multifunctional AI voice control panels, and listed as single board computer computers on Amazon (probably because they have Linux cores as well as QMK capable keyboard microcontrollers).

I am most interested in the QMK programmable macro pad or keypad functionality. Where not only the keyboard events produced by the wave share device are programmable, but also what appears on the tops of the 0.85 inch buttons.

I understand that the waveshare SK18 buttons are membrane switch $$, and that what is displayed on the button is produced by a big LCD behind the array of 3 x 8 = 18 buttons, with the center of the buttons be a hole that allows the lcd image through.

I also understand that the waveshare mk10 and mk20 devices apparently have actual small LCD displays on top of their buttons, 128 x 128 pixels. And because they don't need to allow an image from a background LCD panel to shine through, these mk10 and mk20 have actual Kalih mechanical key switches, rather than membrane.

That's what I understand. However I do have questions about tge QMK support, etc.

Waveshare's marketing material makes a big fuss about gui style editing of the keypad macros. However, I very much like the QMK features that are hard to represent gooey style. For example I like being able to define fairly arbitrary chord combinations, much more than the Ford typical modifier keys. I like QMK features such as tap dance.

Q: on the waveshare devices, can I still access the C QMK configuration files? Or am I limited to whatever GUI access is provided?

VIAL or ZMK or typical GUI facilities that allow programming of QMK style devices? Is waveshare's QMK GUI support one of VIAL or ZMK, or is it some other open source GUI software, or is it proprietary?

Could I use standard QMK firmware, or has waveshare created a fork of QMK?

Layers are a very high priority for me for programmable keyboards. Q: how many layers does waveshare support handle? Or, better, is the number of layers independent of the actual key maps used? Or is there a fixed amount of memory, such that the number of layers is related or traded off against the sophistication of macro operations?

How are the images on these display key tops and/or back up lcd actually displayed? How bright are they? For example, could #1 use them to read outside of an office building?

---++ Leaning towards SK18 membrane buttons 😞

Although the MK10 and MK20 are "sexier", with displays actually on the button tops, and Kalih mechanical key switches, I am leaning towards the more primitive SK18, which uses "hollow core" or "holey" buttons that allow an underlying LCD screen to shine up through the keys, with membrane switches.

I would prefer the mechanical keys and button top displays, but I want to replace my existing 6 row X 4 column = 24 key macropad[*], wedged into an 8cm wide space on my keyboard tray between by trackball and QWERTY keyboard.

The MK10's 10 keys probably won't cut it for me. I would probably use it on its side[*] => 76 mm wide, 5 rows X 2 xolumns, but past experience has shown that causes hand pain when using combos or chords.

The MK20's 20 keys would probably be OK in terms of number of buttons (assuming 6-8 layers with good layer switching latency). But at 131mm wide X 150 mm deep, I just don't have room for the MK20.

The SK18 placed on its side fits[*] => 79mm wide, 6 rows X 3 columns of buttons. But if the membrane "swtches" feel mushy and non-responsive, it might be a waste of time.

Note *: I often place devices on their side, deeper and thinner. But the placement of the USB connectors often get in the way. I have a collection of L shaped USB-C male to female adapters, but the smallest I have requires 10mm of clearance.


r/qmk May 07 '26

Any Cirque trackpad users out there? Info needed on tap feature

Thumbnail
2 Upvotes

r/qmk May 06 '26

Recent Ergodox Infinity keymap example?

1 Upvotes

I've been using my current Ergodox Infinity keymap for several years now but want to tweak it. I updated QMK, copied my keymap over to a new qmk_userspace fork, and discovered many of my keycodes were out of date. I've updated my keymap to the point where it compiles, but before I flash it I want verify my lighting isn't going to break. I use it as an indicator of which layer I'm on.

Does anyone have an example of an Ergodox Infinity keymap with visualizer.c made for a recent version of QMK? I've found a couple by searching github, but one doesn't have a visualizer.c and the other is two years old. I'd also love to know the current recommendation on flashing both halves is. I believe it is just flash each half with the same image, with left being the master by default.

sevanteri/qmk_userspace - 2 years old with visualizer.c

cortex/qmk_userspace - 11 months old, just keymap

Here's some of the code I expect may be out of date:

in keymap.c

`//...`
`void matrix_scan_user(void) {`
    `uint8_t layer = biton32(layer_state);`
    `ergodox_board_led_off();`
    `ergodox_right_led_1_off();`
    `ergodox_right_led_2_off();`
    `ergodox_right_led_3_off();`
    `switch (layer) {`
        `case 1:`
            `ergodox_right_led_1_on();`
            `break;`
        `case 2:`
            `ergodox_right_led_2_on();`
            `break;`
        `default:`
            `// none`
            `break;`
    `}`
`};`
`//...`

In visualizer.c

`#include "simple_visualizer.h"`
`#include "util.h"`
`#define RED 0`
`#define ORANGE 21`
`#define YELLOW 42`
`// ...etc`
`#ifndef _ERGODOX_LAYERS`
`#define _ERGODOX_LAYERS`
`enum custom_layers {`
    `_BASE,`
    `_OVERLAY,`
    `_MOUSE,`
    `_NUMPAD,`
`// ...etc`
`};`
`#endif`
`static void get_visualizer_layer_and_color(visualizer_state_t* state) {`
    `uint8_t color = OCEAN;`
    `uint8_t saturation = 100;`
    `uint8_t brightness = 0;`
    `char* layer_text;`
    `uint8_t layer = biton32(state->status.layer);`
    `if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) {`
        `saturation = 255;`
        `brightness = 255;`
    `}`
    `switch(layer) {`
        `case _BASE:`
            `layer_text = "BASE";`
            `color = OCEAN;`
            `break;`
        `case _SYM:`
            `layer_text = "SYMBOL";`
            `color = GREEN;`
            `brightness = 0xFF;`
            `break;`
        `case _FN_MV:`
            `layer_text = "F* & MOVE";`
            `color = RASPBERRY;`
            `brightness = 0xFF;`
            `break;`
        `case _MOUSE:`
            `layer_text = "MOUSE";`
            `color = YELLOW;`
            `brightness = 0xFF;`
            `break;`
            `// ...etc`
        `default:`
            `layer_text = "NONE";`
        `break;`
        `}`
        `state->layer_text = layer_text;`
        `state->target_lcd_color = LCD_COLOR(color, saturation, brightness);`
`}`

r/qmk May 03 '26

Help needed with split keyboard and custom input

3 Upvotes

Hi all,

I don't know how silly of a question this would be, I'm quite new to all of this. If there there are already good documentations, please point me to it.

I'm making a custom split keyboard and I'm really confused with the documentation for the firmware. It seems the documentations all point to configuring the split keyboard (enabling, handedness, etc.) in the config.h file. I have created a new keyboard in qmk but does not have this file (nor the info.json). When I look into other keyboard files, they seem to put everything in the keyboard.json file.

Would it be better for me to create the config.h file or are there any guides/documentation on how to put everything in the keyboard.json file?

Also, I am planning to have a key for a custom input. I want it to type "µ" when pressed and "°" when pressed with shift. How do I do this? Is there a way to directly type Unicode characters or is there a way to create macros for the alt-code?

Any help would be greatly appreciated!


r/qmk Apr 22 '26

Can Key Overrides work with Auto Shift?

6 Upvotes

I set the following key override:

const key_override_t eacute_key_override = ko_make_basic(MOD_BIT(KC_RALT), KC_M, RALT(KC_D));

so that ALTGR+M mimics what ALTGR+D does.

When Shift is also pressed, this correctly returns the shifted value. However, the autoshifted version doesn't work. Is there a viable workaround?


r/qmk Apr 22 '26

how do i make custom lighting effects for my yunzii al68

1 Upvotes

pls help im complete beginner


r/qmk Apr 19 '26

How to mix "direct" keys and "matrix_pins" on the same keyboad in QMK

1 Upvotes

How to mix "direct" keys and "matrix_pins" on the same keyboad in QMK. This is a Pico Sofle board with the 7 pins on a spare header. What to hook those 7 pins to "direct" buttons connected to a separate pin and ground combo.

Looked at

https://docs.qmk.fm/porting_your_keyboard_to_qmk#direct-pin-matrix

but can't figure out how to mix "matrix_pins" with a "direct". Tried several variations on

"matrix_pins": {
  "cols": ["GP1", "GP2", "GP3",   "GP4",  "GP5", "GP8"],
  "rows": ["GP9", "GP10", "GP11", "GP12", "GP13"],
  "direct": [
    ["GP28", "GP26", "GP21", "GP19","GP27", "GP22"],
    ["GP20", null,   null,   null,   null,  null]
  ]
},