* more stoof
* readme update
* reverting keymap
* re-adding userspace
* new userspace needed
* no want 0 under thumb
* gettin fancier with my knob
* macro fix
* had pins for oled ver
* wait, these are the right pins
* reduntant line
* image fix
* get highest layer every day
* whoops
* correct rev name in json
* a few good catches
* what I had planned
* Replace custom RCTRL implementation with built-in LM
Caveat: sends LCtrl instead of RCtrl
* Enable VIA support in KBD6X keymap
* Disable LTO on ChibiOS boards
* Disable locking support and Magic keycodes for all keymaps
* Organize and annotate rules.mk and config.h files
* Enable Console for Melody96 keymap
* L_RANGE_KEYMAP → LAYERS_KEYMAP
* Revert "Replace custom RCTRL implementation with built-in LM"
This reverts commit 17d706a82d7e31b53cd84efeb9b2ddb9922a2368.
* Set DYNAMIC_KEYMAP_LAYER_COUNT to 3 in Doro67 and Wasdat keymaps
* Enable Bootmagic Lite for all VIA keymaps
* added koy layout to qmk on xd75 board
* added koy keymap for the atreus62 board
* reduced time for autoshift
* added documentation
* changed layer 7 to a tap toggle and adjusted mouse speed a little
* Update keyboards/xd75/keymaps/ScheiklP/koy_keys_on_quertz_de_latin1.h
* Update keyboards/xd75/keymaps/ScheiklP/koy_keys_on_quertz_de_latin1.h
* Update keyboards/xd75/keymaps/ScheiklP/koy_common.h
* Update keyboards/atreus62/keymaps/ScheiklP/koy_common.h
* Update keyboards/atreus62/keymaps/ScheiklP/koy_keys_on_quertz_de_latin1.h
* Update keyboards/atreus62/keymaps/ScheiklP/koy_keys_on_quertz_de_latin1.h
* changed keymap to lowercase name to conform with qmk guidelines
* Update keyboards/xd75/keymaps/scheiklp/rules.mk
remove unnecessary rules
* Update keyboards/atreus62/keymaps/scheiklp/rules.mk
remove unnecessary rules
* moved common files for koy layouts to the users folder and removed empty file
* Update keyboards/atreus62/keymaps/scheiklp/keymap.c
* Update keyboards/xd75/keymaps/scheiklp/readme.md
* Update keyboards/xd75/keymaps/scheiklp/readme.md
* Update keyboards/atreus62/keymaps/scheiklp/readme.md
* Update keyboards/atreus62/keymaps/scheiklp/readme.md
* Added MACLOCK macro
Added my MACLOCK macro to my Atreus keymap.
* Updated comments & readme
Documented where in the layout I added the MACLOCK macro.
* Updated with my super16 version for my keypad
* Added my folder to super16
* Set max LED brightness to 50%
* Added custom keycodes for enter/shift+enter and copy/paste on one key
* Fixed the boot up layer color
* Renamed folder
* Revert changes to root super16 files
* Update keymap config.h and rules.mk files
* Restore deleted 15game keymap files
* Corrected the hold keycode for CCCV
* Removed unnecessary comments
* Update keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c
Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>
* Update keyboards/1upkeyboards/super16/keymaps/nblyumberg/config.h
Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>
* Update keyboards/1upkeyboards/super16/keymaps/nblyumberg/keymap.c
Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>
* Rewriting the layer color functionality
* Revisions
* Fixed the layer switching
* Fixed the default layer color problem
* Added a function suggested by Drashna but it won't compile
* Cleaned up the code for PR
* Removed unnecessary define for layer colors
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
* [Keyboard] Added D48 keyboard.
* Updated README.
* Cleanups.
* Moved d48 to handwired/
* Added link to build process album.
* Coding conventions cleanups.
* Added DS1307 RTC!
* Minor cleanups.
* Apply suggestions from code review
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Minor refactoring.
* Readme fix.
* Moved leftover keymap-specific code from keyboard space into keymap.
* Added encoder button pins to extra matrix row.
* Updated README, updated pinout & cleaned up the glcdfont
* Apply suggestions from code review
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Update config.h
* Apply suggestions from code review
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Added default keymap. Refactored existing keymap.
* Update keyboards/handwired/d48/README.md
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Apply suggestions from code review
Co-Authored-By: Joel Challis <git@zvecr.com>
* Minor alignment fix.
* Update keyboards/handwired/d48/glcdfont_d48.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Changes as per PR.
* Apply suggestions from code review
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Add TENKI keyboard
Add TENKI keyboard, default keymap and via keymap
* Minor Update Readme.md
Change description of hardware supported
* change layout name
change layout name from ortho_20 to ortho_5x4
* Fix invalid format in info.json
Fix invalid format in info.json
* Fix invalid format
* Fix formatting
Fix formatting tenki.h
* Fix formatting in keymap.c
Fix formatting in keymap.c
* Add new line at EOF info.json
Add new line at EOF
* Fix formatting
* Fix formatting
* Update rules.mk
Fix Formatting
* Initial
* update json, added basic oled config, updated matrix to correct rotary location
* disable oled by default
* Tuned oled for release
* Completed OLED function implementation
Correct spelling error in readme
* Fixed image in readme
* Should not be in this branch
* Incorporating recommended changes by zvecr
* Update keyboards/le_chiffre/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/le_chiffre/readme.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Keyboard: add treeadstone48
* rename layout defines
* Use of pragma once
* move common include code
* fixed info.json
* change keymap layout from kc to normal
* fix alpha revision keymap
* fixed info.json
* remove USE_Link_Time_Optimization
* Add keyboard firmware of treadstone32lite
* fixed by the review
* I used to set this to a per-keymap setting, so I'll undo it.
* Community layout support for KBD67 hotswap
* Community layout support for KBD67 rev1
* Community layout support for KBD67 rev2
* Move bcat's KBD67 hotswap layout to community
* New keymap layout for dztech/dz65rgb/keymaps
* New keymap layout for dztech/dz65rgb/keymaps
- Conding conventions fixes
* Fix typo in Leader Key table
* PR #8199 Feedback Commit #1
* Fixed data types and function names - Simplified accent macros by removing repetition - Added selection wrap macros - readme.md doc updated with changes
* PR #8199 second feedback commit - Clarified function names, variables names and comments
* Fix: accent output fix _grave <==> _circumflex
* dry fixes on led set_color with hsv and led blinking code blocks
* my new layout, draft one, untested.
* updated mapping to include more keys
* updated layout name to be more descriptive. Updated readme with more information.
* added more info to the readme and spellchecked it.
* Added the Json for the keyboard layout images and updated the readme to reflect this.
* Updated Image link
Updated Image link so that it links to the correct place
* updated copyright info to include MY name.
* Updated copyright attribuatation to include the author of the file I modified.
* added the backlighting key back to the adjust layer so that it is usable.
* updated the name of the keymap to match my github name.
* Mitor Tweaks
Updating Dvorak keymap to change location of Slash and Backslash
to positions more in line with my 12x5 and similar ortho layouts
* Fixed readme.md
Tidied up the readme and make some minor changes.
* Adding atreus config file
Adding a config file for my Atreus keyboard. This is to help with
the keychatter issues I've been having on my Atreus.
* Changes as requested per @zvecr
Added `#pragma once` to beginning of config.h file as requested
by @zvecr.
* Working on proto
* Start adding VIA support
* Apply suggestions from code review
Removed redundant comments and fixed typos
Co-Authored-By: Ryan <fauxpark@gmail.com>
Co-Authored-By: Joel Challis <git@zvecr.com>
* Delete useless config.h
As per code review
* Delete elongate.c
As per code review
* Updated readme.md
* Update keyboards/acheron/elongate/keymaps/default/keymap.c
As per code review
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Apply suggestions from code review
Removed RGB_MODE_TEST definition and substituted for RGB_M_T
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Apply suggestions from code review
Reverted changes to alice.h
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update info.json
* Update via/keymap.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Solve compiling issue for via keymap
* Add botmagic support and remoce console_enable
Co-Authored-By: Joel Challis <git@zvecr.com>
* Update keyboards/acheron/elongate/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/acheron/elongate/keymaps/via/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/acheron/elongate/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/acheron/elongate/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* id80: Transpose matrix to use faster COL2ROW routines
Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL. Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.
The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.
* id80: Remove obsolete comments
* A few final edits to the keymap and readme.
* Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
* Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
* Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
* Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com>
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: James Young <18669334+noroadsleft@users.noreply.github.com>
* initial commit for TGR 910 CE
* got firmware working on the 910 CE
* add VIA support
* add iso and all layouts
* update information about resetting the board
* fixup default keymap to have a second layer
* fixup default keymap
* add VIA enabled keymap
* cleanups and adding community layout support
* add caps lock led support and backlight
* add qmk configurator support
* Update keyboards/tgr/910ce/info.json
* Adding all relevant files for the Funky40
This should add all proper files for the funky40 a keyboard I designed for myself, /u/TheFourthcow, a 40% ortholinear with split spacebar.
* Second attempt to add all relevant files for the funky40, includes all reccomended changes from my previous pull request
* Revised most files for Funky40 including reccomenations from my previous pull request
* further modifications made to default funky40 board, compiles on my side with no errors hopefully this one works!
* Update keyboards/funky40/readme.mk.mk
* Update keyboards/funky40/keymaps/default/readme.md.md
* Update keyboards/funky40/keymaps/default/keymap.c
* Update keyboards/funky40/keymaps/default/keymap.c
* Update keyboards/funky40/keymaps/default/keymap.c
* Update keyboards/funky40/config.h
* updating readmes and keymap
* final update to keymap and readmes should function correctly with updates requested
* made changes as requested by noroadsleft to config and readme
* mpstewart dz60 layout
* Remove macro aliases from keymap
* Remove macro aliases from keymap
* Update keyboards/dz60/keymaps/mpstewart/keymap.c
* Remove macro aliases from keymap
* use AG_TOGG instead of AG_SWAP
Also some commentary changes, and a change to one of the layout graphics
* Add new keymap to vitamins_included, this has four layers. Updated config file to sync rgb between the two halves.
* Cleaned up and added documentation for the keymap
* Updated the keymaps and documentation.
* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
* Update keyboards/vitamins_included/keymaps/vitavim/config.h
* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
* Move menu key on ergo boards to match staggered
* Unify 60_tsangan_hhkb and 60_ansi_split_bs_rshift
* Sync KBD67, Quefrency with community layouts
* Update ergo KLE images
* Update community layout KLE images
* Update KLE images/descriptions for remaining keebs
* Add VIA keymap
Also adds more backlight levels.
* Change wasdat code PID
* Alias LAYOUT_fullsize_iso to LAYOUT_all
* Change VIA layout macro to LAYOUT_all
Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
* Remove more mouse keys settings missed in #8836
* Turn off more unwanted make options
* clang-format my userspace
* Reword ergo layout docs so Crkbd is canonical
* Add a basic readme to my userspace
* Tweak Crkbd readme wording and fix typos
* Enable SPLIT_USB_DETECT for Lily58 w/ Elite-C bug
* add rev2 and thus rev1 as well
* nitpicks :)
* buncha stuff
* back to one rev
* back to community layout with errors
* I see you've met my typo
* remove default48 kemap rules
* re-rework into 2 revs
* readme changes
* whitespace cleanup
* default folder
* rev1 be default
* Update default vitamins_included keymap
* Turned on NKRO support
* Added NKRO toggle key to keymap
* Cleaned up key map to be more up to date with current standards
* configured RGBLED_SPLIT
* Update to xealousbrown.
5-13ms Latency decrease, 4x scan rate improvement.
(CUSTOM_MATRIX = lite) is a really great feature!
* Updated Readme.md, added an extra speedhack.
* More optimizations
* Update keyboards/handwired/xealousbrown/rules.mk
* Update keyboards/handwired/xealousbrown/rules.mk
Evidently there is a polycarb variant with underglow LEDs. This change should support that without negatively impacting aluminum case variant which only has 2 RGB LEDs on top.
* Adding Novem keyboard (macropad) and demo layout
* Making changes suggested during pull request
* Removing keyboards/novem/keymaps/default/config.h as suggested during the pull request
* Moving keyboard to the handwired folder and changing the build line from readme in order to reflect this new location
* Add revision 1 and revision 2 to ProjectKB Alice PCB
* Swap SLEEP LED to no
* Basic root rules.mk
* Apply suggestions from code review
* Update keyboards/projectkb/alice/rules.mk
* add VIA enabled keymap with some layers taken out for space
* get a more sane VID and PID so we don't collide with the other BMC powered boards
* small cleanups
* Update keyboards/tgr/jane/keymaps/via/keymap.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* add tkl_ansi_tsangan LAYOUT
* add tkl_iso_tsangan LAYOUT
Co-authored-by: Ryan <fauxpark@gmail.com>
* porting the niu_mini to via
* Wrong values in mk
* Updating to unique Vendor ID and Product ID
* Addressing zvecr comments
* Addressing fauxpark comments
Co-Authored-By: Ryan <fauxpark@gmail.com>
Co-authored-by: Lauren Harris <lauren.y.harris@outlook.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* id80: New keyboard (IDOBAO ID80)
Add initial support for the IDOBAO ID80 keyboard.
Most source files were generated by the KBFirmware JSON to QMK Parser
(https://noroadsleft.github.io/kbf_qmk_converter/) based on the
ID80.json file provided by the keyboard vendor. The only change to
rules.mk was to set `COMMAND_ENABLE = no` to make the compiled firmware
fit into the available flash space.
* id80: Update default keymap to match stock
Update the Fn layer in the default keymap to match the stock firmware
which was actually flashed into the PCB.
* id80: Add Caps Lock indicator support
Although the KBFirmware JSON includes information about the MCU pins
used for keyboard indicator LEDs, the KBF to QMK converter does not
generate the required code automatically. Implement the LED handling
code, and at the same time switch from the older `led_set_kb` API to the
newer `led_update_kb`.
* id80: Remove placeholder functions
The provided skeletons for `matrix_scan_kb` and `process_record_kb` did
not do anything useful, so remove them.
* id80: Use Esc as the Bootmagic Lite activation key
The Esc key is not at the (0, 0) position in the ID80 matrix, therefore
setting `BOOTMAGIC_LITE_ROW` and `BOOTMAGIC_LITE_COLUMN` is required to
use the Esc key for Bootmagic Lite.
* id80: Update info.json
Replace info.json generated by the KBF to QMK converter with another
version generated using http://www.keyboard-layout-editor.com/ and the
KLE raw to QMK info.json converter (https://qmk.fm/converter/). The
updated info.json has the correct physical layout (the distance between
the function key row and the main block is actually 0.25U, but the
vendor-provided ID80.json had 0.5U there) and correct key labels (using
the stock layout instead of raw matrix locations and pin names).
* id80: Enable NKRO
The default keymap is updated to have NK_TOGG at Fn+N, like most other
keyboards which have NKRO enabled.
* id80: Use unique USB vendor/product ID
Having an unique USB vendor/product ID is required for VIA support.
The vendor ID value is the same as for the `idobo` (ID75) keyboard.
* id80: Fix right modifiers in the default keymap
For some reason the default keymap converted from the vendor-supplied
JSON had the right Shift, Alt and Ctrl keys mapped to the left side
modifier keycodes.
* id80: Remove empty row 6 (F0) from matrix
The matrix layout which was defined in the vendor-supplied ID80.json
file had 12 rows which corresponded to the left and right parts of the
6 physical rows. However, the row 6 of the matrix (connected to the F0
pin), which corresponded to the right part of the physical bottom row,
was completely empty (all 9 keys of the bottom row were placed in the
matrix row for the left part). Keeping this row in the matrix just
wastes resources; in particular, when the VIA support is enabled, having
a 9×12 matrix with 4 layers leaves only 122 bytes available for dynamic
macros, which is less than the recommended minimum of 128 bytes.
Removing the unused row reduces the matrix size to 9×11, which leaves
194 bytes of EEPROM space for dynamic macros.
* id80: Update row numbers in the LAYOUT macro
Update row numbers in the names of the LAYOUT macro parameters after
removing a row in the middle.
* id80: Set RGBLED_NUM to 20 to match the actual PCB
The vendor-supplied ID80.json file specified that the PCB should have
28 RGB LEDs in the chain. However, the actual PCB that was shipped
from AliExpress had 20 LEDs in the chain (16 underglow LEDs, and then 4
more LEDs on top of the PCB, to the right of the Enter key location).
Update RGBLED_NUM to match the actual PCB.
* Add support for Caps Lock LED
Currently ignores the fact that led_state is not synced between halves, so caps lock LED doesn't do anything if USB is plugged into right half
* Set initial backlight and RGB mode/values on blank EEPROM
* Set default VIA layout options
* Add backlight/RGB ifdefs
* Set bootloaders for each rev
* Add handwired BDN9-BLE
* Apply suggestions from code review
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update keyboards/handwired/bdn9_ble/rules.mk
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update keyboards/handwired/bdn9_ble/rules.mk
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update keyboards/handwired/bdn9_ble/readme.md
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Cannonkeys DB60 Keyboard
* WhitespacE
* Add ISO and make layer names more idiomatic
* backlight enable
* Remove big backslash from ISO
* Apply suggestions from code review
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update for correct matrix
* Apply suggestions from code review
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update chibios config files
* Complete VIA keymap
* Remove ugly hack comments
* Update keyboards/cannonkeys/db60/rules.mk
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>
Co-authored-by: Joel Challis <git@zvecr.com>
* Save progress
* Finished matrix and everything
* Apply suggestions from code review
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update DevastatingTKL
* Renames
* Add renamed files
* Update chibios files and VIA keymap for completion
* Some cleanup
* Apply suggestions from code review
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/cannonkeys/devastatingtkl/rules.mk
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>
Co-authored-by: Joel Challis <git@zvecr.com>
* Added personal minivan keymap, and started work on splitish directory
* Merge branch 'splitish' of github.com:RSchneyer/qmk_firmware into splitish
Trying to undo attempted fix
Added splitish keyboard files, removed personal Minivan keymap
* Removed personal Minivan keymaps
* Fixed small issue in readme
* Added changes based on inital PR feedback
* forgot a semicolon
* Quick config.h file and default keymap update
* added vim compatibility, backspace above enter, and general macOS optimizations on top of default layout
* add space65 macOS keymap for vim users with an optimized bottom row
* Update keyboards/projectkb/alice/keymaps/keithlo/keymap.c
* Update mousekey parameters in userspace
* Disable GRAVE_ESC in boards where it isn't used
* Tweak MODERN_DOLCH_RED and reset RGB on Shift+Toggle in KBD6X
* Disable RGB controls when Fn/Caps indicator lights are on
* Use LTO_ENABLE instead of setting -flto directly
* Add led_update_keymap, use SS_LCTL instead of SS_LCTRL
* Change TAPPING_TOGGLE from 2 to 3
* Fix RGB LED count on YD60MQ
* Split YD60MQ into 12-LED and 16-LED revisions
* Update readmes
* Make 12led the default version
* Readd base rules.mk, version→variant in readme
* Add syntax highlighting to code blocks in readme
* Add Via keymap for BM16-A
* Apply suggestions from code review
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Deleted as per noroadsleft
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>