Have you ever ended up somewhere with only a partial memory of how you got there because the ride was so smooth? My experience with my first contribution to the Quantum Mechanical Keyboard (QMK) project was very close to this.
It started when I ordered the ANAVI Macro Pad 8. I had previously bought the ANAVI Fume Extractor, so I knew that Leon Anavi puts a lot of energy and passion into documentation and assembly guides. Putting together the ANAVI Macro Pad 8 was as easy as expected and it worked great with the preinstalled default keymap on Linux and Windows systems.
The ANAVI Macro Pad 8 is powered by the QMK open source firmware which can easily be customized. QMK has great guides that make it very easy to get started. After installing the build chain, I compiled and flashed the default keymap as a first test. Next, I decided to create a custom keymap for the VLC media player which I usually install as one of the first programs on every system I set up.
A quick web search turned up an overview of the VLC shortcut keys. To get an idea of how a keymap works, I took a look at the keymaps Leon had submitted to the QMK project. I was pleasantly surprised that developing a custom keymap is basically just creating a few arrays of key codes.
I like working in the code directly, but a GUI editor is also available. The hardest part of the development work was finding a mapping that is intuitive and contains the most important keyboard shortcuts. QMK supports up to 16 keyboard layers, so there is capacity for plenty of keyboard shortcuts.
When I had created a suitable keymap, I compiled it with QMK and flashed it to the ANAVI Macro Pad 8, which took just a few seconds. After I made a few minor changes to the layout of the keyboard shortcuts, I was so pleased with the result I wanted to share it with other users.
The QMK project documentation provides detailed instructions for working with git and creating pull requests. In my code, I had overlooked a violation of the coding conventions. A reviewer pointed this out to me in a friendly manner and even made a suggestion for improvement, which I happily adopted.
About three days after I started working on creating keymaps, my VLC keymap was integrated into QMK and can now be used quickly and easily by anyone. I hope some other users will also share their own keymaps. That would make me happy!