This commit makes atmel-dfu and chibios-dfu bootloaders retry to detect the bootloader
every 0,5 seconds (now configurable via the BOOTLOADER_RETRY_TIME makefile variable),
and a period is printed after every try. This is a much more pleasant behaviour than
the 5s retry timeout.
This keymap for ANAVI Macro Pad 2 contains a couple of Skype
shortcuts for MS Windows and GNU/Linux distributions:
- Ctrl+M: Mute/unmute microphone
- Ctrl+Shift+K: Start/stop camera
Signed-off-by: Leon Anavi <leon@anavi.org>
* Set bootloader to stm32-dfu for STM32F303
* Set bootloader to stm32-dfu for STM32F0x2
* Set bootloader to stm32-dfu for STM32F4x1
* Set bootloader to stm32duino for sowbug
* Delete redundant bootloader_defs headers
* Add some missing MCU name comments
* Move APM32 dfu-suffix overrides underneath bootloader
* Remove redundant STM32_BOOTLOADER_ADDRESS defines/rules
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* [Keymap] merge jdelkins userspace and associated keymaps
* Add copyright & license info
* Change rgblight_config.enable to rgblight_is_enabled()
* Update keyboards/dz60/keymaps/jdelkins/keymap.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/dz60/keymaps/jdelkins/keymap.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/dz60/keymaps/jdelkins/keymap.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Remove superfluous includes
* Change EXTRAFLAGS+=-flto to LTO_ENABLE=yes
* Remove unnecessary jdelkins_ss symlink in users
* Add copyright and license notices
* Use preferred way to determine capslock / numlock state
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Add #pragma once to a header
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Include QMK_KEYBOARD_H only once, in userspace header
* Remove unnecessary initialization in matrix_init_keymap
* Do process_record_keymap before cases handled in process_record_user
* Reorganize & simplify secrets feature enablement
* Use tap_code16
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove superfluous break
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove copyright from rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove copyright from rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Use tap_code16
Co-authored-by: Ryan <fauxpark@gmail.com>
* include "print.h" instead of <print.h>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Use tap_cod16
Co-authored-by: Ryan <fauxpark@gmail.com>
* Use tap_code16
Co-authored-by: Ryan <fauxpark@gmail.com>
* Use tap_code16
Co-authored-by: Ryan <fauxpark@gmail.com>
* Use tap_code16
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove copyright from rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* add #pragma once to a header
Co-authored-by: Ryan <fauxpark@gmail.com>
* include "print.h" instead of <print.h>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove copyright from rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove copyright from rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove copyright from rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Use tap_code16
Co-authored-by: Ryan <fauxpark@gmail.com>
* Use tap_code16
Co-authored-by: Ryan <fauxpark@gmail.com>
* Use :flash target where possible
* Remove special case flash target and use PROGRAM_CMD
* dz60/jdelkins_ss: use tap_code16
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
The code using sprintf() did not fit into flash when `merge/um70:via`
was compiled with avr-gcc 5.4.0:
* The firmware is too large! 29756/28672 (1084 bytes over)
Replacing `sprintf(wpm_str, " %03d", current_wpm);` with custom
formatting code reduces the firmware size by 1504 bytes, which is enough
to make the `merge/um70:via` firmware fit:
* The firmware size is approaching the maximum - 28252/28672 (98%, 420 bytes free)
* Add Per Key functionality for AutoShift (#11536)
* LED Matrix: Reactive effect buffers & advanced indicators (#12588)
* [Keyboard] kint36: switch to sym_eager_pk debouncing (#12626)
* [Keyboard] kint2pp: reduce input latency by ≈10ms (#12625)
* LED Matrix: Split (#12633)
* [CI] Format code according to conventions (#12650)
* feat: infinite timeout for leader key (#6580)
* feat: implement leader_no_timeout logic
* docs(leader_key): infinite leader timeout docs
* Format code according to conventions (#12680)
* Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx (#12403)
* Fix default ADC_RESOLUTION for ADCv3 (and ADCv4)
Recent ChibiOS update removed ADC_CFGR1_RES_10BIT from the ADCv3 headers
(that macro should not have been there, because ADCv3 has CFGR instead of
CFGR1). Fix the default value for ADC_RESOLUTION to use ADC_CFGR_RES_10BITS
if it is defined (that name is used for ADCv3 and ADCv4).
* Update ADC docs to match the actually used resolution
ADC driver for ChibiOS actually uses the 10-bit resolution by default
(probably to match AVR); fix the documentation accordingly. Also add
both ADC_CFGR_RES_10BITS and ADC_CFGR1_RES_10BIT constants (these names
differ according to the ADC implementation in the particular MCU).
* Fix pinToMux() for B12 and B13 on STM32F3xx
Testing on STM32F303CCT6 revealed that the ADC mux values for B12 and
B13 pins were wrong.
* Add support for all possible analog pins on STM32F1xx
Added ADC mux values for pins A0...A7, B0, B1, C0...C5 on STM32F1xx
(they are the same at least for STM32F103x8 and larger F103 devices, and
also F102, F105, F107 families). Actually tested on STM32F103C8T6
(therefore pins C0...C5 were not tested).
Pins F6...F10, which are present on STM32F103x[C-G] in 144-pin packages,
cannot be supported at the moment, because those pins are connected only
to ADC3, but the ChibiOS ADC driver for STM32F1xx supports only ADC1.
* Add support for all possible analog pins on STM32F4xx
Added ADC mux values for pins A0...A7, B0, B1, C0...C5 and optionally
F3...F10 (if STM32_ADC_USE_ADC3 is enabled). These mux values are
apparently the same for all F4xx devices, except some smaller devices may
not have ADC3.
Actually tested on STM32F401CCU6, STM32F401CEU6, STM32F411CEU6 (using
various WeAct “Blackpill” boards); only pins A0...A7, B0, B1 were tested.
Pins F3...F10 are inside `#if STM32_ADC_USE_ADC3` because some devices
which don't have ADC3 also don't have the GPIOF port, therefore the code
which refers to Fx pins does not compile.
* Fix STM32F3xx ADC mux table in documentation
The ADC driver documentation had some errors in the mux table for STM32F3xx.
Fix this table to match the datasheet and the actual code (mux settings for
B12 and B13 were also tested on a real STM32F303CCT6 chip).
* Add STM32F1xx ADC pins to the documentation
* Add STM32F4xx ADC pins to the documentation
* Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) (#12600)
* Add support for jumping to tinyuf2 bootloader. Adds blackpill UF2 example.
* Update flashing.md
* Update chconf.h
* Update config.h
* Update halconf.h
* Update mcuconf.h
* eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. (#12671)
* Add support for MCU = STM32F446 (#12619)
* Add support for MCU = STM32F446
* Update platforms/chibios/GENERIC_STM32_F446XE/configs/config.h
* Restore mcuconf.h to the one used by RT-STM32F446RE-NUCLEO64
* stm32f446: update mcuconf.h and board.h for 16MHz operation, with USB enabled, and other peripherals disabled.
* Format code according to conventions (#12682)
* Format code according to conventions (#12687)
* Add STM32L433 and L443 support (#12063)
* initial L433 commit
* change to XC
* fix L433
* disable all peripherals
* update system and peripheral clocks
* 433 change
* use its own board files
* revert its own board files
* l433 specific change
* fix stm32l432xx define
* remove duplicate #define
* fix bootloader jump
* move to L443xx and add i2c2, spi2, usart3 to mcuconf.h
* move to L443
* move to L443
* fix sdmmc in mcuconf.h
* include STM32L443
* add L443
* Include L443 in compatible microcontrollers
* Include L443 in compatible microcontrollers
* Update config bootloader jump description
* Update ChibiOS define reasoning
* Update quantum/mcu_selection.mk
* fix git conflict
* Updated Function96 with V2 files and removed chconf.h and halconf.h (#12613)
* Fix bad PR merge for #6580. (#12721)
* Change RGB/LED Matrix to use a simple define for USB suspend (#12697)
* [CI] Format code according to conventions (#12731)
* Fixing transport's led/rgb matrix suspend state logic (#12770)
* [CI] Format code according to conventions (#12772)
* Fix comment parsing (#12750)
* Added OLED fade out support (#12086)
* fix some references to bin/qmk that slipped in (#12832)
* Resolve a number of warnings in `qmk generate-api` (#12833)
* New command: qmk console (#12828)
* stash poc
* stash
* tidy up implementation
* Tidy up slightly for review
* Tidy up slightly for review
* Bodge environment to make tests pass
* Refactor away from asyncio due to windows issues
* Filter devices
* align vid/pid printing
* Add hidapi to the installers
* start preparing for multiple hid_listeners
* udev rules for hid_listen
* refactor to move closer to end state
* very basic implementation of the threaded model
* refactor how vid/pid/index are supplied and parsed
* windows improvements
* read the report directly when usage page isn't available
* add per-device colors, the choice to show names or numbers, and refactor
* add timestamps
* Add support for showing bootloaders
* tweak the color for bootloaders
* Align bootloader disconnect with connect color
* add support for showing all bootloaders
* fix the pyusb check
* tweaks
* fix exception
* hide a stack trace behind -v
* add --no-bootloaders option
* add documentation for qmk console
* Apply suggestions from code review
* pyformat
* clean up and flesh out KNOWN_BOOTLOADERS
* Remove pointless SERIAL_LINK_ENABLE rules (#12846)
* Make Swap Hands use PROGMEM (#12284)
This converts the array that the Swap Hands feature uses to use PROGMEM,
and to read from that array, as such. Since this array never changes at
runtime, there is no reason to keep it in memory. Especially for AVR
boards, as memory is a precious resource.
* Fix another bin/qmk reference (#12856)
* [Keymap] Turn OLED off on suspend in soundmonster keymap (#10419)
* Fixup build errors on `develop` branch. (#12723)
* LED Matrix: Effects! (#12651)
* Fix syntax error when compiling for ARM (#12866)
* Remove KEYMAP and LAYOUT_kc (#12160)
* alias KEYMAP to LAYOUT
* remove KEYMAP and LAYOUT_kc
* Add setup, clone, and env to the list of commands we allow even with broken modules (#12868)
* Rename `point_t` -> `led_point_t` (#12864)
* [Keyboard] updated a vendor name / fixed minor keymap issues (#12881)
* Add missing LED Matrix suspend code to suspend.c (#12878)
* LED Matrix: Documentation (#12685)
* Deprecate `send_unicode_hex_string()` (#12602)
* Fix spelling mistake regarding LED Matrix in split_common. (#12888)
* [Keymap] Fix QWERTY/DVORAK status output for kzar keymap (#12895)
* Use milc.subcommand.config instead of qmk.cli.config (#12915)
* Use milc.subcommand.config instead
* pyformat
* remove the config test
* Add function to allow repeated blinking of one layer (#12237)
* Implement function rgblight_blink_layer_repeat to allow repeated blinking of one layer at a time
* Update doc
* Rework rgblight blinking according to requested change
* optimize storage
* Fixup housekeeping from being invoked twice per loop. (#12933)
* matrix: wait for row signal to go HIGH for every row (#12945)
I noticed this discrepancy (last row of the matrix treated differently than the
others) when optimizing the input latency of my keyboard controller, see also
https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/
Before this commit, when tuning the delays I noticed ghost key presses when
pressing the F2 key, which is on the last row of the keyboard matrix: the
dead_grave key, which is on the first row of the keyboard matrix, would be
incorrectly detected as pressed.
After this commit, all keyboard matrix rows are interpreted correctly.
I suspect that my setup is more susceptible to this nuance than others because I
use GPIO_INPUT_PIN_DELAY=0 and hence don’t have another delay that might mask
the problem.
* ensure we do not conflict with existing keymap aliases (#12976)
* Add support for up to 4 IS31FL3733 drivers (#12342)
* Convert Encoder callbacks to be boolean functions (#12805)
* [Keyboard] Fix Terrazzo build failure (#12977)
* Do not hard set config in CPTC files (#11864)
* [Keyboard] Corne - Remove legacy revision support (#12226)
* [Keymap] Update to Drashna keymap and user code (based on develop) (#12936)
* Add Full-duplex serial driver for ARM boards (#9842)
* Document LED_MATRIX_FRAMEBUFFER_EFFECTS (#12987)
* Backlight: add defines for default level and breathing state (#12560)
* Add dire message about LUFA mass storage bootloader (#13014)
* [Keyboard] Remove redundant legacy and common headers for crkbd (#13023)
Was causing compiler errors on some systems.
* Fix keyboards/keymaps for boolean encoder callback changes (#12985)
* `backlight.c`: include `eeprom.h` (#13024)
* Add changelog for 2021-05-29 Breaking Changes merge (#12939)
* Add ChangeLog for 2021-05-29 Breaking Changes Merge: initial version
* Add recent develop changes
* Sort recent develop changes
* Remove sections for ChibiOS changes per tzarc
No ChibiOS changes this round.
* Add and sort recent develop changes
* add notes about keyboard moves/deletions
* import changelog for PR 12172
Documents the change to BOOTMAGIC_ENABLE.
* update section headings
* re-sort changelog
* add additional note regarding Bootmagic changes
* remove changelog timestamp
* update dates in main Breaking Changes docs
* fix broken section anchors in previous changelogs
* add link to backlight/eeprom patch to changelog
* highlight some more changes
* link PRs from section headers
* Restore standard readme
* run: qmk cformat --core-only
* Align our subprocess usage with current best practices.
* remove unused import
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* fix the cpp invocation for older python
* allow for unprompted installation
* make sure qmk new-keyboard works on windows
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
This keymap contains the following shortcuts for Microsoft Teams
on MS Windows and GNU/Linux distributions:
- Ctrl+Shift+M: Toggle mute
- Ctrl+Shift+O: Toggle video (doesn't work in a web browser)
NOTE: Mac users should replace Ctrl with Command in all shortcuts
Signed-off-by: Leon Anavi <leon@anavi.org>
* Create piv3rt's keymap
* Use tabs's LED as a caps lock indicator
* Fix indentation (tabs -> spaces)
* Set inital LED matrix color & mode
* Rename layers and add an RGBRST keycode
* Disable unused RGB effects
* Add RGB profiles
* Use ESC's LED as a num lock indicator
* Light up the keypad when _NUM layer is active
* Realign layers
* Remove legacy layer
* Fix CAPS key macro
* Reduce TAPPING_TERM to 100
* Change the caps LED to red and display the numlock one on special layers
* Add french accentuated caps + minor improvements on layers
* Remove left numpad
* Add french quotation marks
* Add key KC_NUBS
* Add terminal copy/paste
* Disable led profile on wakeup
* Change the default color
* Add AMD replay and record keys
* Add a MacOS layer
* Move Numpad
* Add GPLv2 license information
* Optimise custom RGB matrix
* Move keypad toggle and disable MAC led indicator
* Remove unnecessary check for RGB matrix
* Initial configuration with led and three layers
+ First layer contains classic keys
+ Second layer contains F keys and media keys
+ Third layer contains numbers in the top portion of the letter keys
+ Default LEDs configuration
* RGB toggle
* Documentation and minor changes
* Added LGUI key and remapped layer 2 on layer 1
* Removed backlight and led keys
* Updated keymap graphical representation
* Switched LGui with Lalt to emulate macOS layout
* Updated keymap with GNU License
* Some fixes for the Bakeneko variant DB60s
* Add copyright to header
* Add .python-version to gitignore for people who use pyenv or similar
* update readme
* Add more readmes
* Add more readmes
* Update the versions to have different product IDs
* Update readme
* Add missing rules.mk
* Fix matrix on hotswap
* remove iso from hotswap
* Fix hotswap spacebar
* Revert gitignore changes
* Fix layouts
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add split configs
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add license to config
* or equivalent
Co-authored-by: Ryan <fauxpark@gmail.com>
* add custom keymaps for BM68rgb
* add user keymap for bm68rgb
* fix grammar
* add custom hub16 keymap
* Apply suggestions from code review
* fix errorenously included hub16 file
* add GPL headers
* revert defining dfa_state in keymap.h
* Update keyboards/bm68rgb/keymaps/peepeetee/keymap.h
* enable tap dance, add tap dance to left alt
* move the module checking and updating to lib/python
* make flake8 happy
* Update lib/python/qmk/cli/__init__.py
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* prompt the user to disable developer mode
* pyformat
* flake8
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* add a test and dry-run to qmk generate-api
* add a dry-run to qmk pyformat
* Add a --dry-run to qmk cformat
* reverse the order of nose2 and flake8 tests
* run CI test against cformat and pyformat
* fix programming errors
* tweak job name
* fix argument
* refine the files we select
* fix stack trace in --ci
* make cformat exit clean
* fix c file extensions
* decouple CI from pyformat
* remove --ci arg
* make ci happy
* use the environment var instead
* change output to text
* fix log message
* replace tabs
* resynced with upstream, and adjusted keymap layout for planck
* updated keyboard layout
Signed-off-by: Sean Johnson <sean@ttys0.net>
* swapped out bspc for del on symb layer
Signed-off-by: Sean Johnson <sean@ttys0.net>
* fixed typo with brightness media keys
* turns out my brightness config was correct, it was macOS that had gone sideways
* updated to bring in line with requirements for merging into upstream
* removed redundant config from rules.mk
moved media controls to FUNC layer for Planck layout
* added GPL2+ compatible license header
Signed-off-by: Sean Johnson <sean@skj.dev>
* removed unused MIDI comment
Signed-off-by: Sean Johnson <sean@skj.dev>
* removed extraneous MIDI comments
* removed extraneous comments
* update for LTO and guard RGBLED_SPLIT
* Revert "update for LTO and guard RGBLED_SPLIT"
This reverts commit ce81177cbe330ae3e1e14c264dc0cb0946f08d70.
* Revert "Revert "update for LTO and guard RGBLED_SPLIT""
This reverts commit 67da0ce9f38777064ad094c1ecba7ce17a40994f.
* update iris keymap for keymap_kc removal and overhaul userspace
* add licenses
* fix tap_dance error when rgblight is disabled and update/clean iris/sinc maps
The easiest way to install QMK CLI and all the necessary
dependencies on FreeBSD is to use the packages
from the official FreeBSD Ports Collection.
This is possible since QMK CLI has been added to the Ports Collection:
https://www.freshports.org/sysutils/py-qmk/
When the USB device is connected, FreeBSD creates not one, but three
device nodes in /dev, e.g.: /dev/ttyU0, /dev/ttyU0.init, and
/dev/ttyU0.lock.
As a result, this leads to the USB variable containing 3 paths
(and therefore, whitespace) and messages like this one:
Device /dev/ttyU0
/dev/ttyU0.init
/dev/ttyU0.lock has appeared; assuming it is the controller.
This changes fixes the use of the -z flag of "[" (see test(1)). Also, it
removes undesired paths from the USB variable, leaving only
one path there (i.e., "/dev/ttyU0").
* Add andromeda to qmk
* Fix
* Another fix
* Fix via map
* Update andromeda
* Update confs for new qmk master
* Apply suggestions from code review
* Remove the ch hal and mcu conf as the andromeda does not need extra peripherals
* Update keyboards/ai03/andromeda/rules.mk
* Apply suggestions from code review
* Add bootloader note to readme
* [Keyboard] added Time 80 Reforged by Fox Lab
* added Time 80 Reforged by Fox Lab
* split to two sub directories for universal and hotswap pcb
* Apply suggestions from code review
* Modified codes as suggested
* update code as suggested
* rgb log light keymaps added
* update code as suggested
* enable rgblight right to TIME logo, and add keymaps for it's control
* Apply suggestions from code review
* enable built-in switch LED support
* Apply suggestions from code review
* Apply suggestions from code review
* Apply suggestions from code review
* Apply suggestions from code review
* Set Dvorak as the standard base layer
* Remove unneeded includes
* Remove custom handling for Quake 2
Have now rewritten my in-game configuration to use Dvorak mapping instead of QWERTY, which means I don't need any of this stuff.
* Clean up comments in KC60 keymap
* Allow <keyboard>.h to be optional when going data driven
* Remove stub files as no longer required
* Rename function
* Remove include of layouts.h for now
* Take advantage of type=keyboard_folder
* Take advantage of type=keyboard_folder - kb should still be mandatory
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Adrian <42110361+xSteins@users.noreply.github.com>
* add info.json file
* refactor keymaps for readability
* rework layout macro
Arranges the layout macro and keycodes to resemble the physical layout.
* readme touch-up
Corrections to capitalization and spelling, and removal of extra white space.
* Added WholesomeDucky keymap for GMMK Pro
* Finalized keymap & added 1000hz polling for GMMK Pro
* Corrected for RAlt and Fn being swapped
* Fixed RAlt and Fn being swapped in the layout definition. Updated personal keymap to reflect fixed layout.
* Removed an old comment from personal keymap for GMMK Pro
* added VIA support
* Defined bootmagic row and column for GMMK Pro Esc key
* Update keyboards/gmmk/pro/config.h
* Update keyboards/gmmk/pro/keymaps/via/keymap.c
* Update keyboards/gmmk/pro/keymaps/via/keymap.c
* peepeetee's bodged hub16 keymap
* add layer 3 lighting
* actually adds layer 3 lighting
* fixes layer 0; behavior is that layor 0 is unaltered from base pattern, while other states have distinct solid colors
Tap dance callbacks may register weak mods; one case when it happens
is when a tap dance registers a key with modifiers. When the tap
dance is interrupted by pressing another key, these weak mods could
affect the interrupting key (normally any stale weak mods are cleared
at the start of action_exec() when handling a keypress event, but the
tap dance interrupt check code is called later, and the weak mods left
by that code were not cleared). Add another clear_weak_mods() call to
preprocess_tap_dance() to make sure that the interrupting keypress is
not affected by unrelated weak mods from the previous tap dance.
Fixes#12445.
* Fix how USB queue overflow is handled in chibios.
This commit reverts PR 12472 (commit c823fe2d3f23ed090e36ce39beed4c448298bd2f),
and it implements the original intent of the commit in a better way.
The original intent of the above mentioned commit was to not deadlock the
keyboard when console is enabled, and hid_listen is not started.
The above mentioned commit had a few drawbacks:
1) When a lot of data was printed to the console, the queue would get full,
and drop data, even if hid_listen was running. (For example having matrix debug
enabled just didn't work right at all)
2) I believe the function in which this was implemented is used by all other
USB endpoints, so with the above change, overflow, and data loss could
happen in other important functions of QMK as well.
This commit implements deadlock prevention in a slightly similar way to how
it's done on AVR. There is an additional static local variable, that memorizes
whether the console has timeouted before. If we are in the timeouted=false
state, then we send the character normally with a 5ms timeout. If it does
time out, then hid_listen is likely not running, and future characters should
not be sent with a timeout, but those characters should still be sent if there
is space in the queue. The difference between the AVR implementation and this
one is that the AVR implementation checks the queue state directly, but this
implementation instead attempts to write the character with a zero timeout.
If it fails, then we remain in the timeouted=true state, if it succeeds, then
hid_listen started removing data from the queue, so we can go out of the
timeouted=true state.
* Added comment explaining the timeouted logic to console flow control.
* Console flow control: refactor chibios flowcontrol code to make it more readable, and rename the timeouted variable to timed_out on both chibios and lufa. Changed comments to says timed_out is an approximation of listener_disconnected, to make it clear that it's not the same thing
* fix typo
* Add RGB matrix suspend wake function for Planck/rev6
* Update suggested definition to allow user override.
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: filterpaper <filterpaper@localhost>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Git keymap for ANAVI Macro Pad 8 with the following shortcuts.
On the first row from left to right:
- git status
- git log
- git pull
- git push
On the second row from left to right:
- git diff
- git add
- git commit
- FN key to switch to the 2nd layout and control lights
Reduce the number of supported RGB animations and effects in
config.h to shrink the firmware size and fit it on the device.
Signed-off-by: Leon Anavi <leon@anavi.org>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: George Wietor <george@LIGHT-GRAY.local>
Co-authored-by: Jack Humbert <jack.humb@gmail.com>
The keymap for this PCB as of April 5, 2020 has a 4rth, largely superfluous layer, creating a total of 5 layers.
When ported to VIA, this results in a layer that users can access but cannot edit. I propose removing this layer completely along with it's access from the default.
The dac_basic driver did not work properly with `#define AUDIO_PIN A4`
(instead of configuring the A4 pin, the driver actually was switching
the A5 pin to analog mode, breaking any other usage of that pin in
addition to emitting a distorted signal on the improperly configured
A4 pin). Fix the code to configure the A4 pin as intended.
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
with default and i2cscanner keymaps
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
- Use normal ChibiOS I2C driver.
- Move drawing code to housekeeping -- previously it was during matrix
scan, which gets executed during bootmagic checks. However, bootmagic
is invoked before QWIIC subsystem is enabled, which means I2C isn't
configured yet. All I2C calls to the OLED fail with timeouts while
bootmagic is being checked. Housekeeping ensures this is executed once
the system has initialised and settled.
- QWIIC OLED driver: properly clear out OLED buffer when clearing screen.
This keymap for ANAVI Macro Pad 2 contains a couple of shortcuts
for Google Meet:
- left key: turn on/off the microphone (mute button)
- right key: turn on/off the camera
Signed-off-by: Leon Anavi <leon@anavi.org>
Clarify that the link to the github/forking instructions is a link to how to fork this project. Previous wording implied that the link was to a how-to-use github in general page.
Before this commit, attaching an ARM-based (i.e. ChibiOS-based) keyboard that
uses CONSOLE_ENABLE = yes and produces debug messages would deadlock the
keyboard unless one was running hid_listen.
With this commit, dead-locking writes to the queue are detected and prevented.
fixes#5631
* cleanup keyboards/helix/{rev2|rev3_5rows}/keymaps/five_rows
* Made the layout data easier to read.
* helix/rev2/keymaps/five_rows/keymap.c
* helix/rev3_5rows/keymaps/five_rows/keymap.c
* The following two were made the same.
* keymaps/five_rows/config.h
* keymaps/five_rows/oled_display.c
The binary of the compilation result has not changed.
* update keyboards/helix/rev2/keymaps/five_rows/rules.mk
KEYBOARD_LOCAL_FEATURES_MK was moved to the end.
* add '#define DISABLE_SYNC_TIMER' into helix/rev3_5rows/keymaps/five_rows/config.h
The sync timer features worsen the matrix scan rate of the Helix keyboard. I'm not sure if it makes sense to have sync timer features enabled on the Helix keyboard. So in my keymap I disable this.
This resolves to <https://pypi.org/project/Wave/>, but the places where
the `wave` module is imported make it clear that the standard library
module <https://docs.python.org/3/library/wave.html> was intended.
Was originally added in #11820 and used in the following files:
* `util/sample_parser.py`
* `util/wavetable_parser.py`
* [nix] Update nixpkgs to avoid issues with Big Sur
The older nixpkgs snapshot did not contain nix changes to the
compiler/linker hooks that are necessary for compatibility with MacOS
Big Sur. The fix is simply to update to a newer snapshot.
* [nix] Add a poetry manifest and use poetry to build the Python env
* [nix] Use niv to manage upstream sources like nixpkgs
* [nix] Update to newer nixpkgs snapshot
* [nix] Bump python package versions
The right-most top-most key on the Kinesis Advantage keyboard is labeled
“Progrm” and was meant to enter the Teensy bootloader as per the comment.
However, the keycode was set to KC_1, which just produces a “1”.
It should be RESET instead.
This commit fixes KC_1 to RESET in all files where the fix is needed.
The other files have already been fixed independently.
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Add IO Warning to WSL section of Getting Started
* FauxPark suggestion (thanks!)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* added adns5050 sensor code, as well as implementations for the Ploopy Mini and the Ploopy Nano
* fixed spurious scrolling issue
* recommended fixes for pr linting and cleanup
* Minor improvements to BM68RGB
* Add grave esc and LTO support
* Move comments to end of line
* Document the use of qmk script for compiling and flashing
* Revert arrow key flags back to mod
* Update keyboards/bm68rgb/bm68rgb.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/bm68rgb/bm68rgb.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove grave escape
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update tab spacing
Co-authored-by: Ryan <fauxpark@gmail.com>
* Reverted make default
Co-authored-by: Ryan <fauxpark@gmail.com>
* Reverted make flash
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: filterpaper <filterpaper@localhost>
Co-authored-by: Ryan <fauxpark@gmail.com>
* update keyboards/helix/pico/keymaps/mtei/keymap.c
Stopped using the LAYOUT_kc macro. (this is response to #12160)
There is no change in the generated binary.
* small update pico/keymaps/mtei/keymap.c
This keymap for ANAVI Macro Pad 2 contains popular git commands
typed out and executed with a single key:
- left key: git commit -s
- right key: git push
Signed-off-by: Leon Anavi <leon@anavi.org>
* Add suspend wake functions for RGB Matrix
* Add suspension RGB functions to Planck/rev6 and Preonic/rev3
* Add suspend wake to Mark 65
* Revert changes to planck and preonic
* Remove changes to The Mark65
Co-authored-by: filterpaper <filterpaper@localhost>
* Improve upon the 'Caveats' section of the Layers and Mod-Tap documentation
* Update docs/mod_tap.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update docs/feature_layers.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update docs/mod_tap.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Added a line saying that remote desktop problems may also be mitigated by defining TAP_CODE_DELAY
* Update docs/mod_tap.md
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add a command to format json files
* change to work after rebase
* add test for qmk format-json
* add documentation for qmk format-json
* Update lib/python/qmk/cli/format/json.py
* initial rgb driver fix
* added underglow LEDs and fixed typo in RGB locations
* removed test code
* added my key maps
* updated rgb keymap to work with changes
* refactored my code to make it more maintainable and updated keymaps.
* added GPL licence
* Turned off matrix scan rate debug info
* added checks if RGB matrix is enabled to fix errors when building keymaps without RGB matrix enabled
* Apply suggestions from code review by fauxpark
Co-authored-by: Ryan <fauxpark@gmail.com>
* Renamed led driver file to be less ambiguous
* Renamed is31fl3733 driver files to is31fl3733-dual
Co-authored-by: Ryan <fauxpark@gmail.com>
* Fix USER_PRINT on avr/atsam
* Update tmk_core/common/arm_atsam/_print.h
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Format code according to conventions
* Update lib/python/qmk/cli/generate/api.py
* Update lib/python/qmk/cli/generate/api.py
Co-authored-by: QMK Bot <hello@qmk.fm>
Co-authored-by: Zach White <skullydazed@gmail.com>
* Add support for qmk_configurator style aliases
* add the keyboard aliases to the api data
* add support for a keyboard metadata file
* make flake8 happy
* [Keyboard] YMDK YM68
Converted from a KBFirmware JSON file provided via the vendor's product listing.
PCB supports Backlight on B6 and RGB Underglow on E2, but the LEDs are not pre-soldered according to the PCB photos.
* update VENDOR_ID and PRODUCT_ID
* added Vanana / Vaguette Lite / Waaffle
* changed extra GPIO allocations of Waaffle and Vanana
* Apply suggestions from code review
changed layout name of vaguette Lite / requested by drashna
* Apply suggestions from code review
Requested keymap changes have been made.
* all changes requested by collaborators are made
* RGB config updated / keymap updated
* fixed vaguette lite info.json
* fixed vaguette lite info.json
* fixed vaguette lite info.json
* Apply suggestions from code review
request changes are made
* pre rename h
* vaguettelite reanmed to lowercases
* fixed vanana keymap
* Apply suggestions from code review
* changed Bootmagic key of VaguetteLite as suggested
* Updated via keymap of Vaguette Lite as suggested
* add vaguette lite 6.25 layout
* added vaguette lite noclew keymap
* updated vaguette lite 6.25u keymap description
* updated vanana default keymap
* updated keymap spacing
* reabased from the official repo
* Update keymap.c
fixed vaguette lite keymap
* Apply suggestions from code review
All the requested changes by a collaborator were made.
* updated info.json of Vanana and readme files of Vanana and waffle
* rename LAYOUT_waaffle to LAYOUT_ortho_5x16
Also adjusts the info.json data to put a visual gap between the extension and main PCBs.
* make rules.mk and info.json specific to rev3
Removes nckiibs/waaffle as a build target, as it redirects to the only extant revision in the repository.
* add controller board build targets
Adds build targets for Pro Micro and Elite-C builds, with appropriate defaults for each.
Running `make nckiibs/waaffle/rev3` defaults to a Pro Micro-based build.
* fork rules.mk to be version-specific
* remove pimentoso/paddino02 as a keyboard target
This commit makes it so QMK API doesn't identify pimentoso/paddino02 as a build target on its own, because there's no actionable code here.
* add image to readme.md
* unify rules.mk files to QMK AVR template
- remove Bootloader selection comment block
- sort Build Option rules
- unify inline comments
Recent changes to QMK Configurator's API have made it so an info.json file is required for QMK Configurator to know how to render the keyboard in question.
This PR adds info.json files for keyboards that did not have them, with a few exceptions for boards whose layouts I was unable to determine.
* add info.json file for 2key2crawl
* add info.json file for 40percentclub/4x4
* add info.json file for 40percentclub/5x5
* add info.json file for 4pplet/aekiso60/rev_a
* add info.json file for 4pplet/steezy60/rev_a
* add info.json file for 6ball
* add info.json file for 7c8/framework
* add info.json file for aeboards/constellation
* add info.json file for alpine65
* add info.json file for aplyard/aplx6
* add info.json file for arch_36
* add info.json file for arisu
* add info.json file for box75
* add info.json file for butterstick
* add info.json file for four_banger
* add info.json file for geekboards/tester
* add info.json file for handwired/2x5keypad
* add info.json file for handwired/412_64
* add info.json file for handwired/42
* add info.json file for handwired/aplx2
* add info.json file for handwired/brain
* add info.json file for handwired/cans12er
* add info.json file for handwired/ck4x4
* add info.json file for handwired/d48
* add info.json file for handwired/dactyl_manuform/dmote/62key
* add info.json file for handwired/daishi
* add info.json file for handwired/hexon38
* add info.json file for handwired/jot50
* add info.json file for handwired/jotanck
* add info.json file for handwired/jotpad16
* add info.json file for handwired/k8split
* add info.json file for handwired/myskeeb
* add info.json file for handwired/nicekey
* add info.json file for handwired/onekey
* add info.json file for handwired/postageboard
* add info.json file for handwired/riblee_f401
* add info.json file for handwired/riblee_f411
* add info.json file for handwired/rs60
* add info.json file for handwired/splittest
* add info.json file for handwired/trackpoint
* add info.json file for handwired/traveller
* add info.json file for hhkb_lite_2
* add info.json file for honeycomb
* add info.json file for ivy/rev1
* add info.json file for keebio/viterbi
* add info.json file for laptreus
* add info.json file for latin47ble
* add info.json file for latin64ble
* add info.json file for launchpad/rev1
* add info.json file for lets_split_eh/eh
* add info.json file for mechmini/v1
* add info.json file for meira
* add info.json file for meishi
* add info.json file for merge/iso_macro
* add info.json file for mschwingen/modelm
* add info.json file for pabile/p20
* add info.json files for pimentoso/paddino02
rev1, rev2/left, and rev2/right
* add info.json file for rgbkb/pan
* add info.json files for runner3680
3x6, 3x7, 3x8, 4x6, 4x7, 4x8, 5x6, 5x7, and 5x8
* add info.json file for sck/gtm
* add info.json file for splitish
* add info.json file for standaside
* add info.json file for ungodly/launch_pad
* add info.json file for xelus/trinityxttkl
* Revert "add info.json file for rgbkb/pan"
This reverts commit 280b89bc6157023a621a9864f5d74d59d62bb511.
* correct maintainer for ivy/rev1
* Fix keycode mappings for via and ensure they don't change within protocol
* Update keycodes
* Fix broken keyboards
* added the missing keycodes found in via
* Remove invalid keycodes
Co-authored-by: David Hoelscher <infinityis@users.noreply.github.com>
* Convert to config
* Convert to config
* Convert to config
* Convert to config
* Convert to config
* Convert to config
* Convert to config
* Convert to config
* revert changes
The code was moved to the "ferris" directory.
Fixes the following commands:
```
qmk compile ~/qmk_firmware/keyboards/ferris/keymaps/default/keymap.json
qmk compile ~/qmk_firmware/keyboards/ferris/keymaps/pierrec83/keymap.json
```
Addresses this issue:
https://github.com/pierrechevalier83/ferris/issues/5
* add support for Bbm68rgb
* pull request changes filled
* pull request changes filled(this time for real)
* added new line to files that did not have new lines at end of file
* updated modifier keys for rgb effects
* Update keyboards/bm68rgb/readme.md
* Apply suggestions from code review
* Apply suggestions from code review
* add nkro suppport
* Update keyboards/bm68rgb/rules.mk
* modified keymap to better correspond to physical layout
* updated comment style
* Adding Files for Zodiark
* zodiark.h and keymap.c layout corrections
* Apply suggestions from code review
Applied all suggestions from zvecr.
Co-authored-by: Joel Challis <git@zvecr.com>
* Applied all suggestions from fauxpark
Co-authored-by: Ryan <fauxpark@gmail.com>
* Defined matrix driver
* Update keymap with GPL2
* Added GPL2+ to All keymap.c, cleaned up config.h, and removed the rgbmatrixwip keymap
* Apply suggestions from code review
Removed the two lines from the config.h and changed to the smaller resolution picture on the Readme.
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Added VIA keymap
* Corrected VIA Keymap oled.c
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Added boston keyboard
* Added Boston keyboard
* Changed some keycodes, added layers, added encoder layer change, added RGB layer indicator
* Cleaned up whitespace
* Update config.h
Cleaned up whitespace
* Cleaned up whitespace
* Added keyboard_post_init_kb code for RGBLEDs so that they start on a defined color
* Modified layout so that split backspace right is at a more intuitive location for configurator
* Cleaned up whitespace, changed some labels
* Modified keymap to accommodate revised layout in boston.h
* Removed "on port C6" from Line 20 (committed suggestion)
* Removed "Encoder Enable" from Line 8 (committed suggestion)
* Removed empty #define DESCRIPTION as suggested
* Implemented lock LED changes as suggested by drashna
* Implemented lock LED changes as suggested by Drashna, changed WS2812 driver byte order
* Updated HSV color codes to reflect WS2812 byte order change
* Implemented suggestion from noroadsleft
* Implemented suggestion from noroadsleft
* Updated readm.md per suggestions from noroadsleft
* Update keyboards/boston/readme.md per noroadsleft's suggestion
* Removed empty layers from default keymap
* Stripped empty layers and much code from default keymap ; moved to RGB Light Layers keycap
* Support for XO87 solderable version
* cleanup
* Remove abandoned code
* replaced KEYMAP with LAYOUT and moved LAYOUT macro to solderable.h. deleted unneeded files.
* Update keyboards/monstargear/xo87/solderable/keymaps/via/keymap.c
* update info.json with missing keys
* Apply suggestions from code review
* Apply suggestions from code review
correct layout macro
Keymap Minivan: configurable dual layout, many symbols, speed/text-size measuring
* Made center led color follow last activated layer color. Some led code clean up
* Reordered the _RAR layer, also putting GUI on the _ACC layer.
* Some issue with _FUN (see keymap.c FIXME), removed _FUN nested 'go to layer' key on _FUN.
* markdown formatting
* Update readme about _FUN top row issue (see keymap.c at XXX)
* Sentence order final bit was wrong by topic. White space fiddles.
* Minor comment editing
* minor comment adjustments
* leds are not modifiers, moved
* _FUN persistance on base layer only (XXX)
* The up/left to go to _LTR layer, now always goes to BASE (_LTR or _DDL).
Led indicators refldect this. No _DRA hold on base layer but _ACC. No
one shot to _FUN layer (seemed to make things confusing), but a TO().
* Some chatter about how to configure this map to your needs.
* language fixing
* Tried to make sense explaining how to access the descramble.
* language fix
* Seems there was a stale CSET_LTR/.*DDL, should be BASE_LTR/.*DDL, fixed.
* language, blabla
* Corrected stale _LTR into BASE
* Some documentation finetuning and trying to make it simple to understand
* language fixing
* language fixing
* Doing the utmost to explain it in a way I understand it too.
* language fixing, going ultra-verbose
* language fixing and formatting
* language fixing
* language fixing, formatting
* attempt to simplify explanations as much as possible
* added License to keymap.c (GPL), noted that _ACC and _DRA need work to
function in 'descramble' mode
* fixes regarding layer order, adding two layers, started on descramble
layers for _ACC and _DRA Unicode
* Noted some coming changes about F-layer and more descramble.
* changed globals to type 'bool'
* Changed F-layer by removing pre-modifier F keys, moved BASE direction
switches, added new incomplete descramble layers
* _FUN layer changes (comment fix)
* Led color fixes. Changed order of layers in the source (no user consequence).
* Added copyright authors (hope that is correct in GPL style/requirements).
* Switched on BASE layers the keys to activate _MOV with leftside _NSY:
more harmoneous, and _MOV can also be held by right hand.
* Follow Quantum indentation style more (mostly).
* On _NSY & _DDN, Tab follows _LTR. '-' moved to LShift, '.' moved, ','
created, shift(tab) removed.
* Added Linux Unicode input mode Accented characters on layers _DDA, _DDD
* added to Todo
* Added ijIJ to _ACC and _DDA layers (2nd last letter of Dutch alphabet).
* add todo point about navigation, fix -> "8th key"
* added 「」《》 to _DRA and _DDA
* Added 〇, ƒƑ. Altered Nav clusters with paging on outside, added thumb Page up/down to _MOV, brought _REV in line with recent _NSY changes (tab,-,enter,dot,comma). Harmonized tab on _Mov with other layer tabs (also a move command, moving cells).
* Added super- and sub-script for numbers on _DRA, _DDD.
* Added quotation marks „ “ ” to layers _DRA and _DDD.
* Added °〇•· to _DRA, _DDA
* § as an enumeration grouped with • (bullet), · as possibly math (middot or multiply) grouped with ±.
* Changed numbers to be on home-rows both hands, because thumb layer key does
not interfere alternating between hands for longer numbers (previous
reason for one-handed numbers). The unshifted symbols went left 2nd row,
because then the shifted versions can be accessed with shift if the
layout is replicated on a Pok3r (which is non-programmable right hand 2nd row.)
The logic has been harmonized with layers _DDN, _DRA & _DDD, _FUN, which
have number(-like) keys. It seems better this way. The symbols are layed
out more spaciously, each finger now does two symbols (2nd row, 4th
row). The numbers are more like they normally are, which feels more
natural, and should even the load between both hands and help with
alternating between hands when typing numbers.
Reason to change was looking into pressing ;, q, j, with ring-, middle-,
index-finger (moved one to the right from default Dvorak), because the
stagger makes it easier to reach that way, less loss of home row contact,
bending fingers more straight up and down. Downside became that left
index type 5 numbers, and that the normal finger matching (0 is pinky,
etc) was lost. With the new layout these potential problems are also resolved.
* Made descramble _DDN, _DDL representation show both raw and resulting layouts.
layouts.
* Added arrows, fleur and heart on _DRA and _DDD.
* Changed _FUN layer switching to incorporate the 'descramble' system
seemlessly. The 4 layer with a descramble twin will switch to either
depending on the descramble mode.
* Descramble mode with normal Unicode layers mostly done, except costum LT() to share the key with Delete/Alt on _DDL.
* Changed descramble mode keys to be just one on a cycle. Added full set
of Alt/Control/Shift multimodifiers to `_FUN` layer.
* Changed descramble mode keys to be just one on a cycle. Added full set
of Alt/Control/Shift multimodifiers to `_FUN` layer.
* format fix
* Descramble cycle key moved from row 1 to row 4 far right, to avoid
accidental press,
* The 'descramble' mode with normal Unicode encoding finished. Fixed
mistaken non-transparent key on _DRA and _DDD, removed tab from _RAR.
* stale layer comment fix _LTR/_DDL
* New layer-tap timed keys proved unreliable, longer tap term fixed it.
* The _FUN layer is a one-shot layer for the F-keys, but that can be toggled by the FUN< key on the _FUN layer (top row, 3rd).
Some additions to the readme.
* Comment improvements (layout tables)
* minor
* Made #defines to allow a user to easily switch to a WASD arrow layout.
* Added keys to switch leds on/off, to _RAR layer. Fixed wrong comment on 'APP' key in _RAR.
* comments fix regarding MLed, SLeds
* Added BASE to same key as _FUN on base layer, except layers with numbers/symbols.
Removed capital ƒ, and moved ± to that key. Added … on old spot of ±.
Some readme language editing, adding something about other keyboards, etc.
* small language fix
* Config.h: Removed unused #defines.
Readme: minor edits.
* minor language edits.
* Minor comment edit.
* Minor language fix.
* Minor language style edit.
* Removed unnecessary section 'personal remarks'
* Changed the top row in _DRA and _DDD. Super-/sub-script parenthesis to that location on _NSY, added currency symbols, reduced emoticons.
* minor formatting
* Added LGUI and RGUI on the _DRA/_DDD layer(s).
* Put RGUI on the base layer, on the _FUN layer switch key. This probably causes side-effects on
systems without where RGUI is not merely a modifier.
* Changed _FUN toggle on BASE to Rshift, because RGUI on some systems has a consequence when tapped by itself.
* Changed LGUI and RGUI around because LGUI is mostly used and on BASE layer. Some edits to last part of readme.md.
* Minor language fixed (L/R-GUI, use-case).
* some more blabla on use case of the map generally
* Changed name KC__[LR]GUI to KC__[XY]GUI for clarity wrt switching them.
* Removed left-arrow on Alt on _ACC and _DRA, for faster use with pointer device.
* Added the same system as is on RShift, to LShift, pointed it to _MOV layer.
* Changed left shift layer toggle to _DRA, because it has uncluttered shift, alt, control, for using those with a pointer device (mouse, stylus).
* Changed base layer left-shift tap from _DRA to _MOV, because _MOV toggled can be convenient generally, and it is a less dangerous layer to accidentally press, and it makes more sense to activate the navigation layer when editing in 3D software.
* The Power keys on _RAR now require Shift to be activated (accident prevention).
* fiddled with title
* more title fiddles
* Added RGUI on _FUN for future proofing the layout, harmonizing layers.
* Added ',' on _REV (number fraction division). Minor fix to documentation format.
* title fiddle
* Added LGUI, RGUI to _RAR, to harmonize with other layers and for potential future uses.
* Changed unnecessary transparent keycode on _AcC and _DDA to be 'nop', minor comment fixes.
* Added on _DRA and _DDD: ─━┄┅.
Fixed a bug in led layer colors (forgotten 'else', causing wrong color for _DDD).
* Some changes to conform to QMK readme.md standards (more necessary).
* Changed _REV into a numbers pad layer called _PAD, put on Lshift in BASE.
_REV layer (not used anyway) replaced with a layer that is basically
a layer where symbols that exist on _NSY (mostly) and on _LTR (few)
are existing in the same locations, but in the number pad variant of
that symbol. The goal is to make it easy to find, it is not meant for
single hand access quickly. The use is to deal with special shortcuts
like Blender has, which differentiate normal and numpad numbers/symbols.
For quick access it was put on the left shift in BASE layer.
* Added navigation arrangements to _PAD. Changed location of shift on _RAR.
The numbers on numpad are easy to find, but when these keys are in their
navigation variant with numlock on it becomes almost impossible. There
was room on the map to add an arrow row, and a row for the remaining
navigation keys, hence they where added. They are in a left handed
order, because there already is a right handed order on _MOV.
It still proved possible to accidentally trigger Power, due to erroneous
hitting 'shift' in BASE and then messing around by accident. With shift
on (BASE) space in _RAR, accidents should be reduced further, since it
is a combination never used.
* Added Tab on _ACC and _PAD
To facilitate Control-Tab (a blender shortcut). On _ACC the Tab is in its
correct place. On _PAD it messy because not on its correct place. Leaving
it there for now: easier to access Tab+Control with left hand only on the
modifiers in _PAD, and other hand on a pointer device. Tab has a potential
use to jump input cells, which may be used in combination with a numpad.
* _MOV layer: switched default layout to trangle navigation layout.
This only required to set the already existing #defines. I found
the flat layout not intuitive, the triangle layout has no left/rigth hand problem.
The higher buttons for the mouse where not correctly ordered, so they where re-ordered.
* Triangle navigation by default. Added pictures of layout to readme.md
* Layer names on images.
* Changed image for layer _DRAW slightly.
The shifted symbol to the lower right.
* Image for _PAD corrected for no-action and Tab.
* Added a paragraph about why this layout is good to use.
* removed 'modifiers' paragraph
* Some text improvements in paragraph on what is good about this layout.
Fiddle on the title as well.
* Added Del on _DRAW layer.
Some minor text fiddles here and there.
* Removed word "descramble" in image layer _RAR.
* Improved key 'sticky' and altered image size (test).
* Rescaled image for layer FUN
* Unicode in its own file. Bug fix: _DDA 'ï' printed a capital.
Upon a suggestion from QMK Discord #programming, the macros and
unicode is put in a separate file, because keymap.c got large.
An erroneous numerical value for ï was fixed.
Author e-mail is updated to a new e-mail adres.
* Added an image to illustrate 'descramble' mode.
* Changed explicit e-mail to link, to reduce spam bot trolling.
* Added a Qwerty+Dvorak compile time version.
It seemed the overall design (accented, Unicode, stuff) could be useful
for Qwerty typers (of which there are so many). This was done by #if(n)def
out/in a fair amount of code here and there, and creating 4 replacement
layers in a new file qwerty_dvorak.c, also with its own readme in
qwerty_dvorak.md. The 'descramble' switch system is re-used here to
switch from Qwerty to Dvorak.
The new code is put in qwerty_dvorak.c, which starts with an extensive
comment about why and how it works.
Fix: Docs, a stale "_MOV" was replaced with "_PAD" in the readme.md for _DDL.
* Changed image hosting.
Downtime, problems registering: resorting to my own domain.
* minor text order changes
* Some text improvements.
* Added a compile option to easily change what layer is active on startup.
This layer can be plain Dvorak or 'descrambled' Dvorak, if
QWERTY_DVORAK is not set. It can be Qwerty or Dvorak if it is set.
Just some simple #define statements.
* Added graphics for Qwerty+Dvorak, and improved documentation.
Added the whole set of layers also to qwerty_dvorak.md, because
it seemed it would get even more confusing to have a user cross
reference it between the two files.
* Some simple text improvements
* Numbers/symbols layer keys on BASE to DRAW when both pressed.
The two keys besides the space bars go to DRAW layer when pressed
simultaneously. (This is inspired on the Planck's 'adjust' layer,
pressing both 'lower' and 'raise' together.) All layers can now
(relatively) comfortably be reached. This change was necessary
because it was cumbersome to reach the DRAW layer with the right
pinky and then type with the right hand. _RAR is now not super
easy, but it is a 'rare' layer anyway.
* Added compile + flash section in readme.
* Corrected documentation: 'mouse on ... hand'
* Removed up/down arrow ⮙⮛ on _DRA and _DDD, because the hex file was too large.
Due to pulling the master repository, changing nothing in this keymap, the
code compiled as 2 bytes too large, where before it had been 2 bytes left free.
Some compile options have been created, to make it easy to cut out up/down
arrow on the 'descramble' _DDD layer, and/or the normal _DRA layer, and/or
dashes ┄┅ on the 'descramble' _DDD layer. The 'normal' layer cut out of arrows
yields little benefit, but it keeps all layers exactly the same between 'descramble'
and normal mode. For Qwerty compilation, you will want to not cut out anything,
requiring to edit the user compile options in keymap.c (top).
* Resolved size issue with QMK #defines, re-instated ⮙⮛, removed RGUI on _FUN.
Various #defines tested to reduce space, NO_ACTION_MACRO NO_ACTION_FUNCTION
worked. Therefore the cutting out of the up/down arrows was no longer
needed. The #defines to easily remove them have been left in place.
RGUI made _FUN confusing with the multi-modifiers, thus taken out. Multi-
modifiers now logically cascade without skipping a key.
* Improved image files with led colors and some tweaks.
* Updated graphics file for Dvorak in QWERTY_DVORAK compile option.
The led colors where not correct because the graphics for standard
Dvorak was being re-used.
* Fixed for re-instating arrow up/down for space.
* Activation marker on _FUN layer in documentation altered.
It looked like it was a symbol.
* Made startup layer explicit in code.
Startup layer follows 'descramble' on/off user #define setting.
* Marker for BASE activation for _PAD, _MOV: fixed.
There was a stale marker in the documentation layouts for _MOV: removed.
The same marker for _PAD was improved.
* Code optimizations suggested on pull request #8066https://github.com/qmk/qmk_firmware/pull/8066
Some things moved to config.h, rules.mk
Changed layer_on/_off to layer_move(..)
Removed a global variable, changed literal type on a function.
Code is now a lot smaller, hence removed readme.md entry on that.
Removed "not shown" on 'descramble' leds in qwerty readme (mistake).
* Compile option to change ƒ into €.
Since it's a west european keymap, maybe someone likes the euro currency on it.
(It was not on it because I don't like ...)
* default to ƒ on keymap
* Removed print sheet for layout *.odt file.
Changing this to text/markdown seems to reduce the use of this file
to a point that it may be better to delete it. There is also the
graphics now, which might be better to print.
* Updated the seller/maintainer of the board to: The Key Dot Company LLC.
https://thekey.company/blogs/blog-updates/thekey-company-acquires-minivan
* Changed external links to website to plain text.
The markdown link is caught by the github cammo system.
* Last free spot on the map made easy to configure.
One spot was still free (Unicode _DRA/_DDD layer). This puts a #define
on top of unicode_macros.c, to make it easy for a user to put in their
own symbol.
Put placeholder 🛠 in there. That symbol is not represented in the
documentation (maybe it should, it is a nice symbol).
* Removed space saving #defines.
These became obsolete clutter, now that there is enough space thanks to
LINK_TIME_OPTIMIZATION_ENABLE.
* Added tokens to simplify compiling for 45/46 keys.
An attempt to make it easy to switch on a #define between
various hardware configurations (44, 45, 46 keys) failed.
This: #define J1 , KC_A // seems to have failed to be
recognized as a key definition.
error: error: macro "LAYOUT_command" requires 45 arguments, but only 44 given
Left in are some code tokens (J1-J4) and #defines that need
at least bulk replacement in keymap.c and optionally qwerty_dvorak.c,
to compile for such hardware configurations. It would be nice
if this could be done better.
* User can easily compile for 45, 46 hardware keys.
Added some #ifdefs around optional keys in the keymap, to allow
compiling for 45 and 46 keys. Left the earlier made code with the
J1_J2 etc. tokens, which could still be used to port the map to
a board with even more keys. This fixes earlier mentioned problem.
* Arrow cluster for 'arrow' hardware configuration.
This is a user configurations option in the keymap.c, to have
an arrow cluster around the additional key for 'arrow' hardware.
The arrow cluster is however not on the base layer (no room). The
additional key is used to switch to the _MOV layer. There it becomes
a down arrow in the arrow cluster.
To make this work with the default _MOV layer, the right hand
keys on the 2nd row where moved one spot to the left, for the 'triangle'
arrow configuration (mouse right). This is a trivial change.
There was a bunch of language improvements to the documentation,
including graphics.
The symbol 🛠 is now listed.
The program seems to be reliable, as far as used and tested.
* Correction of mark-down formatting.
_MOV layer 'arrow' cluster documentation rendered incorrectly
(attempt to add newline).
* Markdown formatting mistake correction.
Adding a newline at 'Layers (text)' chapter.
* Moving the graphics about 'arrow' to topic.
The graphic explaining what 'arrow' with arrow cluster means,
should be where that is mentioned under compile options.
* Editor token J3_J4 moved to avoid arrow cluster.
If one wants to insert a key by bulk replacing J3_J4, and has
activated the 'arrow' layout arrow cluster, this new key would
be inside the arrow cluster, hence it was moved to the left.
* Æstethics of image 'arrow' layout, arrow cluster.
Shading corrected/nicer.
* Corrected image link in readme.md
Illustration 'arrow' layout, arrow cluster.
* Fix: Toggle to BASE layer leaked. South-paw key.
When toggling to a non-BASE layer, either on the _FUN layer or
using the 'arrow' cluster for 'arrow' layout, on the BASE layer to
toggle to _MOV, the layer changed on the down-stroke, causing a
character to leak. These layer switch macros now alter layer on the
up stroke.
There seems to have been an accidental code deletion: #define MORE_key1.
This defines what the additional hardware key for 'South Paw' ('Command')
should be.
* User compile option comments easier to read.
The phrases "uncomment" and "comment out" are confusing.
Replaced by _activate_ and _remove_.
* Put user compile options back to default Minivan.
Accidentally left the compile options for number of Minivan keys
in the wrong state while git pushing.
* Rewording a comment in the user compile options.
Clearer language.
* Leds indicate Caps/Num-lock.
Leds green/blue switch depending on numlock for numbers-pad layer _PAD.
BASE layer led brightens when capslock is on.
* _PAD had the wrong period, fixed.
_PAD layer had the KC_DOT instead of KC_KP_DOT.
* Options for navigation keys arrow hardware key.
Compile options added to have a complete navigation cluster around
the additional hardware key for 'arrow' layout, both for triangle
left handed arrows and flat right handed arrows.
* Added _FUN layer in text Qwerty.
_FUN text layer was by mistake missing/deleted in the qwerty-dvorak readme.
* Added graphical visualization of all layers.
* Graphics: _RAR 'Capslock', _NSY '~' corrected.
Text representation of layers was correct, graphics corrected.
* Compile Option arrows in a vi(1) editor layout.
Vi(1) is a much loved editor, with its own peculiar arrow layout
on HJKL (as it appears in Qwerty). It seems possible some Qwerty
vi users might find it fun this way for regular arrows as well.
The 'arrow' hardware layout, compiled with arrow cluster, follows
the vi(1) arrow arrangement.
* More layer overview graphics files for the readmes.
Added a '40% x 400%' to the 3D layer overview image (top).
Added overview of all layers in a readable way (Dvorak² only).
Added a guide to show where what is similar on layers. This should help with learning.
Added a graphic showing what key activates what layer.
Added graphics that show what layer subsets are active in certain modes (Dvorak² and Qwerty/Dvorak).
Fixed mistake: _Tab_ missing in layer `_PAD` graphics file.
* 'Tab' inserted in overview graphics for _PAD layer.
* Corrected mistake in similar layer keys.
LGUI on _ACC
* Added overview graphics for Qwerty/Dvorak.
Overview of layers, similar keys on similar layers, activation.
* Compile option to change ⮘ ⮙ ⮚ ⮛ into ☐ ☒ ☑ 🗹
Layer _DRA, _DDD. Checkboxes seem handy for lists. Set default on in
keymap.c. Pointers seem rarely useful. Right arrow sometimes as a bullet
point marker. All affected graphics updated.
* First overview image correction.
Last layer is not 'symbols' due to its numbers.
Some art improvement.
* Minor tekst correction (author Minivan config).
* Short features overview and git lib fix.
* note⁴ as example
* Improvements all over the place.
The keymap is now modular dual layout. There is a common system,
and there can then be two letter/numbers layer pairs be compiled
with it, which are separately defined and documented in ./bases…
files.
Speed measuring and text size counting added.
There is an additional Unicode layer, for a total of three.
The “descramble Dvorak” layer is now just a function, as was
originally intended.
* Wrong link to Dvorak manual, stray ‛r’ character.
* Splitting the layouts so they are not pairs of 4.
The layers had been configurable only as a set of a BASE and letter
layer with another BASE and letter layer: Dvorak + Dvorak² and
Qwerty+Dvorak.
Now Dvorak, Dvorak² and Qwerty can be individually configured, to
be on either the Default or Alternate spots in the dual layout
(Dvorak² only supports Alternate, due to its “_HALF_ descramble” mode).
* Added Colemak layout.
Some tidying up of documentation wrt DEF/ALT base layer identifiers.
Fixed missing ‛:’ on the graphics for Qwerty.
* stale letter
* fix modified submodules
* removed redundant code
testing twice for non-zero
* Speed measuring precision fix.
The calculation of “int speed;” caused great loss of precision.
* Added overview of layers by key.
Makes it easier to see the associations of meanings per key.
* Dvorak descramble by key overview
Forgot to add.
* Minor readme format fiddle.
* Graphics: blank keys are grey, fix one mistake.
* Compilation as a single layout.
Layer definitions _ALT_BASE and _ALT_NSY (enum) are simply #redefined
as preprocessor numbers equal to _DEF_BASE and _DEF_NSY (see user_config.h,
lowest reference to MINIFAN_SINGLE_LAYOUT).
* Single layout compile option
See user_config.h lowest reference to MINIFAN_SINGLE_LAYOUT for the why of the how.
* RShift toggles to _RAR when held ≥ 500 ms.
“Qwerty with arrows on BASE”, will need a key to _RAR layer.
It mirrors the behavior of LShift. It is generally useful.
Removed useless user options regarding LShift layer toggle.
It will have to be _PAD.
* Layer switch graphic update per last push.
Forgot to update the default base layer switching graphic.
* Preconfigured optional ‛Command’ hold key to _RAR layer.
This is a third way to reach the _RAR layer, useful if the furthest
right key on row 1 is changed to an uncluttered BASE layer arrow.
This further prepares the way for a Qwerty layout with arrows on BASE.
* Changed ‛Command’ hardware key to TG(_RAR)
MO(_RAR) doesn't work, because it doesn't follow a change in base
layers, which happens on _RAR.
* Corrected wrong all-layers-by-key upload readme.md
* More graphics = more fun: keycap view in readme.
Preparing to integrate a number pad base layer.
Shortened hold time for right/left Shift layer toggles to 200 ms.
* Too light grey for “1470” on three layout graphics.
* Added a numbers pad Base layout option.
This numbers pad layer is in the format of a numbers pad keyboard/cluster.
It has a second layer, which is normal for all Base layers. In this case,
the second layer provides sub-/super-script versions of the numbers, in the
same layout.
* Keycap view numpad improvements.
* Graphics: forgot to cut off southpaw/arrow on two keycap views.
* Preprocessor identifier for “MIT” Planck spacebar.
Trans-minivan preprocessor statements augmented with an identifier
which might work for a Planck keyboard with two unit spacebar.
At this point, the “trans minivan” code only could make porting
to other keyboards less of a chore. It remains untested. Only
visual inspection of the preprocessing regarding the amount of
keys in the layout has been done.
* Tweak of common layout graphic impression.
This would also allow indication of a number pad.
* Improved dual numpad layer & graphics.
All numbers/symbols seem to get affected by NumLock, hence they
all needed to show that in the graphic documentation. Tab was
removed in favor of Numpad ‛=’, and comma replaced by numpad-comma.
* Committing partial job on numpad Base layers.
Hardware problem here, don't want to loose the data.
* Three issues: header file, numpad Base, Tab key.
This should complete previous unexpected commit.
① Documentation and precedent for a base layer with its own header file,
base_NAME.h. This allows someone writing a new Base layer pair, to
(un)set user configuration options in user_config.h.
② Numbers pad Base layer added, different variants.
The common numbers pad also has a new optional layout (square), and can be
removed by user configuration option (because one might already compile with
the Base layer numbers pad)..
③ It turns out there was an easy solution to the Tab key anomaly.
Uncluttered Tab is now located both on BON and ACC layers, on intuitive
locations opposing Control, which is also in the right spot. Basic
modifiers for Tab works well now.
* Graphics for Base numpad single square: correction.
Showed wrong insertion key for 'command' / 'south paw' hardware key.
…
* ‛South paw’ default GUI. Graphics. TOC user config.
Made ‛south paw’ be GUI by default.
Improved graphics appearance.
Ordered options in user_config.h, added table of contents.
* User config cleanup & added a compact alternate.
The normal user configuration, which is heavily documented and
therefore a bit unwieldy, can now optionally be done in another
file, without any documentation.
* Base graphics fix, _ACC/_NSY hold switch option
* Added a Qwerty with arrows on base.
Added a graphic in readme for Dvorak descramble (for documentation predictability).
* Put `~ on the _BON layer.
① There was no uncluttered `~ available. On Qwerty Base Arrow
the `~ key got even more sidelined.
② Improved Qwerty Base Arrow manual.
* Option to harmonize Qwerty with Qwerty Base Arrow
Key ‛/?’ is different on Qwerty Base Arrow, which will lead
to typing arrows for people who have both kinds of Qwerty
running. This option adds this key in the same spot as where
it is on Qwerty Base Arrow, but only if Qwerty Base Arrow is
being compiled.
* See previous commit (Qwerty harmonization)
* Efficiency fix. +Workman layout.
Workman layout added.
Serious efficiency mistakes discovered and fixed:
① There was no check on Delete on Base layer, to see if another
key had been pressed. Fixed.
② The Shifts on Base did not provide a Shift for the _BON layer
accented characters. Fixed.
Fixing was painless, proving the code is stable and maintainable.
* Changed Tab/CTL on _ACC/_DRA, μ, T.O.C. readme.md
μ was forgotten (French), added on _ACC.
This caused Tab to get displaced and stacked with Control, which
ends up being better anyway. This also meant _ACC needed Left-Control,
and therefore _DRA needed to switch Tab and Control, because it needs
to complement _ACC with Right-Control (to be able to type all modifiers
with Tab).
➡ Overview graphics are not yet updated. _DRA and _ACC are now out of sync
in the graphics documentation. To be fixed soon.
Chapter on language support added in readme.
Table of Contents added to readme.
* Updated all graphics (_BON/_DRA Tab/Control/μ).
Some fiddles with readme.
* Led on/off at startup, RAlt on Base option.
It is hard to believe, but the todo que seems empty!
* Minor changes in readme.
* Minor documentation improvement (RAlt/_RAR).
* Minor changes readme.
Removed “not tested yet …”, because that becomes wrong once it is tested.
* Added a blank keycaps graphic.
* Lower saturation letters Dvorak-descramble keycap.
;-]
* One key change in personal keycap graphic.
;-]
* Forgot _NSY layer in keycap qwerty basearrow
* Moved speed/count startup setting in user_config.h
Moved to chapter startup settings.
(These last commits are more like some loose ends with the last
ongoing topics. It isn't active development, nothing new gets
started. If QMK requests more changes, even if it is a typo,
just let me know.)
* Travis Cl: “The LINK_TIME_OPTIMIZATION_ENABLE flag…
… has been renamed to LTO_ENABLE.. Stop.”
Changed it.
* Adds a link to external resources in readme.
A place to put gimp .xcf files if someone wants to
modify/port the keymap. Perhaps links to varieties
of Minifan on github. Maybe a video about the keymap,
and such. Stuff that doesn't belong/fit on github,
and is easy to update without pull requests.
* RGBLIGHT_ENABLE rules.mk fixed, leds off for nop
rules.mk RGBLIGHT_ENABLE can now be set to “no” without issue.
Compile option to have leds off in Default Base layer.
* Transparency bug fixed.
Default layer was not set. This remained a hidden mistake, until Qwerty
Base Arrow had a different layer hold key in one place.
* Graphics doc correction, L/Rshift toggle config
Qwerty Base Arrow fix: Keycap view showed unneeded and empty ‛South Paw’ key.
All layers by key shows 45 Minivan version, title said “44”.
Added user configuration options to alter what is on the short and long
toggle on Left and Right Shift.
* Improved “why this layout” in readme.
Wanted to add that numbers & symbols layer can be reached by both
thumbs. It seems quite a drawback if that is not possible, to
constantly need to hold down the same thumb, especially for programming ?
It seemed worthwhile to mention.
* Reduced size of readme, dvorak-descramble, todo.
Stuff got a bit out of hand.
* one letter typo
* renumbered readme, _fun_stay initialization
Renumbered readme chapters to start from 1 not 0. Other minor edits.
Sticky on/off for _FUN layer seemed to be unpredictable on startup.
* Letter Ñ (capital) fix.
I seem to remember messing with this recently,
must have damaged this letter :-(. Capital was missing.
* Bare bones base numpad all layer by key.
I seemed to have forgotten to hide the common layers for this version.
Which doesn't matter a whole lot but this is a bit better and as it was meant.
* Fix triggering of adjust layer in default lily58 keymap
* Remove unused extern
* Swap raise/lower in update_tri_layer_state call to match recommendation in PR checklist
### RGB Matrix support for split common ([#11055](https://github.com/qmk/qmk_firmware/pull/11055)) :id=rgb-matrix-split-common
Split boards can now use RGB Matrix without defining a custom matrix.
### Teensy 3.6 support ([#12258](https://github.com/qmk/qmk_firmware/pull/12258)) :id=teensy-3-6-support
Added support for MK66F18 (Teensy 3.6) microcontroller.
### New command: qmk console ([#12828](https://github.com/qmk/qmk_firmware/pull/12828)) :id=new-command-qmk-console
A new `qmk console` command has been added for attaching to your keyboard's console. It operates similiarly to QMK Toolbox by allowing you to connect to one or more keyboard consoles to display debugging messages.
We've updated the `qmk config` command to show only the configuration items you have actually set. You can now display (almost) all of the available configuration options, along with their default values, using `qmk config -a`.
The [Function96 V2](https://github.com/qmk/qmk_firmware/tree/0.13.0/keyboards/function96/v2) has also been added as part of these changes.
The codebase for the [Durgod K320](https://github.com/qmk/qmk_firmware/tree/0.13.0/keyboards/durgod/k320) has been reworked in anticipation of additional Durgod keyboards gaining QMK support.
Additionally, the `crkbd/rev1/legacy` keyboard has been removed.
### Bootmagic Deprecation and Refactor ([#12172](https://github.com/qmk/qmk_firmware/pull/12172)) :id=bootmagic-deprecation-and-refactor
QMK has decided to deprecate the full Bootmagic feature and leave Bootmagic Lite as the only remaining option.
This pull request changes the behavior of `BOOTMAGIC_ENABLE` such that specifying `BOOTMAGIC_ENABLE = yes` enables Bootmagic Lite instead of full Bootmagic.
If attempts to use Bootmagic functionality result in unexpected behavior, check your `rules.mk` file and change the `BOOTMAGIC_ENABLE` setting to specify either `lite` or `full`.
#### Tentative Deprecation Schedule
This is the current planned roadmap for the behavior of `BOOTMAGIC_ENABLE`:
- From 2021 May 29, setting `BOOTMAGIC_ENABLE = yes` will enable Bootmagic Lite instead of full Bootmagic.
- From 2021 Aug 28, `BOOTMAGIC_ENABLE` must be either `yes`, `lite`, or `no`– setting `BOOTMAGIC_ENABLE = full` will cause compilation to fail.
- From 2021 Nov 27, `BOOTMAGIC_ENABLE` must be either `yes` or `no`– setting `BOOTMAGIC_ENABLE = lite` will cause compilation to fail.
### Removal of LAYOUT_kc ([#12160](https://github.com/qmk/qmk_firmware/pull/12160)) :id=removal-of-layout-kc
We've removed support for `LAYOUT_kc` macros, if your keymap uses one you will need to update it use a regular `LAYOUT` macro.
### Encoder callbacks are now boolean ([#12805](https://github.com/qmk/qmk_firmware/pull/12805), [#12985](https://github.com/qmk/qmk_firmware/pull/12985)) :id=encoder-callback-boolean
To allow for keyboards to override (or not) keymap level code the `encoder_update_kb` function has been changed from `void` to `bool`. You will need to update your function definition to reflect this and ensure that you return a `true` or `false` value.
* Fix connection issue in split keyboards when slave and OLED display are connected via I2C (fixes #9335) ([#11487](https://github.com/qmk/qmk_firmware/pull/11487))
* Terrazzo: Fix wrong LED Matrix function names ([#12561](https://github.com/qmk/qmk_firmware/pull/12561))
* Apply the "NO_LIMITED_CONTROLLER_CONNECT" fix to atmega16u2 ([#12482](https://github.com/qmk/qmk_firmware/pull/12482))
* Enhancement of WPM feature ([#11727](https://github.com/qmk/qmk_firmware/pull/11727))
* Add Per Key functionality for AutoShift ([#11536](https://github.com/qmk/qmk_firmware/pull/11536))
* LED Matrix: Reactive effect buffers & advanced indicators ([#12588](https://github.com/qmk/qmk_firmware/pull/12588))
* LED Matrix: support for Split keyboards ([#12633](https://github.com/qmk/qmk_firmware/pull/12633))
* add setting to enable infinite timeout for leader key ([#6580](https://github.com/qmk/qmk_firmware/pull/6580), [#12721](https://github.com/qmk/qmk_firmware/pull/12721 "Fix bad PR merge for #6580"))
* Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx ([#12403](https://github.com/qmk/qmk_firmware/pull/12403))
* Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) ([#12600](https://github.com/qmk/qmk_firmware/pull/12600))
* Add support for STM32F446 MCU ([#12619](https://github.com/qmk/qmk_firmware/pull/12619))
* Add STM32L433 and L443 support ([#12063](https://github.com/qmk/qmk_firmware/pull/12063))
* Added OLED fade out support ([#12086](https://github.com/qmk/qmk_firmware/pull/12086))
* New command: `qmk console` ([#12828](https://github.com/qmk/qmk_firmware/pull/12828))
* LED Matrix: Effects! ([#12651](https://github.com/qmk/qmk_firmware/pull/12651))
* Add setup, clone, and env to the list of commands we allow even with broken modules ([#12868](https://github.com/qmk/qmk_firmware/pull/12868))
* LED Matrix: Documentation ([#12685](https://github.com/qmk/qmk_firmware/pull/12685))
* Add function to allow repeated blinking of one layer ([#12237](https://github.com/qmk/qmk_firmware/pull/12237))
* Add support for up to 4 IS31FL3733 drivers ([#12342](https://github.com/qmk/qmk_firmware/pull/12342))
* Convert Encoder callbacks to be boolean functions ([#12805](https://github.com/qmk/qmk_firmware/pull/12805), [#12985](https://github.com/qmk/qmk_firmware/pull/12985))
* [Keymap] Update to Drashna keymap and user code (based on develop) ([#12936](https://github.com/qmk/qmk_firmware/pull/12936))
* Add Full-duplex serial driver for ARM boards ([#9842](https://github.com/qmk/qmk_firmware/pull/9842))
* Backlight: add defines for default level and breathing state ([#12560](https://github.com/qmk/qmk_firmware/pull/12560), [#13024](https://github.com/qmk/qmk_firmware/pull/13024))
* Add dire message about LUFA mass storage bootloader ([#13014](https://github.com/qmk/qmk_firmware/pull/13014))
### Clean-ups and Optimizations :id=core-optimizations
* Overhaul bootmagic logic to have single entrypoint ([#8532](https://github.com/qmk/qmk_firmware/pull/8532))
* Refactor of USB code within split_common ([#11890](https://github.com/qmk/qmk_firmware/pull/11890))
* Begin the process of deprecating `bin/qmk` in favor of the global CLI ([#12109](https://github.com/qmk/qmk_firmware/pull/12109))
* LED Matrix: decouple from Backlight ([#12054](https://github.com/qmk/qmk_firmware/pull/12054))
* Move gpio wait logic to wait.h ([#12067](https://github.com/qmk/qmk_firmware/pull/12067))
* LED Matrix: Clean up includes ([#12197](https://github.com/qmk/qmk_firmware/pull/12197))
* Consistently use bin/qmk when that script is called ([#12286](https://github.com/qmk/qmk_firmware/pull/12286))
* LED Matrix: Additional common_features.mk tweaks ([#12187](https://github.com/qmk/qmk_firmware/pull/12187))
* LED Matrix: Fix up eeconfig code ([#12327](https://github.com/qmk/qmk_firmware/pull/12327))
* Big quantum_keycodes cleanup ([#12249](https://github.com/qmk/qmk_firmware/pull/12249))
* Fix up builds that are now too big for `develop` branch. ([#12495](https://github.com/qmk/qmk_firmware/pull/12495))
* [Keyboard] kint36: switch to sym_eager_pk debouncing ([#12626](https://github.com/qmk/qmk_firmware/pull/12626))
* [Keyboard] kint2pp: reduce input latency by ≈10ms ([#12625](https://github.com/qmk/qmk_firmware/pull/12625))
* eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. ([#12671](https://github.com/qmk/qmk_firmware/pull/12671))
* Change RGB/LED Matrix to use a simple define for USB suspend ([#12697](https://github.com/qmk/qmk_firmware/pull/12697), [#12770](https://github.com/qmk/qmk_firmware/pull/12770 "Fixing transport's led/rgb matrix suspend state logic"))
@ -47,73 +47,79 @@ Note that some of these pins are doubled-up on ADCs with the same channel. This
Also note that the F0 and F3 use different numbering schemes. The F0 has a single ADC and the channels are 0-indexed, whereas the F3 has 4 ADCs and the channels are 1-indexed. This is because the F0 uses the `ADCv1` implementation of the ADC, whereas the F3 uses the `ADCv3` implementation.
<sup>¹ As of ChibiOS 20.3.4, the ADC driver for STM32F1xx devices supports only ADC1, therefore any configurations involving ADC2 or ADC3 cannot actually be used. In particular, pins `F6`…`F10`, which are present at least on some STM32F103x[C-G] devices, cannot be used as ADC inputs because of this driver limitation.</sup>
<sup>² Not all STM32F4xx devices have ADC2 and/or ADC3, therefore some configurations shown in this table may be unavailable; in particular, pins `F4`…`F10` cannot be used as ADC inputs on devices which do not have ADC3. Check the device datasheet to confirm which pin functions are supported.</sup>
## Functions
@ -141,10 +147,10 @@ Also note that the F0 and F3 use different numbering schemes. The F0 has a singl
The ARM implementation of the ADC has a few additional options that you can override in your own keyboards and keymaps to change how it operates. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options.
|`ADC_CIRCULAR_BUFFER`|`bool`|`false` |If `true`, then the implementation will use a circular buffer. |
|`ADC_NUM_CHANNELS` |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`. |
|`ADC_BUFFER_DEPTH` |`int` |`2` |Sets the depth of each result. Since we are only getting a 12-bit result by default, we set this to 2 bytes so we can contain our one value. This could be set to 1 if you opt for an 8-bit or lower result.|
|`ADC_SAMPLING_RATE` |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. |
|`ADC_RESOLUTION` |`int` |`ADC_CFGR1_RES_12BIT`|The resolution of your result. We choose 12 bit by default, but you can opt for 12, 10, 8, or 6 bit. |
|`ADC_CIRCULAR_BUFFER`|`bool`|`false` |If `true`, then the implementation will use a circular buffer. |
|`ADC_NUM_CHANNELS` |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`. |
|`ADC_BUFFER_DEPTH` |`int` |`2` |Sets the depth of each result. Since we are only getting a 10-bit result by default, we set this to 2 bytes so we can contain our one value. This could be set to 1 if you opt for an 8-bit or lower result.|
|`ADC_SAMPLING_RATE` |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. |
|`ADC_RESOLUTION` |`int` |`ADC_CFGR1_RES_10BIT` or `ADC_CFGR_RES_10BITS`|The resolution of your result. We choose 10 bit by default, but you can opt for 12, 10, 8, or 6 bit. Different MCUs use slightly different names for the resolution constants. |
This command lets you connect to keyboard consoles to get debugging messages. It only works if your keyboard firmware has been compiled with `CONSOLE_ENABLED=yes`.
Connect to all available keyboards and show their console messages:
```
qmk console
```
List all devices:
```
qmk console -l
```
Show only messages from clueboard/66/rev3 keyboards:
```
qmk console -d C1ED:2370
```
Show only messages from the second clueboard/66/rev3:
```
qmk console -d C1ED:2370:2
```
Show timestamps and VID:PID instead of names:
```
qmk console -n -t
```
Disable bootloader messages:
```
qmk console --no-bootloaders
```
## `qmk doctor`
This command examines your environment and alerts you to potential build or flash problems. It can fix many of them if you want it to.
@ -131,6 +179,16 @@ Check your environment and report problems only:
qmk doctor -n
## `qmk format-json`
Formats a JSON file in a (mostly) human-friendly way. Will usually correctly detect the format of the JSON (info.json or keymap.json) but you can override this with `--format` if neccesary.
**Usage**:
```
qmk format-json [-f FORMAT] <json_file>
```
## `qmk info`
Displays information about keyboards and keymaps in QMK. You can use this to get information about a keyboard, show the layouts, display the underlying key matrix, or to pretty-print JSON keymaps.
**Note:** Parsing C source files is not easy, therefore this subcommand may not work your keymap. In some cases not using the C pre-processor helps.
**Note:** Parsing C source files is not easy, therefore this subcommand may not work with your keymap. In some cases not using the C pre-processor helps.
**Usage**:
@ -218,6 +276,18 @@ This command is directory aware. It will automatically fill in KEYBOARD if you a
qmk list-keymaps -kb planck/ez
```
## `qmk new-keyboard`
This command creates a new keyboard based on available templates.
This command will prompt for input to guide you though the generation process.
**Usage**:
```
qmk new-keyboard
```
## `qmk new-keymap`
This command creates a new keymap based on a keyboard's existing default keymap.
If you are using Bash 4.2 or later, Zsh, or FiSH you can enable Tab Completion for the QMK CLI. This will let you tab complete the names of flags, keyboards, files, and other `qmk` options.
## Setup
There are several ways you can setup tab completion.
### For Your User Only
Add this to the end of your `.profile` or `.bashrc`:
source ~/qmk_firmware/util/qmk_tab_complete.sh
If you put `qmk_firmware` into another location you will need to adjust this path.
### System Wide Symlink
If you want the tab completion available to all users of the system you can add a symlink to the `qmk_tab_complete.sh` script:
In some cases a symlink may not work. Instead you can copy the file directly into place. Be aware that updates to the tab complete script may happen from time to time, you will want to recopy the file periodically.
@ -8,7 +8,7 @@ To activate this feature, add `AUDIO_ENABLE = yes` to your `rules.mk`.
On Atmega32U4 based boards, up to two simultaneous tones can be rendered.
With one speaker connected to a PWM capable pin on PORTC driven by timer 3 and the other on one of the PWM pins on PORTB driven by timer 1.
The following pins can be configured as audio outputs in `config.h` - for one speaker set eiter one out of:
The following pins can be configured as audio outputs in `config.h` - for one speaker set either one out of:
* `#define AUDIO_PIN C4`
* `#define AUDIO_PIN C5`
@ -166,7 +166,7 @@ The available keycodes for audio are:
!> These keycodes turn all of the audio functionality on and off. Turning it off means that audio feedback, audio clicky, music mode, etc. are disabled, completely.
## Tempo
the 'speed' at which SONGs are played is dictated by the set Tempo, which is measured in beats-per-minute. Note lenghts are defined relative to that.
the 'speed' at which SONGs are played is dictated by the set Tempo, which is measured in beats-per-minute. Note lengths are defined relative to that.
The initial/default tempo is set to 120 bpm, but can be configured by setting `TEMPO_DEFAULT` in `config.c`.
There is also a set of functions to modify the tempo from within the user/keymap code:
```c
@ -291,7 +291,7 @@ You can configure the default, min and max frequencies, the stepping and built i
|--------|---------------|-------------|
| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | Sets the default/starting audio frequency for the clicky sounds. |
| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). |
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. |
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the highest frequency. Too high may result in coworkers attacking you. |
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. This is a multiplicative factor. The default steps the frequency up/down by a musical minor third. |
| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical, and `1.0f` will make this sound much like the 90's computer screen scrolling/typing effect. |
| `AUDIO_CLICKY_DELAY_DURATION` | 1 | An integer note duration where 1 is 1/16th of the tempo, or a sixty-fourth note (see `quantum/audio/musical_notes.h` for implementation details). The main clicky effect will be delayed by this duration. Adjusting this to values around 6-12 will help compensate for loud switches. |
@ -301,8 +301,7 @@ You can configure the default, min and max frequencies, the stepping and built i
## MIDI Functionality
This is still a WIP, but check out `quantum/process_keycode/process_midi.c` to see what's happening. Enable from the Makefile.
See [MIDI](feature_midi.md)
## Audio Keycodes
@ -319,114 +318,3 @@ This is still a WIP, but check out `quantum/process_keycode/process_midi.c` to s
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
Most keyboards have only one backlight pin which controls all backlight LEDs (especially if the backlight is connected to a hardware PWM pin).
In software PWM, it is possible to define multiple backlight pins, which will be turned on and off at the same time during the PWM duty cycle.
This feature allows to set, for instance, the Caps Lock LED's (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped Control in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on, as it is usually wired to a separate pin from the backlight.
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.