import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.Clpp4x2N.js"; const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2022 May 28 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20220528.md","filePath":"ChangeLog/20220528.md"}'); const _sfc_main = { name: "ChangeLog/20220528.md" }; const _hoisted_1 = /* @__PURE__ */ createStaticVNode('

QMK Breaking Changes - 2022 May 28 Changelog

Notable Features

Caps Word (#16588)

This is a new feature that allows for capslock-like functionality that turns itself off at the end of the word.

For instance, if you wish to type "QMK" without holding shift the entire time, you can either tap both left and right shift, or double-tap shift, to turn on Caps Word -- then type qmk (lowercase) without holding shift. Once you hit any key other than a--z, 0--9, -, _, delete, or backspace, this will go back to normal typing!

There are other activation mechanisms as well as configurable options like timeout and the like -- see the Caps Word documentation for more information.

Quantum Painter (#10174)

QMK has had support for small OLED displays for some time now, but hasn't really gained too much ability to draw to panels other than the SSD1306 or SH1106 panels.

Quantum Painter is a new drawing subsystem available to suitable ARM and RISC-V boards that is capable of drawing to large panel RGB LCDs and RGB OLEDs. It also allows for a lot more flexibility with a larger set of drawing APIs -- lines, rectangles, circles, ellipses, text, images, and even animations.

The QMK CLI has new commands added to be able to generate images and fonts for Quantum Painter to digest -- it's even capable of converting animated gifs for display on screen.

See the Quantum Painter documentation for more information on how to set up the displays as well as how to convert images and fonts.

WARNING

Quantum Painter is not supported on AVR due to complexity and size constraints. Boards based on AVR such as ProMicro or Elite-C builds will not be able to leverage Quantum Painter.

Encoder Mapping (#13286)

One of the long-standing complaints with Encoders is that there has been no easy way to configure them in user keymaps. #13286 added support for Encoder Mapping, which allows users to define encoder functionality in a similar way to their normal keymap.

WARNING

This is not yet supported by QMK Configurator. It is also unlikely to ever be supported by VIA.

Changes Requiring User Action

RESET => QK_BOOT (#17037)

QMK is always in the process of picking up support for new hardware platforms. One of the side-effects for future integrations has shown that QMK's usage of RESET as a keycode is causing naming collisions. As a result, #17037 changed usages of RESET to the new keycode QK_BOOT in the majority of default-like keymaps. At this stage the old keycode is still usable but will likely be removed in the next breaking changes cycle. Users with keymaps containing RESET should also move to QK_BOOT.

Sendstring keycode overhaul (#16941)

Some keycodes used with SEND_STRING and its relatives have been deprecated and may have their old keycode usages removed at a later date. The list of deprecated keycodes should be consulted to determine if you're using one of the older names (the first identifier after #define) -- you should swap to the newer variant (the second identifier on the same line).

Pillow Installation (#17133)

The merge of Quantum Painter added some new dependencies in the QMK CLI, most notably Pillow, which requires some installation in order for the CLI to function. If you've got an existing installation, you'll need to run some commands in order to get things working:

On Windows, if using QMK MSYS or msys2, you'll need to run the following command:

sh
pacman --needed --noconfirm --disable-download-timeout -S mingw-w64-x86_64-python-pillow\npython3 -m pip install --upgrade qmk

On macOS:

sh
brew update\nbrew upgrade qmk/qmk/qmk

On Linux or WSL:

sh
python3 -m pip install --user --upgrade qmk

Updated Keyboard Codebases

The following keyboards have had their source moved within QMK:

Old Keyboard NameNew Keyboard Name
absinthekeyhive/absinthe
amj40amjkeyboard/amj40
amj60amjkeyboard/amj60
amj96amjkeyboard/amj96
amjpadamjkeyboard/amjpad
at101_bhviktus/at101_bh
ergosauruskeyhive/ergosaurus
gmmk/pro/ansigmmk/pro/rev1/ansi
gmmk/pro/isogmmk/pro/rev1/iso
honeycombkeyhive/honeycomb
lattice60keyhive/lattice60
melody96ymdk/melody96
mt40mt/mt40
mt64rgbmt/mt64rgb
mt84mt/mt84
mt980mt/mt980
navi10keyhive/navi10
omnikey_bhviktus/omnikey_bh
opuskeyhive/opus
smallicekeyhive/smallice
southpolekeyhive/southpole
unokeyhive/uno
ut472keyhive/ut472
wheatfield/blocked65mt/blocked65
wheatfield/split75mt/split75
z150_bhviktus/z150_bh

Full changelist

Core:

CLI:

Submodule updates:

Keyboards:

Keyboard fixes:

Others:

Bugs:

', 47); const _hoisted_48 = [ _hoisted_1 ]; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", null, _hoisted_48); } const _20220528 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); export { __pageData, _20220528 as default };