* model01: implement RGB matrix feature
LEDs can still be individually controlled if this is switched off.
* model01: use fast banked LED setting commands
* model01: update default keymap to use RGB matrix
* model01: update RGB matrix support to match common_features.mk
* rgb_matrix: include <string.h>
This was missing after commit 4d5705ea6c
which introduces a use of memset().
* model01: make g_rgb_leds weak
This allows users to override which LEDs are configured as
modifiers, or tweak the x/y coordinates, should they so choose.
* Initial commit of RAMA U80-A
* Initial commit of RAMA U80-A
* Moved IS31FL3736 driver, minor cleanups
* Superficial stuff
* Review changes
* Refactored to use common code.
* rgb_matrix: use a driver ops struct
This is intended to avoid #ifdef proliferation on adding more drivers,
eg. model01, which use different architectures.
* rgb_matrix: document driver struct members
* rgb_matrix: remove unused LED testing code
* rgb_matrix: don't build into IS31x drivers unless being used
* rgb_matrix: refactor make config options
This ensures that the necessary files are included for any custom
RGB_MATRIX_ENABLE value, without having to add entries here for specific
boards. This particularly affects model01 because its controller is
integrated and won't be used anywhere else, so it's preferable not to
put it in common_features.mk.
This now validates the value of RGB_MATRIX_ENABLE.
It was necessary to fix an error in ergodox_ez rules.mk using the wrong
comment separator, yielding an invalid value.
* IS31x drivers: don't write the control registers all the time
This is only needed when they are changed. This is done in init() and
board- or keymap-specific code is free to make further changes.
* rgb_matrix: move structs from chip drivers to rgb_matrix_drivers.c
This approach is specific to the rgb_matrix functionality, so keep it
neatly separated from the raw chip drivers.
* holefully correct error in mtdjr userspace for layer_state_set_user
* return state and wrap rgb actions in their own conditional
* mtdjr nyquist and userspace updates
* mtdjr updates as requested
* pull out toad keyboard and get it compiling
* refactor xmmx
* use the correct LAYOUT macros
* move LED code out to toad.c file
* move LED code out to xmmx.c file
* adjust for correct number of columns and pins used
* remove led set user
* Rename constexpr keymap folder to konstantin
* Replace numpad comma with Unicode comma
* Rename tap dance constants
* Move record->event.pressed check into switch
* Use RShift as a dedicated Fn key
* initial commit
* Update readme.md
* Update keymap.c
added comment for description of function to control LED as layer indicator
* corrected formatting as requested.
* format for configurator
* corrected info.json to propertly reflect layout in Configurator
* updated layouts to reflect physical keyboard
* comment out BACKLIGHT BREATHING in config.h
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
* removed homerow mods, more flashy lighting!
* changed delays for lighting.
* velocikey code retro fit into userspace to match typing speed
currently "working" but isn't as reactive as I want.
* Readme and other documentation hidden throughout code
* Added a pretty picture
* pretty picture actually added
* More readme updates
* Velocikey now working inside my userspace!
* Changed repo macro and fixed readme
* Removed media layer, moved media control to LAZY layer
* fixed more merge issues when I had to merge...
* create: biacco jis keymap for windows for Ergo42
* fix: biacco-winjp: change #ifndef to #pragma once.
* fix: following: 3935#pullrequestreview-157941685
* First version of FollowingGhosts' custom layout
* Added copyright etc.
* Fixed readme and added space cadet shift
* Moved from RGB to HSV, updated readme and added media keys
* Updated pragma
* Added play/pause and updated config
* Added pragma back
* added my planck keymap
based on a blend of my minivan keymap and the planck default keymap.
* moved pipe to better match minivan keymap
* updated as per @drashna
also moved my keymap a bit after adding the quad encoder and underglow
(which doesn't even work on arm right now lol)
* a few smaller tweaks
* Crkbd: move I2C and Serial defines to keyboard's config.h
per @drashna on Discord
* Crkbd: remove misleading comment re: I2C and Serial
USE_I2C and USE_SERIAL are usually a "one or the other"-type deal, but this keyboard uses both.
* funged git history, restarting
* tested and working (message typed on this)
* updated documentation to include wiring directions
* formatting
* updated matrix and default layout a bit
* getting ready for merge into main repo
* getting ready for merge into main repo v2
* cleaning
* cleaning repo of extranious files
* updated documentation
* initial check in
* figure out the column pins
* temporary keymap
* guess the row pins
* fix matrix.c compilation errors
* use the LAYOUT_60_hhkb macro and tweak the keymap a little bit
* update readme
* Put my name everywhere
* Add QMK Configurator support
* figured out the row pins
* update readme to have reset info
* Fill in some blanks that are documentation related
* Update matrix.c
* add kb functions
* forego kbfirmware labeling
* add arrows and caps lock to function layer.
* add a LAYOUT_60 and LAYOUT_all macro
* missed a comma
* add configurator support for the two new LAYOUT macros
* Jack helped me with a new custom matrix
* add 60_ansi into rules.mk
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
* Added template copies for prime_l
Added first set of files for prime_m and prime_o
Temporarily storing kbfirmware dumps in tmp
* Completed base for prime_m, prime_o and prime_l
Moved prime_r into primekb folder
* Added in QMK Configurator layout files for new PrimeKB keyboards
Slight modification to layout header files
Added my name to licensing
* Updated primekb readmes
* Removed temporary working files
* Updated default keymap for Prime_O
* Added link to Newbs Guide in prime_r readme
* make bpiphany directory with simple readme file
* move unloved_bastard to bpiphany directory
* move frosty_flake to bpiphany directory
* move pegasushoof to bpiphany directory
* move tiger_lily to bpiphany directory
* add a little more info to readme
* move kitten_paw to bpiphany directory
* update make instructions
* update intro text
* add missing routines to matrix.c of unloved_bastard
* add missing routines
* initial commit
* Update readme.md
* Update keymap.c
added comment for description of function to control LED as layer indicator
* corrected formatting as requested.
* format for configurator
* corrected info.json to propertly reflect layout in Configurator
* updated layouts to reflect physical keyboard
* Create layout for JD45
* Tweak layout to better support JD45 and add more tap dancing.
* Add Maltron and tweak layout for 40% enter compatibility.
* Switch back to `BL_TOGGLE` for backlight.
* More tweaks
* Rename talljoe_gherkin to talljoe-gherkin
* Make NAV layer tab C_S_T also.
* Add missing RESET key.
* Add Talljoe layout for minivan.
* MTI is not for me
* Tweak keymap.
* Add talljoe keymap to Atreus.
* Minor tweaks.
* Fix talljoe keymaps to work with new Zeal60 commit.
* Added QMK support for GSKT-00, PaladinSplit, PaladinTKL and PaladinPad pcbs
* Remove the paladin boards from this PR
* Changed gskt00 as per review comments. Added two new default layouts, 60_ansi_tsangan and 60_iso_tsangan
* Fix the layouts/default/60_iso_tsangan/layout.json file
* Removed ? from rules.mk, removed unused fn_actions from keymaps. Changed the 60_iso_tsangan to work correctly
* Removed PREVENT_STUCK_MODIFIERS
* Keyboard: add Keyboardio Model01
This port implements key scanning and everything in their default
keymap.
It doesn't implement mouse warping; QMK can't do that (yet).
LED control is mostly not implemented. The ability to set all LEDs is
included because they can get stuck on coming from the bootloader
otherwise. Single LED control is also implemented for numpad indication.
The scanners also support batch LED transfer which is what you'd need if
you wanted to do fast effects. Gamma correction is also not implemented,
but is present in the original firmware. The necessary info for further
implementation is in the KeyboardioScanner module for Kaleidoscope.
To install on your keyboard:
make model01:avrdude
When prompted, hold the "prog" key on the keyboard to put it into
programming mode. This can also be achieved by holding the "prog" key
while plugging in the keyboard. This works even if the firmware is
corrupt or missing.
Hot plugging the halves seems to work fine, but there is no explicit
support for eg. making sure the matrix scan rate is reconfigured.
* model01: clean up includes and include guards
Uses #pragma once everywhere.
* model01: split LED and matrix code
This makes space if someone wants to implement better LED support
later on, the keyboard is a lot more capable than the current code.
* model01: separate I2C timeouts for matrix vs. LED
If the scanners have no data they don't ACK reads and just time out.
So we want a pretty short timeout to keep scan rates high.
Meanwhile the LED transfers might take longer - I don't know though,
so here we are conservative.
* model01: implement better LED control
- gamma correction from the manufacturer's firmware
- suitable delays to allow back to back LED writes
- this is fast enough to write the whole keyboard without noticeable
delay, in my experience
- minor bug fix: RHS Fn key was not addressable
* model01: add license to wire-protocol-constants.h
* model01: replace gamma LUT
The original was of unclear license origin. This one is functionally
identical and includes a generator should people wish to adjust it.
* model01: use the already-present CIE1931 lightness curve
...rather than baking in another gamma curve.
It's said that CIE1931 is the right thing to be using rather than gamma.
OK. Let it be so.
* model01: call matrix_init_user() from matrix_init_kb()
* model01: remove inapplicable config options from rules.mk
* model01: readme.md: update build environment links
* Add flashing instructions for Linux
* Make device/manufacturer name consistent for ymd96
* Disable command mode by default for YMD96
* Add function call to fix backlight for YMD96
* Add personal YMD96 config
* Replace include with QMK macro
* Move KEYMAP macro to keymap-level folder
* Move custom KEYMAP macro to global LAYOUT_iso macro
* Change transparent keymappings to global definition
* Remove unecessary import and change to pragma once
- (instead of repeated ifdef)
* Remove global keymap/layout definition
* Remove chording as it is not documented, not used, and needs work.
* Make Leader Key an optional feature.
* Switch from `PREVENT_STUCK_MODIFIERS` to `STRICT_LAYER_RELEASE`
* Remove `#define PREVENT_STUCK_MODIFIERS` from keymaps.
* Arrow keys are now arranged on hjkl (vi style)
* The escape key is moved on capslock, shared with func layer switch
* The grave key is now dedicated (not shared with escape)
* Add a new numpad layer that can be activated with the spacebar
* Fix layout mismatch between layers
* Use bult-in underscore KC_TRNS alias