* Expose rgb_matrix_update_pwm_buffers to be available in keymaps
Exposing this API enables the examples in the keyboard shutdown/reboot
documentation to compile instead of calling `rgb_matrix_driver.flush`
directly.
* Remove extraneous rgb_matrix_update_pwm_buffers prototype declarations
Now that `rgb_matrix_update_pwm_buffers` is public, there isn't the need
for local prototype declarations.
* Added a default firmware and layout for the WindStudio Wind X R1
keyboard.
* Wind X R1: cleaned-up the folders to make clear that this firmware is
for the release 1 of this keyboard.
* Added rules.mk to the default layout
* Renamed the folder R1 into r1.
* Added readme.md files for the keyboard and default layout.
* Added a license header to keymap.c
* Update keyboards/windstudio/wind_x/r1/keyboard.json
Co-authored-by: jack <jack@pngu.org>
* Update keyboards/windstudio/wind_x/r1/keyboard.json
Co-authored-by: jack <jack@pngu.org>
* Update keyboards/windstudio/wind_x/r1/keymaps/default/keymap.c
Co-authored-by: jack <jack@pngu.org>
* Update keyboards/windstudio/wind_x/r1/readme.md
Co-authored-by: jack <jack@pngu.org>
* Added a proper link to the image (logo of windstudio)
* Wind X R1
- Corrected the default keymap with the QK_GESC key instead of the
KC_ESC.
- Removed the unnecessary rules.mk in the default layout
* Wind X R1:
applied `qmk format-json -i` on keyboard.json to conform with the
project formatt standards.
* Added a picture of the keyboard.
* Added a caption to the image.
---------
Co-authored-by: jack <jack@pngu.org>
* Added Teton_78 qmk keyboard files
* Fixed a syntax issue
* Waffles suggested changes
* Read me updated
Used the Alpine65 reame to model off.
* Update keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c
Co-authored-by: jack <jack@pngu.org>
* Accidental File
* Updated readme with missing info
* Update readme.md
* Update keyboards/mountainmechdesigns/teton_78/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/mountainmechdesigns/teton_78/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/mountainmechdesigns/teton_78/readme.md
Co-authored-by: Joel Challis <git@zvecr.com>
---------
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* usb_device_state: add idle_rate, led and protocol
Previously all usb drivers and platform implementations (expect for our
oddball atsam) tracked the same two global variables:
- keyboard_protocol: to indicate if we are in report or boot protocol
- keyboard_idle: for the idle_rate of the keyboard endpoint
And a local variable that was exposed trough some indirection:
- keyboard_led_state: for the currently set indicator leds (caps lock etc.)
These have all been moved into the usb_device_state struct wich is
accessible by getters and setters.
This reduces code duplication and centralizes the state management
across platforms and drivers.
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
* usb_device_state: reset protocol on reset
The usb hid specification section 7.2.6 states:
When initialized, all devices default to report protocol. However the
host should not make any assumptions about the device’s state and should
set the desired protocol whenever initializing a device.
Thus on reset we should always do exactly that.
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
* keyboards: fix oversize warnings
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
---------
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
quantum: util: add bit and bitmask helpers
These helpers are handy and can prevent off-by-one errors when working
with registers and general low level bit manipulation tasks. The macros
themself are inspired by the bits.h macros from the linux kernel source
code.
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>
* first compiled, flashed, and tested version of jris65
* adding readmes for mykeyclub and jris65
* removed commented out code and unneeded files
* typo in build instructions
* renamed info.json to keyboard.json as per new standard
* formatted with qmk format-json
* fixed layout offset problem
* moved some settings from c/h files to json
* moved matrix from .h file to .json
* cleaned up non-json options
* moved settings from rules.mk to keyboard.json
* fix for via after removing .h file
* converted keymap.c to keymap.json
* keymap.c has been replaced by keymap.json
* FN+Backspace loads bootload
* added custom keymap for Sean
* config.h setting is only needed by via
* formatted json
* convert via keymap from .c .h .mk to keymap.json
* moved keyboard configuration to hotswap dir; note in readme that only hotswap has been tested
* Update keyboards/mykeyclub/jris65/keymaps/default/keymap.json
Co-authored-by: jack <jack@pngu.org>
* typo
Co-authored-by: jack <jack@pngu.org>
* blank layers do not need to be specified
Co-authored-by: jack <jack@pngu.org>
* added other valid layouts
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* added other valid layouts
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* added other valid layouts
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* added other valid layouts
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* removed extra newline
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* cleaned up wording in readme
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* QMK no longer supports user keymaps
* remove settings that are already the default (false settings)
Co-authored-by: jack <jack@pngu.org>
* add image
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* add missing commas (formatting)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* add missing commas (formatting)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* add missing commas (formatting)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* re-added second layer with QK_BOOT for backspace
* make the hotswap the default keyboard
* added keyboard director prefix to DEFAULT_FOLDER
* ran qmk format-json on keyboard.json
* DEFAULT_FOLDER option is going away so don't use it
* removed via keymap as they now reside in qmk_userspace_via
---------
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
* Added a cleaned-up set of files for ThumbsUp! v9.
* Renamed the keymap for v9 as default
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/keymaps/default/keymap.c
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/info.json
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/readme.md
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/readme.md
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/rules.mk
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Update keyboards/thumbsup/rev9_promicro_4x12/info.json
As per PR review suggestions.
Co-authored-by: jack <0x6a73@protonmail.com>
* Apply suggestions from code review
Co-authored-by: jack <0x6a73@protonmail.com>
* Delete keyboards/thumbsup/keymaps/default/readme.md as per review recommendation.
* v9: Fixed the layout name in keymap.c file.
* v9: PR recommendatios applied - rules.mk file removed, info.json renamed to keyboard.json.
* v9: PR recommendatios applied - rules.mk file removed, info.json renamed to keyboard.json.
* v9: Fixed the copyright header modified by mistake.
* v9: Fixed the tri-layer switch as per the review recommendation.
* v9: Fixed the copyright header modified by mistake.
---------
Co-authored-by: jack <0x6a73@protonmail.com>
* Default OS_DETECTION_DEBOUNCE bumped from 200ms to 250ms
* Add OS_DETECTION_SINGLE_REPORT to prevent undesired multiple reports
* Prevents random stability issues on ARM MacBooks after switching via KVM
* Works for every device I could test, including ARM MacBooks
* Disabled by default to keep current behavior
* Add Troubleshooting section on documentation
* Tweak reset logic to prevent a freeze with some KVMs
The USB stack on ARM MacBooks is more similar to that of iOS and,
for some reason, it seems to like sending packets that influence
the OS detection and results in a second OS_MACOS report being sent
at a random period of time after plugging the keyboard back. This
does not always happen and the consequences of this vary based on
what the user is doing in the callback, but since this is not
obvious and it's hard to debug, I've decided to add a flag for
those affected by such issue. The stability issue I had in mine was
a combination of factors and I found the actual cause being my own
bad math when changing the default layer, but this change alone is
also confirmed to fix it. Lastly, soem KVMs seem to leave the USB
controlled in a suspended state when cold-booting Windows, meaning
the keyboard would hang and the reset logic would not work. This
tunes it so that it can get out of such state. Also retested for
compatibility with my old KVM to ensure the logic works for both.
* Allow for `get_hardware_id()` to be used for serial number.
* Length checks.
* Explain length.
* Cleanup.
* Preprocessor magic.
* Use the force, Batman.
* Swap logic; if SERIAL_NUMBER is defined use that, otherwise derive it.
* Cleanup.
* Cleanup.
builddefs: common_rules: overhaul debug information generation
Debug information is always generated while compiling a binary, but
debugging is not the main use-case for the majority of users. Thus the
new default is to explicitly require them with `DEBUG_ENABLE=yes`. The
same is true for linker map files which are gated by the same flag.
As we target the gcc compiler and debug with the gdb debugger we can
specify the ggdb3 flag in the most verbose to get macro expansion.
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
# QMK Breaking Changes - 2024 November 24 Changelog
## Notable Features
November 2024 brings a relatively lightweight QMK release. As with previous cycles, almost all PRs were related to cleanup or re-organization of aspects of QMK.
One notable item is the removal of `arm_atsam` -- this affects users with `massdrop/ctrl` or `massdrop/alt` keyboards. These have no current replacement, but support for an alternative to the `arm_atsam` backend is nearing completion. Unfortunately the alternative backend didn't make this quarter's list of merges, so there's a temporary removal of these boards. Users who need to build for these targets should stay on the `0.26.x` version of QMK until these boards have been restored.
## Changes Requiring User Action
### Updated Keyboard Codebases
One note with updated keyboard names -- historical keyboard names are still considered valid when using [External Userspace](../newbs_external_userspace) for builds. If you're already using External Userspace, you do not need to move your keymap inside your repository.
| Old Keyboard Name | New Keyboard Name |
|-------------------|-------------------------|
| saevus/cor | concreteflowers/cor |
| saevus/cor_tkl | concreteflowers/cor_tkl |
## Deprecation Notices
In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here.
RGB keycodes have been reworked to allow for both rgblight and rgb_matrix to coexist for the handful of boards in the repo with both enabled. Previously, `RGB_xxx` style keycodes were available, but now for rgblight we have `UG_xxx` (underglow), and `RM_xxx` for rgb_matrix. Default keymaps have been updated to reflect whichever system the respective board enables.
Longer-term, `RGB_xxx` style keycodes will be removed, but for now they act as if they're `UG_xxx`, and `UG_xxx` keycodes act upon both rgblight and rgb_matrix simultaneously. Put simply, the existing `RGB_xxx` keycodes act as they always have, giving users time to transition across to the new keycodes instead.
### ADNS9800 and PMW33xx sensor firmware ROM removal ([#24428](https://github.com/qmk/qmk_firmware/pull/24428))
Following on from the last Breaking Changes cycle, Binary blobs for optical sensors have been removed from the QMK codebase. Hooks allowing users to supply their own have been put in place; users wishing to source firmware blobs and integrate them into their keymap may do so. Doing so renders their firmware un-distributable due to licensing incompatibility with the GPL -- as such user firmware containing such blobs must not be distributed.
Please get in touch with the QMK team on Discord if your sensor is no longer functional.
## Full changelist
Core:
* Refactor F4 ld files to use common files ([#18059](https://github.com/qmk/qmk_firmware/pull/18059))
* Add LD7032 support to QP. ([#20828](https://github.com/qmk/qmk_firmware/pull/20828))
The next Breaking Change is scheduled for November 24, 2024.
The next Breaking Change is scheduled for February 23, 2025.
### Important Dates
* 2024 Aug 25 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* 2024 Oct 27 - `develop` closed to new PRs.
* 2024 Oct 27 - Call for testers.
* 2024 Nov 10 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* 2024 Nov 17 - `develop` is locked, only critical bugfix PRs merged.
* 2024 Nov 22 - `master` is locked, no PRs merged.
* 2024 Nov 24 - Merge `develop` to `master`.
* 2024 Nov 24 - `master` is unlocked. PRs can be merged again.
* 2024 Nov 24 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* 2025 Jan 26 - `develop` closed to new PRs.
* 2025 Jan 26 - Call for testers.
* 2025 Feb 9 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* 2025 Feb 16 - `develop` is locked, only critical bugfix PRs merged.
* 2024 Nov 21 - `master` is locked, no PRs merged.
* 2025 Feb 23 - Merge `develop` to `master`.
* 2025 Feb 23 - `master` is unlocked. PRs can be merged again.
## What changes will be included?
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.