Including the `xB` suffix prevents qmk_compiler (and thus QMK Configurator) from compiling firmware for the Wete.
Rolling this change back until we work out a long-term solution for the suffixes.
* Add VIA support for Prime_L
* Update keyboards/primekb/prime_l/v1/config.h
* Add prime_exl_plus keyboard
* Temporary removal of prime_exl_plus
* Add Prime_EXL Plus, including VIA support
* Update keyboards/handwired/prime_exl_plus/readme.md
* Update keyboards/handwired/prime_exl_plus/readme.md
* Update keyboards/handwired/prime_exl_plus/readme.md
* Update keyboards/handwired/prime_exl_plus/rules.mk
* Update keyboards/handwired/prime_exl_plus/info.json
* Update keyboards/handwired/prime_exl_plus/info.json
* Update keyboards/handwired/prime_exl_plus/info.json
* Update keymap.c
* correct spacing of keymaps and layout macro. move indicator logic from user space to keyboard space
* further corrections to keymaps and layout macro.
* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c
* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c
* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c
* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c
* Update prime_exl_plus.c
* small edit to prime_exl_plus.c
* [Keyboard] Add Wete
* Fix width and height in Wete info.json
* Use default board files, core backlight, and disable RTC
* Disable I2C, SPI. Minor corrections
* Keymap typo update
* Add LAYOUT_all to info.json
* Remove extra spaces in README, delete matrix_*_kb functions
* Fix layout errors in wete.h, and some minor corrections
* Actually fix LAYOUT_all in info.json
* move lighting code from VIA into the keyboard's .c file so that every keymap can access it
* after some serious conversations with default and wkl, they agreed to let me modify their keymaps. They weren't too happy
* Add link to "Useful functions" in macro docs
Help people find additional features they can activate within a macro
* Update docs/feature_macros.md
Co-Authored-By: Drashna Jaelre <drashna@live.com>
Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* add a VIA keymap for kbd75
* rev2 is a completely different pcb allowing a NEW layout, setting this to have a different product id so users don't get confused when they're able to enable numpad layout on rev1 VIA
* Update keyboards/kbdfans/kbd75/rev1/config.h
Co-Authored-By: Joel Challis <git@zvecr.com>
* Update keyboards/kbdfans/kbd75/rev2/config.h
Co-Authored-By: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* Added custom keymap
* Update keyboards/preonic/keymaps/elisiano/keymap.c
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Address PR comments and added CTL_T(KC_ESC) on other layouts as well
Co-authored-by: Ryan <fauxpark@gmail.com>
* correct indicator light states.
function of indicator lights was inverted. these changes correct that.
* flesh out keymaps pre production
* Enable extrakey in rules
* Prime_BLE initial commit
* Initial commit for Prime_L V2
* Update info.json
correct key spacing.
* update copyright
* Update readme.md
* Inital commit
* updates before PR into QMK master
* Drop Prime_EXL Plus from PR. Make requested changes to Prime_L V2
* Rename keyboards/primekb/Prime_l_v2/config.h to keyboards/primekb/prime_l_v2/config.h
* Rename keyboards/primekb/prime_l_v2/config.h to keyboards/primekb/Prime_l_v2/config.h
* remove directory Prime_l_v2
* re-submit with proper folder name.
* Restructure /primekb directory to merge /prime_l and /prime_l_v2
* made changes requested by QMK reviewers
* Update keyboards/primekb/prime_l/v1/readme.md
* Update keyboards/primekb/prime_l/v1/readme.md
* Update keyboards/primekb/prime_l/v1/readme.md
* added via keymap for kbd8x mkii
* adding via to kbd8x mk2
* modified via kbd8x mk2 keymap
* enable LTO kbd8x mk2 via keymap
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* removed backticks kbd8x mk2 via keymap
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* coding style cleanup, enable/disable misconfigured/broken features
* add SCLN missing, compile with backlight PWM warning
* edit json
* new info.json from KLE
* new info.json from KLE using QMK converter
* changes notes
* notes in pull request
* missing line in comments
* line wrap
* Update keyboards/kc60se/config.h
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/keymaps/default/keymap.c
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/kc60se.h
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/rules.mk
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/info.json
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* comment back in rules.mk
* add 2 iso layouts and keymaps, 1 ansi kemap, compiled and tested
* keymaps and info
* Delete keymap.c
not ready, I need to get a few iso characters corrected
* Delete keymap.c
not ready, need to get a few iso character define correctly
* Update info.json
Bspc to Backspace
* no unicode
* gui_on and gui_off in readme
* Update keyboards/kc60se/rules.mk
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* remove is_command
* Update keyboards/kc60se/config.h
remove comment
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/kc60se/config.h
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/kc60se/readme.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* remove \\ in keymaps
* Update keyboards/kc60se/info.json
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/info.json
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/info.json
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/info.json
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/kc60se.h
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/kc60se.h
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/kc60se.h
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/kc60se.h
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/kc60se/info.json
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* set led pin b2 to output mode in matrix_init_kb(), toggle it in led_update_kb()
* Update config.h
I had commented FORCE_NKRO out.. WHy did it com back?
Co-authored-by: Check your git settings! <chris@chris-laptop>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Use pathlib everywhere we can
* Update lib/python/qmk/path.py
Co-Authored-By: Erovia <Erovia@users.noreply.github.com>
* Update lib/python/qmk/path.py
Co-Authored-By: Erovia <Erovia@users.noreply.github.com>
* Improvements based on @erovia's feedback
* rework qmk compile and qmk flash to use pathlib
* style
* Remove the subcommand_name argument from find_keyboard_keymap()
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* [keymap] ninjonas keymap updates
* [refactor(kyria)] updating keymap for numpad layer to be transparent rather than ignores
* [keymap(lily58)] added numpad layer
* [keymap(crkbd)] added numpad layer activated through tapdance
* [fix(8170)] fixing code review changes requested by noroadsleft
* [fix(8170)] updating comments and .md files to use 'Cmd' instead of and ⌘
* add detail-guide part
* some updates for easy reading
* some updates for easy reading
* some updates for easy reading
* some updates for easy reading
* some updates for easy reading
* some updates for easy reading
* some updates for easy reading
* some updates for easy reading
* update file based on comment
* update file based on comment
* update file based on comment
* update git command in header
* update files based on comments, and update git command in header
* update file based on comment
* update file based on comment
* update file based on comment
* update file based on comment
* update file based on comment
* update file based on comment
* update file based on comment
* update file based on comment
Co-Authored-By: shela <shelaf@users.noreply.github.com>
Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Clean up checks and logics that are unnecessary due to MILC updates.
Use pathlib instead of os.path for readability.
Use the 'pytest' keyboard for the tests.
Add community layout for 'handwired/onekey/pytest' so we can test
community layouts.
Instead of using regexes and globbing to find the rules.mk and keymap.c
files, walk the directory tree to find them.
Also, do away with the concept of revision.
The command now return all keymaps that's buildable for a
keyboard/revision. If the base directory of a keyboard does not contain
a 'rules.mk' file, nothing is returned. If the base directory contains a
'keymaps' directory, those keycaps will be returned for every revision.
* Adding VIA support for 40percentclub/luddite
* Update config.h
* Update rules.mk
* Delete config.h
config.h was created to override the "default" of RGBLED_NUM 8
deleting the file to keep with defaults
* Removing block and comment as suggested
* Update PRODUCT_ID
Changing from:
#define PRODUCT_ID 0x0A0C
To:
#define PRODUCT_ID 0x4C55 // "LU"
* Changing Vendor ID
Changing Vendor ID from:
#define VENDOR_ID 0xFEED
To:
#define VENDOR_ID 0x3430 // "40"
* Use TAPPING_TERM constant (and redefine value to 200ms)
* change TAPPING_TOGGLE to 2 to require two taps to lock in layer 4
* add support for Shift-Command 3/4/5 key combinations that are used in
macOS Catalina
* avoid false positive tap detecion for RMOD3 when the whole sequence of
pressing RMOD3, tapping another key and releasing RMOD3 took less than
TAPPING_TERM milliseconds.
* replace SEND_STRING with tap_code()/tap_code16(), saving ~860 bytes in
compiled firmware size.
* VIA support for Think6.5
* VIA support for Think6.5 Hotswap
* VIA works better with separate layout options
* Remove the colours used to help develop it in KLE
* Pay better attention to the JSON linter
* Update Think6.5 PRODUCT and remove VIA JSON defs
* Fix out of bound OLED font access
The default font is 1344 bytes, or a total of 224 glyphs (each 6-bytes wide).
OLED_FONT_END defaults to 224, which if used will then index off the end of
the font array. So either the documentation or code is wrong.
Instead of figuring out the rewording of the documentation, just change
the OLED_FONT_END default value to 223, to match the documentation and code.
* Add static assert to check array size
Build bomb if the font array size doesn't match to the defines.
* VIA Support for the Idobo (ID75)
* Implemented the requested PR changes
* Readme was pointing to the wrong board
* Fixed Product ID
* Fixed Manufacturer name
* Better Vendor ID
Using the two 8-bit ASCII values from the keyboard name.
* Removed Bootmagic Lite as enabled anyway by VIA
* update zh-cn translate
Timestamp was added at the end of the document, it can help me manage version easier.
* fix _summary.md to utf-8
* fix _summary.md with vscode
* initial commit of VIA Support
* update PRODUCT (and MANUFACTURER) per VIA docs
Reference: https://caniusevia.com/docs/configuring_qmk#change-product
Updated MANUFACTURER so it matches what the PRODUCT says.
* enable Link Time Optimization per mechmerlin
* revert change to USB Product Name
* add two empty layers to via keymap
VIA keymaps need four layers in flash.
* correct the layer indexes
Start from 0, not 1.
* Drop in old files
* Make a blank template keyboard to refresh ancient files to latest config
* Update keymaps files to new format
* Remove chunks of config asked for removal in previous pullreqs
* Remove split pin option from config
* Update rules.mk to latest version
* Remove unused functions from polaris.c
* Add via keymap
* Build basic tsangan keymap; add QMK configurator info
* Remove temporary template
* Update keyboards/ai03/polaris/config.h
* Update keyboards/ai03/polaris/readme.md
* Update keyboards/ai03/polaris/readme.md
* Update keyboards/ai03/polaris/readme.md
* Update rules.mk
* Fixes as per pullreq
* Update keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c
* Update keyboards/ai03/polaris/polaris.h
* Update keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c
* Update keyboards/ai03/polaris/info.json
* Update keyboards/ai03/polaris/keymaps/testing/readme.md
* Compile error if ONESHOT_TIMEOUT defined but oneshot disabled
When ONESHOT_TIMEOUT and NO_ACTION_ONESHOT are both defined, this code
fails to compile.
Wrap the one usage of ONESHOT_TIMEOUT that is inconsistent with the
rest so all usages are properly wrapped by a check of NO_ACTION_ONESHOT.
* Run file through clang-format
Co-authored-by: Ted M Lin <tedmlin@gmail.com>
* refactor keymaps
Create one keymap for each layout macro.
* remove config.h for default keymap
There's nothing in it.
* update readme
- use the new list format
- use a smaller version of the keyboard photo (does the readme really need a 14MP image on it?)
* correct indicator light states.
function of indicator lights was inverted. these changes correct that.
* flesh out keymaps pre production
* Enable extrakey in rules
* Prime_BLE initial commit
* Initial commit for Prime_L V2
* Update info.json
correct key spacing.
* update copyright
* Update readme.md
* Inital commit
* updates before PR into QMK master
* Drop Prime_EXL Plus from PR. Make requested changes to Prime_L V2
* Rename keyboards/primekb/Prime_l_v2/config.h to keyboards/primekb/prime_l_v2/config.h
* Rename keyboards/primekb/prime_l_v2/config.h to keyboards/primekb/Prime_l_v2/config.h
* remove directory Prime_l_v2
* re-submit with proper folder name.
* houndstooth
* Amended with collaborator suggestions
* LAYOUT fixup, left crud in keymap
* Fix missing comma in keymap.c
* Correct RGBLIGHT_ENABLE to no
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
* YMDK NP21: matrix and keymap refactor
- refactored layout macros
- LAYOUT_ortho_6x4 orients the keyboard with the USB port to the back instead of to the right
- LAYOUT uses the previous sideways orientation (included for backwards compatibility)
- removed redundant includes from ymdk_np21.h
- added a readme for the default keymap
* add Configurator layout support
* Option to use function for KEYCODE2 routines.
Convert the KEYCODE2SYSTEM and KEYCODE2CONSUMER macros to functions,
defaulting to using the macros. The function form allows the compiler
to optimize the switch statement itself, over the macro nested
ternaries.
To enable this feature, #define USE_KEYCODE2_FUNCTION.
Testing against a random selection of avr-based keyboards, this
increased available flash by ~500 bytes. For arm-based keyboards,
the available flash increased by ~400 bytes.
* Replace macro with function entirely.
As zvecr states, go bold and just commit to using the function instead
of the macro.
* Reformat whitespace now that functional review is done
Verified against clang-format output.
* fix layout macro and update keymaps
K2D switch position is actually physically on the top row, as the right half of a split Backspace.
* add QMK Configurator layout support
* Adding my keymap
Adding a personalized keymap to the Raine keyboard. This diffirentiates itself by being useble with nordic characters even when the bottom row has blockers. Also added ASCII art to help visualize what you are doing when programming the board.
* Update Readme.md
Ned image of the board
* Update Readme.md
Forgot a space in Readme
* Update Readme.md
And another missed space
* Update keymap.c
Renoved Definetion that is not used
* Update Readme.md
* Remove files for renaming
* Adding files after renaming
Was unable to get Girthub to push renamed files/folders. Therefore removeing and adding them again.
* add the via keymap
* get an appropriate unused VID
* fix formatting up a bit
* Update keyboards/kbdfans/kbd67/mkiirgb/v1/config.h
* Update keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
* new alternative controller.
* following suggestions at qmk's 8059.
* forgot to replace some underscores and keycodes.
* following drashna's suggestions at qmk's 8059.
* following zvecr's suggestion in qmk's 8059.
* following noroadsleft's suggestion at qmk's 8059.
Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps.
## Update ChibiOS/ChibiOS-Contrib/uGFX submodules
* General Notes
* A `make git-submodule` may be required after pulling the latest QMK firmware code to update affected submodules to the upgraded revisions
* Enabling link-time-optimization (`LINK_TIME_OPTIMIZATION_ENABLE = yes`) should work on a lot more boards
* Upgrade to ChibiOS ver19.1.3
* This will allow QMK to update to upstream ChibiOS a lot easier -- the old version was ~2 years out of date. Automated update scripts have been made available to simplify future upgrades.
* Includes improved MCU support and bugfixes
* ChibiOS revision is now included in Command output
* Timers should now be more accurate
* Upgrade to newer ChibiOS-Contrib
* Also includes improved MCU support and bugfixes
* ChibiOS-Contrib revision is now included in Command output
* Upgrade to newer uGFX
* Required in order to support updated ChibiOS
## Fix ChibiOS timer overflow for 16-bit SysTick devices
* On 16-bit SysTick devices, the timer subsystem in QMK was incorrectly dealing with overflow.
* When running at a 100000 SysTick frequency (possible on 16-bit devices, but uncommon), this overflow would occur after 0.65 seconds.
* Timers are now correctly handling this overflow case and timing should now be correct on ChibiOS/ARM.
## Update LUFA submodule
* Updates the LUFA submodule to include updates from upstream (abcminiuser/lufa)
* Includes some cleanup for QMK DFU generation
## Encoder flip
* Flips the encoder direction so that `clockwise == true` is for actually turning the knob clockwise
* Adds `ENCODER_DIRECTION_FLIP` define, so that reversing the expected dirction is simple for users.
* Cleans up documentation page for encoders
## Adding support for `BACKLIGHT_ON_STATE` for hardware PWM backlight
* Previously, the define only affected software PWM, and hardware PWM always assumed an N-channel MOSFET.
* The hardware PWM backlight setup has been updated to respect this option.
* The default "on" state has been changed to `1` - **this impacts all keyboards using software PWM backlight that do not define it explicitly**. If your keyboard's backlight is acting strange, it may have a P-channel MOSFET, and will need to have `#define BACKLIGHT_ON_STATE 0` added to the keyboard-level `config.h`. Please see the PR for more detailed information.
## Migrating `ACTION_LAYER_TAP_KEY()` entries in `fn_actions` to `LT()` keycodes
*`fn_actions` is deprecated, and its functionality has been superseded by direct keycodes and `process_record_user()`
* The end result of removing this obsolete feature should result in a decent reduction in firmware size and code complexity
* All keymaps affected are recommended to switch away from `fn_actions` in favour of the [custom keycode](https://docs.qmk.fm/#/custom_quantum_functions) and [macro](https://docs.qmk.fm/#/feature_macros) features
## Moving backlight keycode handling to `process_keycode/`
* This refactors the backlight keycode logic to be clearer and more modular.
* All backlight-related keycodes are now actioned in a single file.
* The `ACTION_BACKLIGHT_*` macros have also been deleted. If you are still using these in a `fn_actions[]` block, please switch to using the backlight keycodes or functions directly.
## Refactor Planck keymaps to use Layout Macros
* Refactor Planck keymaps to use layout macros instead of raw matrix assignments
* Makes keymaps revision-agnostic
* Should reduce noise and errors in Travis CI logs
## GON NerD codebase refactor
* Splits the codebase for GON NerD 60 and NerdD TKL PCBs into two separate directories.
* If your keymap is for a NerD 60 PCB, your `make` command is now `make gon/nerd60:<keymap>`.
* If your keymap is for a NerD TKL PCB, your `make` command is now `make gon/nerdtkl:<keymap>`.
@ -71,17 +71,39 @@ There are some limitations to the local CLI compared to the global CLI:
## `qmk cformat`
This command formats C code using clang-format. Run it with no arguments to format all core code, or pass filenames on the command line to run it on specific files.
This command formats C code using clang-format.
**Usage**:
Run it with no arguments to format all core code that has been changed. Default checks `origin/master` with `git diff`, branch can be changed using `-b <branch_name>`
Run it with `-a` to format all core code, or pass filenames on the command line to run it on specific files.
**Usage for specified files**:
```
qmk cformat [file1] [file2] [...] [fileN]
```
**Usage for all core files**:
```
qmk cformat -a
```
**Usage for only changed files against origin/master**:
```
qmk cformat
```
**Usage for only changed files against branch_name**:
```
qmk cformat -b branch_name
```
## `qmk compile`
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm> or compile keymaps in the repo.
This command allows you to compile firmware from any directory. You can compile JSON exports from <https://config.qmk.fm>, compile keymaps in the repo, or compile the keyboard in the current working directory.
* the delay in microseconds when between changing matrix pin state and reading values
*`#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }`
* pins unused by the keyboard for reference
*`#define MATRIX_HAS_GHOST`
@ -78,7 +80,7 @@ This is a C header file that is one of the first things included, and will persi
*`#define BACKLIGHT_PIN B7`
* pin of the backlight
*`#define BACKLIGHT_LEVELS 3`
* number of levels your backlight will have (maximum 15 excluding off)
* number of levels your backlight will have (maximum 31 excluding off)
*`#define BACKLIGHT_BREATHING`
* enables backlight breathing
*`#define BREATHING_PERIOD 6`
@ -140,6 +142,8 @@ If you define these options you will enable the associated feature, which may in
*`#define PERMISSIVE_HOLD`
* makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the `TAPPING_TERM`
* See [Permissive Hold](feature_advanced_keycodes.md#permissive-hold) for details
*`#define PERMISSIVE_HOLD_PER_KEY`
* enabled handling for per key `PERMISSIVE_HOLD` settings
*`#define IGNORE_MOD_TAP_INTERRUPT`
* makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the `TAPPING_TERM` for both keys.
* See [Mod tap interrupt](feature_advanced_keycodes.md#ignore-mod-tap-interrupt) for details
@ -276,9 +280,12 @@ There are a few different ways to set handedness for split keyboards (listed in
* Default behavior for ARM
* Required for AVR Teensy
*`#define SPLIT_USB_TIMEOUT 2500`
*`#define SPLIT_USB_TIMEOUT 2000`
* Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`
*`#define SPLIT_USB_TIMEOUT_POLL 10`
* Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
# The `rules.mk` File
This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
@ -265,6 +265,25 @@ Normally, if you do all this within the `TAPPING_TERM` (default: 200ms) this wil
?> If you have `Ignore Mod Tap Interrupt` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`.
For more granular control of this feature, you can add the following to your `config.h`:
```c
#define PERMISSIVE_HOLD_PER_KEY
```
You can then add the following function to your keymap:
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information |
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
### Backlight On State
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*.
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead.
This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define.
### Multiple backlight pins
@ -167,7 +179,7 @@ BACKLIGHT_DRIVER = pwm
Currently only hardware PWM is supported, not timer assisted, and does not provide automatic configuration.
?> STMF072 support is being investigated.
?> Backlight support for STMF072 has had limited testing, YMMV. If unsure, set `BACKLIGHT_ENABLE = no` in your rules.mk.
There are some functions you may find useful in macro-writing. Keep in mind that while you can write some fairly advanced code within a macro, if your functionality gets too complex you may want to define a custom keycode instead. Macros are meant to be simple.
?> You can also use the functions described in [Useful function](ref_functions.md) for additional functionality. For example `reset_keyboard()` allows you to reset the keyboard as part of a macro.
### `record->event.pressed`
This is a boolean value that can be tested to see if the switch is being pressed or released. An example of this is
@ -198,11 +210,11 @@ This will clear all mods currently pressed.
This will clear all keys besides the mods currently pressed.
## Advanced Example:
## Advanced Example:
### Super ALT↯TAB
This macro will register `KC_LALT` and tap `KC_TAB`, then wait for 1000ms. If the key is tapped again, it will send another `KC_TAB`; if there is no tap, `KC_LALT` will be unregistered, thus allowing you to cycle through windows.
This macro will register `KC_LALT` and tap `KC_TAB`, then wait for 1000ms. If the key is tapped again, it will send another `KC_TAB`; if there is no tap, `KC_LALT` will be unregistered, thus allowing you to cycle through windows.
@ -198,10 +198,15 @@ This option changes the startup behavior to detect an active USB connection when
?> This setting will stop the ability to demo using battery packs.
```c
#define SPLIT_USB_TIMEOUT 2500
#define SPLIT_USB_TIMEOUT 2000
```
This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`.
```c
#define SPLIT_USB_TIMEOUT_POLL 10
```
This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
## Additional Resources
Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information.
@ -193,12 +193,23 @@ By default, when the keyboard boots, it will initialize the input mode to the la
!> Using `UNICODE_SELECTED_MODES` means you don't have to initially set the input mode in `matrix_init_user()` (or a similar function); the Unicode system will do that for you on startup. This has the added benefit of avoiding unnecessary writes to EEPROM.
## `send_unicode_hex_string`
## `send_unicode_string()`
To type multiple characters for things like (ノಠ痊ಠ)ノ彡┻━┻, you can use `send_unicode_hex_string()` much like `SEND_STRING()` except you would use hex values separate by spaces.
For example, the table flip seen above would be `send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B")`
This function is much like `send_string()` but allows you to input UTF-8 characters directly, and supports all code points (provided the selected input method also supports it). Make sure your `keymap.c` is formatted in UTF-8 encoding.
There are many ways to get a hex code, but an easy one is [this site](https://r12a.github.io/app-conversion/). Just make sure to convert to hexadecimal, and that is your string.
```c
send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
```
## `send_unicode_hex_string()`
Similar to `send_unicode_string()`, but the characters are represented by their code point values in ASCII, separated by spaces. For example, the table flip above would be achieved with:
An easy way to convert your Unicode string to this format is by using [this site](https://r12a.github.io/app-conversion/), and taking the result in the "Hex/UTF-32" section.
## Additional Language Support
@ -228,6 +239,6 @@ AutoHotkey inserts the Text right of `Send, ` when this combination is pressed.
If you enable the US International layout on the system, it will use punctuation to accent the characters.
For instance, typing "`a" will result in à.
For instance, typing "\`a" will result in à.
You can find details on how to enable this [here](https://support.microsoft.com/en-us/help/17424/windows-change-keyboard-layout).
make コマンド自体にもいくつかの追加オプションがあります。詳細は `make --help` を入力してください。最も有用なのはおそらく `-jx` です。これは複数の CPU を使ってコンパイルしたいことを指定し、`x` は使用したい CPU の数を表します。設定すると、特に多くのキーボード/キーマップをコンパイルしている場合は、コンパイル時間を大幅に短縮することができます。通常は、コンパイル中に他の作業を行うための余裕をもたせるために、持っている CPU の数より1つ少ない値に設定します。全てのオペレーティングシステムと make バージョンがオプションをサポートしているわけではないことに注意してください。
@ -38,7 +38,7 @@ To configure a keyboard where each switch is connected to a separate pin and gro
`BACKLIGHT_BREATHING` is a fancier backlight feature that adds breathing/pulsing/fading effects to the backlight. It uses the same timer as the normal backlight. These breathing effects must be called by code in your keymap.
`BACKLIGHT_LEVELS` is how many levels exist for your backlight - max is 15, and they are computed automatically from this number.
`BACKLIGHT_LEVELS` is how many levels exist for your backlight - max is 31, and they are computed automatically from this number.
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.