* initialise rpneko65, info.json
* force NKRO
* define WS2812 stuff
and capitalise RPNeko65
* use RGBlight, add ANSI to keymap.c
also remove _ADC suffixes from pins
* basic readme
plus making it so the info.json RGB values are actually recognised as integers
* update repository URL
* fix info.json formatting
* caps lock LED implementation
"borrowed" from waffling60
* put RGBLIGHT_ENABLE in json
also remove "pin" from the rgblight option
* add actually correct keymaps
also reformat info.json
* move to designer folder, add image to README
* move keyboard to separate revision folder
and remove erroneous tag from config.h
* remove brightness/hue/saturation steps
* change device version to 1.0
* move quantum.h include to top
* actually, let's try a new image
I also forgot to save the info.json file beforehand
oops
* Remove comma in info.json
* Community layouts in info.json
* Delete rpneko65/readme.md
* Apply suggested changes to readme
* Suggested code changes
* Suggested imgur link
* rename code file
this was the issue all along
sigh
* Correct layer matching this time
* Move Enter in info.json
* README/info.json change
* Another batch of suggestions
* Add support for Envious.Design Keyboards
Add various RP2040 keyboards I've designed.
* Fixed missing newlines at EOF.
* Ran CLANG-FORMAT and sorted out any potential issues.
* Gave keyboards all unique product IDs
* Made requested changes.
* removed all VIAL related code
* sorted out license on all *.h or *.h files
* removed outdated RESET Keycode
* missed some VIAL bits
* Made suggested changes
* Made Suggested Changes
* missed one file to change.
* Attempted fix of CI issues
* Update .gitmodules
* Revert "Update .gitmodules"
This reverts commit f4bace51621ed0c5bd40c729fa1c6339f665f0b7.
* hopefully fixed all CI and QMK lint issues
* resolve more CI errors and a couple typos
* fixed last remaining issue as of now
* made requested changes
* further more on suggested change
* Delete README.md
* derpy workaround to change case of readme
* finished up 65M firmware
via does not work, I will investigate another time.
* re-did a lot of 65M firmware bits, also fixed via for this board
* corrected mistake in firmware
* made suggested change to info.json for 65m/60F
* finished 65M non via keymap and re-sorted via keymap
* Update keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c
* Update keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c
* Apply suggestions from code review
Verified updated Info.json works for aforementioned keyboards,
* Follow-up commit with aforementioned suggested changes
* Apply suggestions from code review
correction to a couple typos pointed out.
* follow-up removed some un-needed Readmes and corrected a mistake in 60F via keymap
* Apply suggestions from code review
* Added images of PCB to each Keyboard README
* Apply suggestions from code review
* Update keyboards/enviousdesign/60f/readme.md
* Added missing aspects of info.json and corrected RGB_DI_PIN to WS2812_DI_PIN in RGB keyboard
* made requested changes
* Update config.h
* used QMK migrate to update info.json
* Apply suggestions from code review
* Update keyboards/enviousdesign/65m/info.json
* renamed named keyboards as suggested and added commission keyboard to repo
* renamed file to hopefully please lint
* renamed things to be all lower case since lint doesn't appear to look for upper case
* updated keymap.c and removed unnecessary file
* fixed readme and a couple other bits
* converted various aspects to json information
* attempt fix for lint error
* fix some issues I overlooked
* Apply suggestions from code review
* moved some folders about as suggested
* Made suggested changes
* Apply suggestions from code review
* removed outdated config.h
* fixed errors in 65M and mini1800
* Apply suggestions from code review
* Update keyboards/enviousdesign/delirium/rev1/info.json
* Update keyboards/enviousdesign/65m/info.json
* Apply suggestions from code review
* Added support keyboard Nyx
* Resolved zvarc suggested and lint error
* Delete FORCE_NKRO due to problem with BIOS on mainboard
* Resolved dunk2k suggested and limit more brightness, disable some RGB Effect
* Resolved drashna suggested
* Delete flower blooming effect and move to rev1 folder
* Added new handwired, the Split-Cloud
* Minor changes to make clang-format happy
* Alligned files with project standard.
Trimmed midi out of the default layout, modified the readme, and removed unnecessary files.
* Simplified default keymap further, changes to info.json
* Moved image to imgur, simplified, and removed the unneeded rules.mk file
* Update keyboards/handwired/split_cloud/readme.md
Changed image in readme to Huge Thumbnail instead of Original.
* Removed unneeded tri layer custom keycodes
Now using the built-in functionality!
* Update keyboards/handwired/split_cloud/readme.md
Accidentally reverted this when making other changes
* enable LTO
* change from _user to _kb function
* switch matrix io delay to nops, add opt=3 for higher scan rates
* disable console which was enabled for testing but collides with endpoint used by VIA
* switched from opt=3 to opt=2
* Update keyboards/teleport/native/native.c
Co-authored-by: Joel Challis <git@zvecr.com>
* slightly upped debounce, as some testers had chatter with async + default debounce
---------
Co-authored-by: Joel Challis <git@zvecr.com>
* Correct layout/matrix diagram
Correct swapped designations for ANSI Backslash and ANSI Enter keys.
[docs]
* Correct matrix data
Correct the matrix data for:
- `LAYOUT_all`
- `LAYOUT_96_ansi`
- `LAYOUT_96_ansi_splitbs`
which all had the matrix positions for ANSI Backslash and ANSI Enter swapped.
[bugfix]
* Implement `LAYOUT_hotswap` directly
Implement `LAYOUT_hotswap` as its own layout, instead of aliasing it to
`LAYOUT_96_ansi`.
[bugfix]
* Specify primary support for Soldered PCBs
Current version of codebase primarily supports Soldered PCBs.
[enhancement] [docs]
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* Add layout/matrix diagram
[docs]
* Friendly-format `info.json`
[style]
* Touch-up keymaps
- grid-align keycodes
- use QMK-native keycode aliases
[refactor]
* Fix keymaps
Fix keycodes being assigned out of order with respect to `info.json`.
- move XT function keys to left side
- move keycodes for position [2, 14] from Home Row to Number Row
[bugfix]
* Rename `LAYOUT` to `LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs`
[refactor]
* Add `LAYOUT_65_xt_ansi_blocker_tsangan_wkl`
[enhancement]
* Add layout/matrix diagram
[docs]
* Alias `LAYOUT_all` to `LAYOUT_split_6u`
`LAYOUT_all` and `LAYOUT_split_6u` represent the same matrix positions
and sequence, so implement the former as an alias.
[refactor]
* Touch-up keymaps
- grid-align keycodes
- use QMK-native keycode aliases
[chore]
* Friendly-format `info.json`
[style]
* Correct layout data
Correct key sizes/positioning on the bottom row.
[chore]
* Rename `LAYOUT_2u_6u` to `LAYOUT_65_xt_ansi_blocker`
[refactor]
* Rename `LAYOUT_2u_7u` to `LAYOUT_65_xt_ansi_blocker_tsangan`
[refactor]
* Rename `LAYOUT_split_6u` to `LAYOUT_65_xt_ansi_blocker_split_bs`
[refactor]
* Rename `LAYOUT_split_7u` to `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs`
[refactor]
* Add layout/matrix diagram
[docs]
* Rename `LAYOUT` to `LAYOUT_65_xt_ansi_blocker_split_bs`
[refactor]
* Add `LAYOUT_65_xt_ansi_blocker`
[enhancement]
* Add `LAYOUT_65_xt_ansi_blocker_tsangan`
[enhancement]
* Add `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs`
[enhancement]
* Touch-up keymaps
- grid-align keycodes
- use four-space indent
- use QMK-native keycode aliases
[refactor]
* Update `via` keymap
Update the `via` keymaps to have the same key assignments as the
`default` keymap, which is more fleshed out.
[chore]
* Add layout/matrix diagram
[docs]
* Update layout data
Update layout data to disambiguate the key/joystick/thumbpad functions
in Configurator.
[chore]
* Add `LAYOUT_tkl_ansi_wkl_split_bs_rshift`
[enhancement]
* Add `LAYOUT_tkl_ansi_wkl`
[enhancement]
* Add `LAYOUT_tkl_iso_wkl_split_bs_rshift`
[enhancement]
* Add `LAYOUT_tkl_iso_wkl`
[enhancement]
* Correct layout data
Correct key positioning on the function row.
[enhancement]
* Friendly-format `info.json`
[style]
* Move ISO Enter to Home Row
Corrects the implementation of the ISO Community Layouts.
[bugfix]
* Rename `LAYOUT` to `LAYOUT_all`
[refactor]
* Add layout/matrix diagram
[docs]
* Correct layout data
Reduce the gap between the encoder/macro section and the alphanumeric
section by 0.25u.
[enhancement]
* Add `LAYOUT_ansi_blocker`
[enhancement]
* Add `LAYOUT_iso_blocker`
[enhancement]
* Fix redundant `layout_aliases` keys
per dunk2k
[bugfix]
* Alias `LAYOUT_all` as `LAYOUT_tkl_ansi`
The data for `LAYOUT_all` and `LAYOUT_tkl_ansi` is identical, so alias
the former to the latter to reduce redundancy.
[refactor]
* Rename `LAYOUT_tkl_ansi_tsangan_wkl` to `LAYOUT_tkl_ansi_wkl`
[refactor]
* Enable Community Layout support
[enhancement]
@ -6,7 +6,7 @@ The QMK CLI makes building and working with QMK keyboards easier. We have provid
### Requirements :id=requirements
QMK requires Python 3.6 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI.
QMK requires Python 3.7 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI.
### Install Using Homebrew (macOS, some Linux) :id=install-using-homebrew
@ -20,7 +20,7 @@ qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build
### Install Using pip :id=install-using-easy_install-or-pip
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.6 (or later) installed and have installed pip. Then install QMK with this command:
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.7 (or later) installed and have installed pip. Then install QMK with this command:
First we import the `cli` object from `milc`. This is how we interact with the user and control the script's behavior. We use `@cli.argument()` to define a command line flag, `--name`. This also creates a configuration variable named `hello.name` (and the corresponding `user.name`) which the user can set so they don't have to specify the argument. The `cli.subcommand()` decorator designates this function as a subcommand. The name of the subcommand will be taken from the name of the function.
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
# User Interaction
@ -56,13 +56,13 @@ There are two main methods for outputting text in a subcommand- `cli.log` and `c
You can use special tokens to colorize your text, to make it easier to understand the output of your program. See [Colorizing Text](#colorizing-text) below.
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.6/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.7/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
You should never use the format operator (`%`) directly, always pass values as arguments.
### Logging (`cli.log`)
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
The default log level is `INFO`. If the user runs `qmk -v <subcommand>` the default log level will be set to `DEBUG`.
Programmable Buttons are keys that have no predefined meaning. This means they can be processed on the host side by custom software without the operating system trying to interpret them.
The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x07`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`).
The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x09`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`).
?> Currently there is no known support in Windows or macOS. It may be possible to write a custom HID driver to receive these usages, but this is out of the scope of the QMK documentation.
The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using the integrated PIO peripheral and is therefore only available on this MCU.
There are strict requirements for pin ordering but any pair of GPIO pins can be used. The GPIO used for clock must be directly after data, see the included info.json snippet for an example of correct order.
You may optionally switch the PIO peripheral used with the following define in config.h:
```c
#define PS2_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the PS2 implementation uses the PIO0 peripheral
These modes can then be cycled through using the `UC_NEXT` and `UC_PREV` keycodes. You can also switch to any input mode, even if it is not specified in `UNICODE_SELECTED_MODES`, using their respective keycodes.
@ -151,7 +151,7 @@ If your keyboard has working EEPROM, it will remember the last used input mode a
### ** macOS **
**Mode Name:**`UNICODE_MODE_MAC`
**Mode Name:**`UNICODE_MODE_MACOS`
macOS has built-in support for Unicode input as its own input source. It supports all possible code points by way of surrogate pairs for code points above `U+FFFF`.
@ -56,7 +56,7 @@ QMK maintains a Homebrew tap and formula which will automatically install the CL
You will need to install Homebrew. Follow the instructions on https://brew.sh.
!> **NOTE:** If you are using Apple Silicon, such as the M1, you will need to install a rosetta compatible version of Homebrew. This version does not override the base Homebrew. This can be done by running `arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"`. See here: [Rosetta-compatible Homebrew](https://stackoverflow.com/questions/64882584/how-to-run-the-homebrew-installer-under-rosetta-2-on-m1-macbook)
?> If you are using an Apple Silicon machine, the installation process will take significantly longer because GitHub actions do not have native runners to build binary packages for the ARM and AVR toolchains.
#### Installation
@ -64,10 +64,6 @@ Install the QMK CLI by running:
brew install qmk/qmk/qmk
Install the QMK CLI on an Apple Silicon Mac by running:
arch -x86_64 brew install qmk/qmk/qmk
### ** Linux/WSL **
?> **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197).
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.