Compare commits

..
47 Commits
Author SHA1 Message Date
James Young 57581ad733 Fix typos in stale.yml (#7489) 2019-11-26 21:45:18 +00:00
Kemmel-Dev b663a5b248 [Keymap] added a KBD67v2 layout that allows swapping of num/sym keys and f-rows (#7469) 2019-11-26 10:28:44 -08:00
moyi4681 f6ffa28b27 [Keyboard] change xbows/knight pins of capslock Indicator (#7486) 2019-11-26 10:02:42 -08:00
fauxpark 170261328e Add language prefixes to docs sidebar entries and readmes (#7406)
* Add language prefixes to docs sidebar entries and readmes

* Remove prefix where it doesn't belong
2019-11-26 18:22:13 +11:00
fauxpark 5a6737a778 Send string keycode tweaks (#7471) 2019-11-25 23:16:58 -08:00
Thomas BaartandDrashna Jaelre a2cedf4555 [Keymap] Added keymap for Tessachka (#7457)
* Added keymap for Tessachka

* Update keyboards/kyria/keymaps/tessachka/keymap.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/kyria/keymaps/tessachka/rules.mk

Co-Authored-By: Drashna Jaelre <[email protected]>
2019-11-25 22:51:58 -08:00
Salicylic-acid3 397897180b [Keyboard] Add keyboard 7skb (#7468)
* Add keyboard 7skb

Add 7skb keyboard.

A 63 keys HHKB Layout keyboard.
Salicylic-acid3

* Update keyboards/7skb/keymaps/default/keymap.c

* Update keyboards/7skb/keymaps/default/keymap.c

* Update keyboards/7skb/keymaps/default/keymap.c

* Update keyboards/7skb/keymaps/salicylic/keymap.c

* Update keyboards/7skb/readme.md

* Update keyboards/7skb/readme.md

* Update keyboards/7skb/readme.md

* keymap update

Remove extra parts

* Delete rules.mk

* Update keyboards/7skb/rev1/rev1.c
2019-11-25 20:46:03 -08:00
fauxpark 36cde567ab [Core] Remove PROGRAM_CMD in mcu_selection.mk for 32A (#7482) 2019-11-25 19:51:40 -08:00
Martin Kauppinen 572d3329eb [Keyboard] Add hand swap config matrix for preonic rev 3 (#7460)
* Add hand swap config matrix for preonic rev 3

* Refactor hand swap config matrix into revision source files
2019-11-25 13:38:23 -08:00
yiancar c0fe8dbfb4 IS31FL3733 Dirty page fix (#7079)
* IS31FL3733 Dirty page fix

Function IS31FL3733_update_led_control_registers was never setting update register to false. As a result the led on/off page was being written every transaction even when it was not modified. This is ineficient and causes lots of bandwidth use.

-> Fix the IS31FL3733_update_led_control_registers.
-> After testing it was evident that failed I2C transactions could corrupt the Led on/off register.
-> Update IS31FL3733_write_pwm_buffer and IS31FL3733_write_register functions to return 0 upon succesful tranmission and 1 if any of the transmitions within the function fail.
-> Modify IS31FL3733_update_pwm_buffers function so if any of the IS31FL3733_write_pwm_buffer transuction fails, the g_led_control_registers_update_required register is set to true forcing a rewrite of the led on/off register in case it was corrupted.

* Minor comment update

* Upsie:)

* Update is31fl3733.c

* Return fix

* more return fix

* type change

* more boolian logic reversal:)
2019-11-25 20:33:52 +00:00
Joel Challis f0f161e572 Remove vusb 'reset to bootloader' hid message due to security implications (#7456) 2019-11-25 20:33:02 +00:00
Takeshi ISHII 3a7085dee4 fix link in docs/translating.md (#7474) 2019-11-25 00:37:08 +00:00
yynmt 583094aa26 Add RGB LED for Dozen0 (#7458)
* enable rgb led.

* add layer for default keymap

* Update keymap.c

* Update rules.mk

* Update rules.mk

* fix keymaps

remove backslashes.
2019-11-24 20:35:03 +11:00
Rob Rogers f4fb0e1617 [Keyboard] Add candybar lefty layout (#7286)
* Add left number pad layout to candybar keyboard

* successfully builds

* Rename new layout to LAYOUT_lefty and add corresponding LAYOUT_righty as alias for LAYOUT

* merge

* Add lefty keymap

* Add lefty layout to info.json

* Added LAYOUT_righty to info.json and corrected some misplaced braces

* Update keyboards/candybar/info.json

* removed redundant sections as suggested.
2019-11-23 23:37:09 -08:00
Joel Challis 6a8c0a6468 [Keyboard] Update ATmega32A readme files to match template (#7462)
* Update atmega32a readme files to match template

* Update atmega32a readme files to match template - fixes

* Apply suggestions from code review
2019-11-23 20:42:20 -08:00
Can BaytokandJames Young d14573620d [Keyboard] Added Cans12er keyboard (#7455)
* added cans12er keyboard

* updated readme

Updated the readme to conform with the provided template from the qmk_firmware githubpage

* Update keyboards/cans12er/README.md

Co-Authored-By: James Young <[email protected]>

* Changed configuration

Changed the configuration based on the Change Request from PR #7455 made by github user noroadsleft
2019-11-23 16:56:18 -08:00
fauxpark 9ea9806d67 Set up language fallback for docs, and update translation guidelines (#7403)
* Set up language fallback for docs, and update translation guidelines

* Title Case

* Add ID example

* Link to emoji flag cheatsheet

* Move docs preview section to contributing.md

* Point to docs preview in the readme
2019-11-23 16:07:15 +00:00
a_p_u_r_o 7874f297b3 Remove CR when computing BOOTLOADER_SIZE. (#7453) 2019-11-24 03:01:03 +11:00
Yan-Fa Li 3541f01a72 Update led_update_kb example (#7451)
* Update led_update_kb example

* Update comment to explain pin behavior

* wordsmith

* wordsmithing 2
2019-11-23 15:37:25 +00:00
Hilary B. Brenum eae21eed74 [Keymap] Adding hbbisenieks keymap for keebio/iris (#7440)
* hbbisenieks keymap

* fixed right encoder

* changes suggested during pr
2019-11-22 14:40:18 -08:00
Yan-Fa Liandfauxpark e62ab7e259 Allow overriding of all functions in wonderland.c (#7198)
* f

* Allow overriding of all functions in wonderland.c

 - needed for custom LED functions in keymap.c

* Example of layer indication via LEDs

optimize

* Use newer led_update_kb and led_update_user hooks

 - these allow overriding without use of __attribute((weak))__

* Update led documentation a bit

 - clarify some of the wording around how  to use led_update_user

* Update led_update_user example

* Update audio example to be complete

* trailing spaces smh

* spaces

* spaces

* smh

* Less code is good

* Update docs/custom_quantum_functions.md

Co-Authored-By: fauxpark <[email protected]>

* Update docs/custom_quantum_functions.md

Co-Authored-By: fauxpark <[email protected]>

* Update docs/custom_quantum_functions.md

Co-Authored-By: fauxpark <[email protected]>

* Update docs/custom_quantum_functions.md

Co-Authored-By: fauxpark <[email protected]>

* Update docs/custom_quantum_functions.md

Co-Authored-By: fauxpark <[email protected]>

* Update docs/custom_quantum_functions.md

Co-Authored-By: fauxpark <[email protected]>
2019-11-22 12:55:45 -08:00
dsanchezseco 0270d4d5a1 [Keymap] changed knight ridder offset to face me on planck (#7445)
* added rgblight controls to planck keymap

* fixed knight ridder offset to face me
2019-11-22 10:26:45 -08:00
Joel Challis 7e9ed2acbf Fix clang-format logic within CI (#7386) 2019-11-22 17:02:55 +00:00
66d4734371 Improve and streamline MSYS2 installation (#7232)
* Make MSYS force install

* Cleanup msys script

* Update to gcc 8.3 for arm and avr

And cleanup install scripts for both

* Fix path and scripts

* Fix links

* No confirmation for msys

* Tweak arm function since file structure changed

* Fix spacing and wording

Co-Authored-By: fauxpark <[email protected]>

* Only use MSYS2's make binary

Co-Authored-By: fauxpark <[email protected]>

* Some wordsmithing

Co-Authored-By: Mikkel Jeppesen <[email protected]>

* Add "disable download timeout" for download issues in MSYS

Co-Authored-By: Mikkel Jeppesen <[email protected]>

* Clean up URL for arm gcc download

Co-Authored-By: Joel Challis <[email protected]>

* add pip

Co-Authored-By: fauxpark <[email protected]>
2019-11-22 18:09:02 +11:00
Drashna Jaelre 6cf574396a [Keyboard] Update default keymaps to use layer_state_t (#7444)
* Update default keymaps to use `layer_state_t`

* Convert binon32 as get_highest_layer in default keymaps
2019-11-21 22:40:29 -08:00
dsanchezseco f0a9c10b6d [Keymap] added rgblight controls to planck keymap (#7439) 2019-11-21 22:15:40 -08:00
fauxpark 78954a0d3e [Keyboard] Add three missing layouts (#7441)
* Add three missing default layouts

* Add layout support to tragicforce68

* Not really 68%

* Fix dumb mistake

* Update info.json too

* Apply suggestions from code review
2019-11-21 20:25:19 -08:00
fauxpark 02412156d5 Add 4-character aliases for sendstring keycodes (#7409)
* Add 4-character aliases for sendstring keycodes

* Remove pointless mail keycode redefinition

* Forgot brightness keycodes
2019-11-22 14:11:28 +11:00
Thomas Baart e70fef03c1 Updated Kyria readme.md with relocated build guide (#7438) 2019-11-21 21:03:47 +00:00
Erovia 7e7eb69edf MILC: Add support for hidden subcommands (#7034)
* MILC: Add support for hidden subcommands

Subcommands with 'hidden=True' will not show up in the help output, but
will work as any other subcommands.

* Hide those hidden submodules, for real now

* Rebase on latest MILC
2019-11-21 12:52:00 -08:00
Drashna Jaelreandfauxpark f0790a722d Change label for stale bot (#7429)
* Change label for stale bot

* Reword things to be more concise and clear

* git add .  -- that's how this works, right?

Co-Authored-By: fauxpark <[email protected]>

* Remove Discussion label from issue templates
2019-11-21 11:02:39 -08:00
fauxpark 57815dbc3b [Keymap] Clean up & improve default layouts (#7428)
* Clean up & improve default layouts

* Add newline at EOF in readmes

* Oops
2019-11-21 03:50:23 -08:00
moyi4681andfauxpark 5d76b5f655 [Keyboard] dztech rgb pcb v2 support (#7423)
* dztech rgb pcb v2 support

dztech rgb pcb v2 support

* Update config.h

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update keyboards/dztech/dz60rgb/v2/rules.mk

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/dztech/dz60rgb/v2/rules.mk

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/dztech/dz60rgb_ansi/v2/rules.mk

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/dztech/dz60rgb_ansi/v2/rules.mk

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/dztech/dz60rgb_wkl/v2/rules.mk

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/dztech/dz60rgb_wkl/v2/rules.mk

Co-Authored-By: fauxpark <[email protected]>
2019-11-21 03:19:10 -08:00
Tim SchumacherandDrashna Jaelre 84065e1d74 [Keymap] Add DZ60, Levinson keymaps, twschum user files (#7358)
* Adds layout for DZ60rev2 plate B, options 4 and 10

* Use KC_TRANS for layer keys

* Format layer0 with visual key size layout

* Add RGB controls; add start description; add KC_LOCK

* Update comments on rules.mk for DZ60

* Gets keymap compiling

* Fix wiring for shift on row 3

* Hold a with other key to send Ctrl-A before other key

* Adds compile-time defined mac-compatability media keycodes

* Adds logic in place for capturing taps (w/ timeout)

* Add send_keys(...) which can send up to 64 nested keycodes

* Implement send_keys callable with n repeats

* Tweaks some of the keymap

* Add reset keycode; add disable to custom shortcuts

* Adds a special "off" layer where bonus mod goes to layer 0, every other key KC_NO

* Adjust timeout; mousekey settings

* Changes layout of Home,End,PgUp/Dn on the dedicated arrow keys L1/L2

* PoC on rgb lighted layer indication

* Refactors color table defines

* Adds logic for controlling layer lights

* Only change state on one side of the event lol

* Switch back to Tapping Toggle for layer 4

* Add custom config file for keyboard; TT and mousekey settings

* Code cleanup; starting to refactor special ctrl tapping keys functions

* Move defines and reak out functions

* Remove debugging light

* Adjust keymaps; add enter

* Adds a couple custom macros

* Add simplified version of keymap to help debug issues

* Adds basi numpad configuration for levinson keyboard half

* Use ANSI ctrl key as layer 1 for better one hand (`)

* Adapt to new 8bit hue from #5547; layer enum use everywhere

* Move custom code out to users/ space

* Flip col pins, move key assignments to "left hand"

* Update readme

* Implement placeholder macros

* Notes

* Reduce tapping time for SFT_T(/)

* Adds vim features; refactors things

* Adds fork of the vim features written by xton

* Use correct backspace keycode

* Add VIM_ESC

* Add "OFF" to the RGB/HSV definitions

* Clean up rules, use new "OFF" definition

* Add windows KC_CALCULATOR key to numpad

* Reformat layers with better guide; change layer names

* Add sleep key

* Change timeout delay

* Add a "code paste" which surrounds a ^V with ```

* Try removing shift tap on rshift /

* Update macros

* Update the "code paste" macro

* Update keymap with reset, calc, equals

* Update keyboards/dz60/keymaps/twschum_b_4_10_simple/keymap.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update keyboards/dz60/keymaps/twschum_b_4_10/keymap.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update users/twschum/twschum.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* Update users/twschum/twschum.c

Co-Authored-By: Drashna Jaelre <[email protected]>

* Revert quantum/rgblight_list.h

* Better name for split space layout; rename KEYMAP->LAYOUT

* Rename KEYMAP->LAYOUT

* Use simpler :flash command

* Clean up layout files

* Use qmk's MOD_MASK_CTRL

* Sync lufa submodule

* Cleanup from noroadsleft's PR comments

* Modernize vim layer code
2019-11-21 03:07:33 -08:00
Takeshi ISHII 90bb7db48e [Docs] Update japanese translation of newbs.md and related documents. (#7431)
* Update japanese translation of newbs.md and related documents.

* document link id change
* add `ja/` in each link
  `[xxx](yyy.md)` --> `[xxx](ja/yyy.md)`

* copy docs/ja/_summary.md from umi-umi's #7248 and fix it
2019-11-21 02:36:38 -08:00
Takeshi ISHII e54aadf24a [Docs] fix broken link in docs/newbs_best_practices.md (#7430) 2019-11-21 01:02:15 -08:00
x1 8416a94ad2 [Keyboard] Add pico as a new keyboard (#7419)
* Add keyboards/ pico as a new keyboad.

* Add keyboards/pico rev1.

* Add keyboards/pico keymaps/default.

* Add keyboards/pico keymaps/jis.

* Remove unneeded code of rules.mk.

* Revert rules.mk and remove some comments.
2019-11-20 21:48:30 -08:00
Manna Harbour ecc7355321 [Keymap] Add ALGR and kle image, expand and correct documentation (#7426) 2019-11-20 17:25:55 -08:00
moyi4681 baf6715a7e [Keyboard] knight malposition fix (#7422)
knight malposition fix
2019-11-20 17:22:27 -08:00
fauxpark f7c8e7ff70 Add info.json files for all default layouts (#7425)
* Add info.json files for all default layouts

* Update layouts/default/60_hhkb/layout.json

* Fix layout.json spacing and info.json dimensions
2019-11-20 17:21:23 -08:00
Yan-Fa Liandfauxpark 6776703d8f Postage Board MCU (#7424)
* Postage Board MCU

* Fix keymap

* Postage mini

* Update readme

* R2

* Update readme

* flip

* better image of r1

* Add a DEFAULT_FOLDER to keep zed and ci happy

* Update keyboards/handwired/postageboard/readme.md

Co-Authored-By: fauxpark <[email protected]>

* Update keyboards/handwired/postageboard/readme.md

Co-Authored-By: fauxpark <[email protected]>

* Fix keyboard name
2019-11-20 16:38:51 -08:00
skullydazed f7bdc54c69 Add flake8 to our test suite and fix all errors (#7379)
* Add flake8 to our test suite and fix all errors

* Add some documentation
2019-11-20 14:54:18 -08:00
Joel Challis d2115f7d1c Allow 'make all:<user>' to not build EVERYTHING (#7402) 2019-11-20 22:32:16 +00:00
Drashna Jaelreandfauxpark e6b9980bd4 Remove keymap_config extern from default keymaps (#7399)
* Remove keymap_config extern from default keymaps

* Revert unicode

Apparently VSCode does not like unicode, I didn't actually edit these lines, so it must have been automatic... :(

Co-Authored-By: fauxpark <[email protected]>
2019-11-20 22:31:36 +00:00
kakunpcandJames Young 46606e1ea5 [Keyboard] Add "thedogkeyboard" (#7401)
* add the dog keyboard

* set rgbled

* fix info.json and readme.md

* Update keyboards/thedogkeyboard/readme.md

Co-Authored-By: James Young <[email protected]>

* Update keyboards/thedogkeyboard/readme.md

Co-Authored-By: James Young <[email protected]>

* Update keyboards/thedogkeyboard/readme.md

Co-Authored-By: James Young <[email protected]>

* Update keyboards/thedogkeyboard/readme.md

Co-Authored-By: James Young <[email protected]>

* update thedogkeyboard
2019-11-20 13:16:38 -08:00
trinity1561 0a5125a535 [Keyboard] Update e65.c to fix Caps Lock indicator (#7405)
* Update e65.c

Fixing Caps Lock LED indicator

* Update e65.c

Using new LED functions (led_update_kb)
2019-11-20 13:10:59 -08:00
Drashna Jaelre eb91c96288 [Keymap] All about (ARM) RGB and OLEDs (drashna keymaps) (#7354)
* Add Kyria Keymap

* Enable all RGBLIGHT Animations for ARM and high capacity AVR

* Reduce GNUC version for __has_include

* Cleanup Ortho 4x12 Community layout

* Update Collide 39 keymap

* Cleanup Keymaps

* Enable full 30 LEDs for Ergodox

* Change EEPROM Load timing

* Use RGB Matrix on Planck Rev6

* Use correct keymap swap

* Enable everything for ARM

* Only enable rgb sleep on avr until crash is fixed

* Add additional Kyria keymap config

* Overhaul Kyria OLED display

* Improve kyria keymap based on usage

* Minor tweaks to rules

* Update OLED code to truncate properly

* Fix RGB Light layer indication

* Switch all of biton32 to get_highest_layer function

* Fix OLED Keylogger display

* Run qmk cformat over all of my user files

* Slight tweak to kyria based on usage

* Move around LALT_T config

* Add comments about base wrappers to keymaps

* Another cformat pass

* Temp fix for VUSB boards and NKRO

* Convert tabs to spaces in rules.mk files

* Only enable RGBLight if it's enabled

* Add Encoder Flip setting

* Update OLED font file
2019-11-20 12:37:24 -08:00
531 changed files with 17076 additions and 3917 deletions

No files matched your search

+1 -1
View File
@@ -2,7 +2,7 @@
name: Bug report name: Bug report
about: Create a report to help us improve QMK Firmware. about: Create a report to help us improve QMK Firmware.
title: "[Bug] " title: "[Bug] "
labels: bug, help wanted, discussion labels: bug, help wanted
assignees: '' assignees: ''
--- ---
+1 -1
View File
@@ -2,7 +2,7 @@
name: Feature request name: Feature request
about: Suggest a new feature or changes to existing features. about: Suggest a new feature or changes to existing features.
title: "[Feature Request] " title: "[Feature Request] "
labels: enhancement, help wanted, discussion labels: enhancement, help wanted
assignees: '' assignees: ''
--- ---
+1 -1
View File
@@ -2,7 +2,7 @@
name: Other issues name: Other issues
about: Anything else that doesn't fall into the above categories. about: Anything else that doesn't fall into the above categories.
title: '' title: ''
labels: help wanted, question, discussion labels: help wanted, question
assignees: '' assignees: ''
--- ---
+8 -2
View File
@@ -17,6 +17,9 @@ pulls:
This pull request has been automatically marked as stale because it has not had This pull request has been automatically marked as stale because it has not had
activity in the last 45 days. It will be closed in 30 days if no further activity occurs. activity in the last 45 days. It will be closed in 30 days if no further activity occurs.
Please feel free to give a status update now, or re-open when it's ready. Please feel free to give a status update now, or re-open when it's ready.
For maintainers: Please label with `awaiting review`, `breaking_change`, `in progress`, or `on hold` to prevent
the issue from being re-flagged.
# Comment to post when closing a stale Issue or Pull Request. # Comment to post when closing a stale Issue or Pull Request.
closeComment: > closeComment: >
Thank you for your contribution! Thank you for your contribution!
@@ -33,14 +36,17 @@ pulls:
# Issue specific configuration # Issue specific configuration
issues: issues:
staleLabel: solved staleLabel: stale
limitPerRun: 10 limitPerRun: 10
daysUntilStale: 90 daysUntilStale: 90
daysUntilClose: 30 daysUntilClose: 30
markComment: > markComment: >
This issue has been automatically marked as resolved because it has not had activity in the This issue has been automatically marked as stale because it has not had activity in the
last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity
occurs. occurs.
For maintainers: Please label with `bug`, `in progress`, `on hold`, `discussion` or `to do` to prevent
the issue from being re-flagged.
closeComment: > closeComment: >
This issue has been automatically closed because it has not had activity in the last 30 days. This issue has been automatically closed because it has not had activity in the last 30 days.
If this issue is still valid, re-open the issue and let us know. If this issue is still valid, re-open the issue and let us know.
+5
View File
@@ -272,12 +272,14 @@ define PARSE_RULE
# If the rule starts with all, then continue the parsing from # If the rule starts with all, then continue the parsing from
# PARSE_ALL_KEYBOARDS # PARSE_ALL_KEYBOARDS
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true) ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
KEYBOARD_RULE=all
$$(eval $$(call PARSE_ALL_KEYBOARDS)) $$(eval $$(call PARSE_ALL_KEYBOARDS))
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true) else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
$$(eval $$(call PARSE_TEST)) $$(eval $$(call PARSE_TEST))
# If the rule starts with the name of a known keyboard, then continue # If the rule starts with the name of a known keyboard, then continue
# the parsing from PARSE_KEYBOARD # the parsing from PARSE_KEYBOARD
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true) else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true)
KEYBOARD_RULE=$$(MATCHED_ITEM)
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM))) $$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
# Otherwise use the KEYBOARD variable, which is determined either by # Otherwise use the KEYBOARD variable, which is determined either by
# the current directory you run make from, or passed in as an argument # the current directory you run make from, or passed in as an argument
@@ -380,6 +382,9 @@ define PARSE_KEYBOARD
# Otherwise try to match the keymap from the current folder, or arguments to the make command # Otherwise try to match the keymap from the current folder, or arguments to the make command
else ifneq ($$(KEYMAP),) else ifneq ($$(KEYMAP),)
$$(eval $$(call PARSE_KEYMAP,$$(KEYMAP))) $$(eval $$(call PARSE_KEYMAP,$$(KEYMAP)))
# Otherwise if we are running make all:<user> just skip
else ifeq ($$(KEYBOARD_RULE),all)
# $$(info Skipping: No user keymap for $$(CURRENT_KB))
# Otherwise, make all keymaps, again this is consistent with how it works without # Otherwise, make all keymaps, again this is consistent with how it works without
# any arguments # any arguments
else else
+2 -2
View File
@@ -41,7 +41,7 @@ else:
os.environ['QMK_VERSION'] = 'nogit-' + strftime('%Y-%m-%d-%H:%M:%S') + '-dirty' os.environ['QMK_VERSION'] = 'nogit-' + strftime('%Y-%m-%d-%H:%M:%S') + '-dirty'
# Setup the CLI # Setup the CLI
import milc import milc # noqa
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}' milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'
@@ -61,7 +61,7 @@ def main():
os.chdir(qmk_dir) os.chdir(qmk_dir)
# Import the subcommands # Import the subcommands
import qmk.cli import qmk.cli # noqa
# Execute # Execute
return_code = milc.cli() return_code = milc.cli()
+1 -1
View File
@@ -111,7 +111,7 @@
* [Using Eclipse with QMK](other_eclipse.md) * [Using Eclipse with QMK](other_eclipse.md)
* [Using VSCode with QMK](other_vscode.md) * [Using VSCode with QMK](other_vscode.md)
* [Support](support.md) * [Support](support.md)
* [How to add translations](translating.md) * [Translating the QMK Docs](translating.md)
* QMK Internals (In Progress) * QMK Internals (In Progress)
* [Defines](internals_defines.md) * [Defines](internals_defines.md)
+32
View File
@@ -173,3 +173,35 @@ You will only be able to access these arguments using `cli.args`. For example:
``` ```
cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.output) cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.output)
``` ```
# Testing, and Linting, and Formatting (oh my!)
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `pyformat` subcommands to run these tests:
### Testing and Linting
qmk pytest
### Formatting
qmk pyformat
## Formatting Details
We use [yapf](https://github.com/google/yapf) to automatically format code. Our configuration is in the `[yapf]` section of `setup.cfg`.
?> Tip- Many editors can use yapf as a plugin to automatically format code as you type.
## Testing Details
Our tests can be found in `lib/python/qmk/tests/`. You will find both unit and integration tests in this directory. We hope you will write both unit and integration tests for your code, but if you do not please favor integration tests.
If your PR does not include a comprehensive set of tests please add comments like this to your code so that other people know where they can help:
# TODO(unassigned/<yourGithubUsername>): Write <unit|integration> tests
We use [nose2](https://nose2.readthedocs.io/en/latest/getting_started.html) to run our tests. You can refer to the nose2 documentation for more details on what you can do in your test functions.
## Linting Details
We use flake8 to lint our code. Your code should pass flake8 before you open a PR. This will be checked when you run `qmk pytest` and by CI when you submit a PR.
+12
View File
@@ -101,6 +101,18 @@ enum my_keycodes {
}; };
``` ```
### Previewing the Documentation
Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder:
./bin/qmk docs
or if you only have Python 3 installed:
python3 -m http.server 8936
and navigating to `http://localhost:8936/`.
## Keymaps ## Keymaps
Most first-time QMK contributors start with their personal keymaps. We try to keep keymap standards pretty casual (keymaps, after all, reflect the personality of their creators) but we do ask that you follow these guidelines to make it easier for others to discover and learn from your keymap. Most first-time QMK contributors start with their personal keymaps. We try to keep keymap standards pretty casual (keymaps, after all, reflect the personality of their creators) but we do ask that you follow these guidelines to make it easier for others to discover and learn from your keymap.
+42 -59
View File
@@ -114,7 +114,15 @@ Two more deprecated functions exist that provide the LED state as a `uint8_t`:
This function will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter. This function will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter.
You must return either `true` or `false` from this function, depending on whether you want to override the keyboard-level implementation. By convention, return `true` from `led_update_user()` to get the `led_update_kb()` hook to run its code, and
return `false` when you would prefer not to run the code in `led_update_kb()`.
Some examples include:
- overriding the LEDs to use them for something else like layer indication
- return `false` because you do not want the `_kb()` function to run, as it would override your layer behavior.
- play a sound when an LED turns on or off.
- return `true` because you want the `_kb` function to run, and this is in addition to the default LED behavior.
?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead. ?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead.
@@ -122,66 +130,41 @@ You must return either `true` or `false` from this function, depending on whethe
```c ```c
bool led_update_kb(led_t led_state) { bool led_update_kb(led_t led_state) {
if(led_update_user(led_state)) { bool res = led_update_user(led_state);
if (led_state.num_lock) { if(res) {
writePinLow(B0); // writePin sets the pin high for 1 and low for 0.
} else { // In this example the pins are inverted, setting
writePinHigh(B0); // it low/0 turns it on, and high/1 turns the LED off.
} // This behavior depends on whether the LED is between the pin
if (led_state.caps_lock) { // and VCC or the pin and GND.
writePinLow(B1); writePin(B0, !led_state.num_lock);
} else { writePin(B1, !led_state.caps_lock);
writePinHigh(B1); writePin(B2, !led_state.scroll_lock);
} writePin(B3, !led_state.compose);
if (led_state.scroll_lock) { writePin(B4, !led_state.kana);
writePinLow(B2);
} else {
writePinHigh(B2);
}
if (led_state.compose) {
writePinLow(B3);
} else {
writePinHigh(B3);
}
if (led_state.kana) {
writePinLow(B4);
} else {
writePinHigh(B4);
}
return true;
} }
return res;
} }
``` ```
### Example `led_update_user()` Implementation ### Example `led_update_user()` Implementation
This incomplete example would play a sound if Caps Lock is turned on or off. It returns `true`, because you also want the LEDs to maintain their state.
```c ```c
#ifdef AUDIO_ENABLE
float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
#endif
bool led_update_user(led_t led_state) { bool led_update_user(led_t led_state) {
if (led_state.num_lock) { #ifdef AUDIO_ENABLE
writePinLow(B0); static uint8_t caps_state = 0;
} else { if (caps_state != led_state.caps_lock) {
writePinHigh(B0); led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off);
} caps_state = led_state.caps_lock;
if (led_state.caps_lock) {
writePinLow(B1);
} else {
writePinHigh(B1);
}
if (led_state.scroll_lock) {
writePinLow(B2);
} else {
writePinHigh(B2);
}
if (led_state.compose) {
writePinLow(B3);
} else {
writePinHigh(B3);
}
if (led_state.kana) {
writePinLow(B4);
} else {
writePinHigh(B4);
} }
#endif
return true; return true;
} }
``` ```
@@ -411,7 +394,7 @@ void keyboard_post_init_user(void) {
// Set default layer, if enabled // Set default layer, if enabled
if (user_config.rgb_layer_change) { if (user_config.rgb_layer_change) {
rgblight_enable_noeeprom(); rgblight_enable_noeeprom();
rgblight_sethsv_noeeprom_cyan(); rgblight_sethsv_noeeprom_cyan();
rgblight_mode_noeeprom(1); rgblight_mode_noeeprom(1);
} }
} }
@@ -459,18 +442,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
return true; // Let QMK send the enter press/release events return true; // Let QMK send the enter press/release events
case RGB_LYR: // This allows me to use underglow as layer indication, or as normal case RGB_LYR: // This allows me to use underglow as layer indication, or as normal
if (record->event.pressed) { if (record->event.pressed) {
user_config.rgb_layer_change ^= 1; // Toggles the status user_config.rgb_layer_change ^= 1; // Toggles the status
eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
if (user_config.rgb_layer_change) { // if layer state indication is enabled, if (user_config.rgb_layer_change) { // if layer state indication is enabled,
layer_state_set(layer_state); // then immediately update the layer color layer_state_set(layer_state); // then immediately update the layer color
} }
} }
return false; break; return false; break;
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference) case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference)
if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
if (user_config.rgb_layer_change) { // only if this is enabled if (user_config.rgb_layer_change) { // only if this is enabled
user_config.rgb_layer_change = false; // disable it, and user_config.rgb_layer_change = false; // disable it, and
eeconfig_update_user(user_config.raw); // write the setings to EEPROM eeconfig_update_user(user_config.raw); // write the setings to EEPROM
} }
} }
@@ -483,7 +466,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EEP_RST` keycode or [Bootmagic](feature_bootmagic.md) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued. And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EEP_RST` keycode or [Bootmagic](feature_bootmagic.md) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
```c ```c
void eeconfig_init_user(void) { // EEPROM is getting reset! void eeconfig_init_user(void) { // EEPROM is getting reset!
user_config.raw = 0; user_config.raw = 0;
user_config.rgb_layer_change = true; // We want this enabled by default user_config.rgb_layer_change = true; // We want this enabled by default
eeconfig_update_user(user_config.raw); // Write default value to EEPROM now eeconfig_update_user(user_config.raw); // Write default value to EEPROM now
@@ -508,7 +491,7 @@ The `val` is the value of the data that you want to write to EEPROM. And the `e
By default, the tapping term is defined globally, and is not configurable by key. For most users, this is perfectly fine. But in come cases, dual function keys would be greatly improved by different timeouts than `LT` keys, or because some keys may be easier to hold than others. Instead of using custom key codes for each, this allows for per key configurable `TAPPING_TERM`. By default, the tapping term is defined globally, and is not configurable by key. For most users, this is perfectly fine. But in come cases, dual function keys would be greatly improved by different timeouts than `LT` keys, or because some keys may be easier to hold than others. Instead of using custom key codes for each, this allows for per key configurable `TAPPING_TERM`.
To enable this functionality, you need to add `#define TAPPING_TERM_PER_KEY` to your `config.h`, first. To enable this functionality, you need to add `#define TAPPING_TERM_PER_KEY` to your `config.h`, first.
## Example `get_tapping_term` Implementation ## Example `get_tapping_term` Implementation
+1 -1
View File
@@ -111,7 +111,7 @@
* [Support](de/support.md) * [Support](de/support.md)
* [Übersetzungen](de/translating.md) * [Übersetzungen](de/translating.md)
* QMK Internals (de/In Progress) * QMK Internals (In Progress)
* [Defines](de/internals_defines.md) * [Defines](de/internals_defines.md)
* [Input Callback Reg](de/internals_input_callback_reg.md) * [Input Callback Reg](de/internals_input_callback_reg.md)
* [Midi Device](de/internals_midi_device.md) * [Midi Device](de/internals_midi_device.md)
+2 -2
View File
@@ -19,7 +19,7 @@ De cualquier manera, también puedes descargarlo directamente en formatos ([zip]
## Cómo compilar ## Cómo compilar
Antes de poder compilar, necesitarás [instalar un entorno](getting_started_build_tools.md) para el desarrollo de AVR y/o ARM. Una vez hayas completado este paso, usarás el comando `make` para compilar un teclado y keymap con la siguiente notación: Antes de poder compilar, necesitarás [instalar un entorno](es/getting_started_build_tools.md) para el desarrollo de AVR y/o ARM. Una vez hayas completado este paso, usarás el comando `make` para compilar un teclado y keymap con la siguiente notación:
make planck/rev4:default make planck/rev4:default
@@ -29,4 +29,4 @@ Este ejemplo compilaría la revisión `rev4` del teclado `planck` con el keymap
## Cómo personalizar ## Cómo personalizar
QMK tiene montones de [características](features.md) para explorar, y una buena cantidad de [documentación de referencia](http://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayoría de las características modificando tu [keymap](keymap.md), y cambiando los [keycodes](keycodes.md). QMK tiene montones de [características](es/features.md) para explorar, y una buena cantidad de [documentación de referencia](http://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayoría de las características modificando tu [keymap](es/keymap.md), y cambiando los [keycodes](es/keycodes.md).
+104 -104
View File
@@ -1,121 +1,121 @@
* [Guía completa para novatos](newbs.md) * [Guía completa para novatos](es/newbs.md)
* [Empezando](newbs_getting_started.md) * [Empezando](es/newbs_getting_started.md)
* [Construyendo tu primer firmare](newbs_building_firmware.md) * [Construyendo tu primer firmare](es/newbs_building_firmware.md)
* [Flasheando el firmware](newbs_flashing.md) * [Flasheando el firmware](es/newbs_flashing.md)
* [Testeando y depurando ](newbs_testing_debugging.md) * [Testeando y depurando ](es/newbs_testing_debugging.md)
* [Mejores práticas](newbs_best_practices.md) * [Mejores práticas](es/newbs_best_practices.md)
* [Recursos de aprendizaje](newbs_learn_more_resources.md) * [Recursos de aprendizaje](es/newbs_learn_more_resources.md)
* [QMK Basics](README.md) * [QMK Basics](es/README.md)
* [Introducción a QMK](getting_started_introduction.md) * [Introducción a QMK](es/getting_started_introduction.md)
* [QMK CLI](cli.md) * [QMK CLI](es/cli.md)
* [Configuración de QMK CLI](cli_configuration.md) * [Configuración de QMK CLI](es/cli_configuration.md)
* [Contribuyendo a QMK](contributing.md) * [Contribuyendo a QMK](es/contributing.md)
* [Cómo usar Github](getting_started_github.md) * [Cómo usar Github](es/getting_started_github.md)
* [Obtener ayuda](getting_started_getting_help.md) * [Obtener ayuda](es/getting_started_getting_help.md)
* [Cambios incompatibles](breaking_changes.md) * [Cambios incompatibles](es/breaking_changes.md)
* [30 Ago 2019](ChangeLog/20190830.md) * [30 Ago 2019](es/ChangeLog/20190830.md)
* [Preguntas frecuentes](faq.md) * [Preguntas frecuentes](es/faq.md)
* [General](faq_general.md) * [General](es/faq_general.md)
* [Construir/Compilar QMK](faq_build.md) * [Construir/Compilar QMK](es/faq_build.md)
* [Depurando/Encontrando problemas en QMK](faq_debug.md) * [Depurando/Encontrando problemas en QMK](es/faq_debug.md)
* [Keymap](faq_keymap.md) * [Keymap](es/faq_keymap.md)
* [Instalación de drivers con Zadig](driver_installation_zadig.md) * [Instalación de drivers con Zadig](es/driver_installation_zadig.md)
* Guías detalladas * Guías detalladas
* [Instalar herramientas construcción](getting_started_build_tools.md) * [Instalar herramientas construcción](es/getting_started_build_tools.md)
* [Guía Vagrant](getting_started_vagrant.md) * [Guía Vagrant](es/getting_started_vagrant.md)
* [Instrucciones de Construcción/Compilado](getting_started_make_guide.md) * [Instrucciones de Construcción/Compilado](es/getting_started_make_guide.md)
* [Flasheando Firmware](flashing.md) * [Flasheando Firmware](es/flashing.md)
* [Personalizando funcionalidad](custom_quantum_functions.md) * [Personalizando funcionalidad](es/custom_quantum_functions.md)
* [Visión general del Keymap](keymap.md) * [Visión general del Keymap](es/keymap.md)
* [Hardware](hardware.md) * [Hardware](es/hardware.md)
* [Procesadores AVR](hardware_avr.md) * [Procesadores AVR](es/hardware_avr.md)
* [Drivers](hardware_drivers.md) * [Drivers](es/hardware_drivers.md)
* Referencia * Referencia
* [Pautas de teclados](hardware_keyboard_guidelines.md) * [Pautas de teclados](es/hardware_keyboard_guidelines.md)
* [Opciones de configuración](config_options.md) * [Opciones de configuración](es/config_options.md)
* [Keycodes](keycodes.md) * [Keycodes](es/keycodes.md)
* [Convenciones de código - C](coding_conventions_c.md) * [Convenciones de código - C](es/coding_conventions_c.md)
* [Convenciones de código - Python](coding_conventions_python.md) * [Convenciones de código - Python](es/coding_conventions_python.md)
* [Mejores prácticas de documentación](documentation_best_practices.md) * [Mejores prácticas de documentación](es/documentation_best_practices.md)
* [Plantillas de documentación](documentation_templates.md) * [Plantillas de documentación](es/documentation_templates.md)
* [Glosario](reference_glossary.md) * [Glosario](es/reference_glossary.md)
* [Tests unitarios](unit_testing.md) * [Tests unitarios](es/unit_testing.md)
* [Funciones útiles](ref_functions.md) * [Funciones útiles](es/ref_functions.md)
* [Sporte configurador](reference_configurator_support.md) * [Sporte configurador](es/reference_configurator_support.md)
* [Formato info.json](reference_info_json.md) * [Formato info.json](es/reference_info_json.md)
* [Desarrollo Python CLI](cli_development.md) * [Desarrollo Python CLI](es/cli_development.md)
* [Características](features.md) * [Características](es/features.md)
* [Keycodes Básicos](keycodes_basic.md) * [Keycodes Básicos](es/keycodes_basic.md)
* [Teclas US ANSI Shifted](keycodes_us_ansi_shifted.md) * [Teclas US ANSI Shifted](es/keycodes_us_ansi_shifted.md)
* [Keycodes Quantum](quantum_keycodes.md) * [Keycodes Quantum](es/quantum_keycodes.md)
* [Keycodes Avanzados](feature_advanced_keycodes.md) * [Keycodes Avanzados](es/feature_advanced_keycodes.md)
* [Audio](feature_audio.md) * [Audio](es/feature_audio.md)
* [Auto Shift](feature_auto_shift.md) * [Auto Shift](es/feature_auto_shift.md)
* [Retroiluminación](feature_backlight.md) * [Retroiluminación](es/feature_backlight.md)
* [Bluetooth](feature_bluetooth.md) * [Bluetooth](es/feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md) * [Bootmagic](es/feature_bootmagic.md)
* [Combos](feature_combo.md) * [Combos](es/feature_combo.md)
* [Comando](feature_command.md) * [Comando](es/feature_command.md)
* [API Debounce](feature_debounce_type.md) * [API Debounce](es/feature_debounce_type.md)
* [Switch DIP](feature_dip_switch.md) * [Switch DIP](es/feature_dip_switch.md)
* [Macros Dinámicas](feature_dynamic_macros.md) * [Macros Dinámicas](es/feature_dynamic_macros.md)
* [Encoders](feature_encoders.md) * [Encoders](es/feature_encoders.md)
* [Grave Escape](feature_grave_esc.md) * [Grave Escape](es/feature_grave_esc.md)
* [Feedback Háptico](feature_haptic_feedback.md) * [Feedback Háptico](es/feature_haptic_feedback.md)
* [Controlador LCD HD44780](feature_hd44780.md) * [Controlador LCD HD44780](es/feature_hd44780.md)
* [Key Lock](feature_key_lock.md) * [Key Lock](es/feature_key_lock.md)
* [Layouts](feature_layouts.md) * [Layouts](es/feature_layouts.md)
* [Tecla Leader](feature_leader_key.md) * [Tecla Leader](es/feature_leader_key.md)
* [Matriz LED](feature_led_matrix.md) * [Matriz LED](es/feature_led_matrix.md)
* [Macros](feature_macros.md) * [Macros](es/feature_macros.md)
* [Teclas del ratón](feature_mouse_keys.md) * [Teclas del ratón](es/feature_mouse_keys.md)
* [Driver OLED](feature_oled_driver.md) * [Driver OLED](es/feature_oled_driver.md)
* [Teclas One Shot](feature_advanced_keycodes.md#one-shot-keys) * [Teclas One Shot](es/feature_advanced_keycodes.md#one-shot-keys)
* [Dispositivo de apuntado](feature_pointing_device.md) * [Dispositivo de apuntado](es/feature_pointing_device.md)
* [Ratón PS/2](feature_ps2_mouse.md) * [Ratón PS/2](es/feature_ps2_mouse.md)
* [Iluminación RGB](feature_rgblight.md) * [Iluminación RGB](es/feature_rgblight.md)
* [Matriz RGB](feature_rgb_matrix.md) * [Matriz RGB](es/feature_rgb_matrix.md)
* [Cadete espacial](feature_space_cadet.md) * [Cadete espacial](es/feature_space_cadet.md)
* [Teclado dividido](feature_split_keyboard.md) * [Teclado dividido](es/feature_split_keyboard.md)
* [Stenografía](feature_stenography.md) * [Stenografía](es/feature_stenography.md)
* [Swap Hands](feature_swap_hands.md) * [Swap Hands](es/feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md) * [Tap Dance](es/feature_tap_dance.md)
* [Terminal](feature_terminal.md) * [Terminal](es/feature_terminal.md)
* [Impresora Térmica](feature_thermal_printer.md) * [Impresora Térmica](es/feature_thermal_printer.md)
* [Unicode](feature_unicode.md) * [Unicode](es/feature_unicode.md)
* [Userspace](feature_userspace.md) * [Userspace](es/feature_userspace.md)
* [Velocikey](feature_velocikey.md) * [Velocikey](es/feature_velocikey.md)
* Para Makers y Modders * Para Makers y Modders
* [Guía de cableado a mano](hand_wire.md) * [Guía de cableado a mano](es/hand_wire.md)
* [Guía de flasheado de ISP](isp_flashing_guide.md) * [Guía de flasheado de ISP](es/isp_flashing_guide.md)
* [Guía de depuración de ARM](arm_debugging.md) * [Guía de depuración de ARM](es/arm_debugging.md)
* [Driver I2C](i2c_driver.md) * [Driver I2C](es/i2c_driver.md)
* [Controles GPIO](internals_gpio_control.md) * [Controles GPIO](es/internals_gpio_control.md)
* [Conversión Proton C](proton_c_conversion.md) * [Conversión Proton C](es/proton_c_conversion.md)
* Para entender en profundidad * Para entender en profundidad
* [Cómo funcionan los teclados](how_keyboards_work.md) * [Cómo funcionan los teclados](es/how_keyboards_work.md)
* [Entendiendo QMK](understanding_qmk.md) * [Entendiendo QMK](es/understanding_qmk.md)
* Otros temas * Otros temas
* [Usando Eclipse con QMK](other_eclipse.md) * [Usando Eclipse con QMK](es/other_eclipse.md)
* [Usando VSCode con QMK](other_vscode.md) * [Usando VSCode con QMK](es/other_vscode.md)
* [Soporte](support.md) * [Soporte](es/support.md)
* [Cómo añadir traducciones](translating.md) * [Cómo añadir traducciones](es/translating.md)
* QMK Internals (En progreso) * QMK Internals (En progreso)
* [Defines](internals_defines.md) * [Defines](es/internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md) * [Input Callback Reg](es/internals_input_callback_reg.md)
* [Dispositivo Midi](internals_midi_device.md) * [Dispositivo Midi](es/internals_midi_device.md)
* [Proceso de configuración de un dispositivo Midi](internals_midi_device_setup_process.md) * [Proceso de configuración de un dispositivo Midi](es/internals_midi_device_setup_process.md)
* [Utilidad Midi](internals_midi_util.md) * [Utilidad Midi](es/internals_midi_util.md)
* [Funciones Send](internals_send_functions.md) * [Funciones Send](es/internals_send_functions.md)
* [Herramientas Sysex](internals_sysex_tools.md) * [Herramientas Sysex](es/internals_sysex_tools.md)
+4 -4
View File
@@ -22,10 +22,10 @@ void matrix_scan_user(void) {
SEND_STRING("QMK is awesome."); SEND_STRING("QMK is awesome.");
} }
SEQ_TWO_KEYS(KC_D, KC_D) { SEQ_TWO_KEYS(KC_D, KC_D) {
SEND_STRING(SS_LCTRL("a")SS_LCTRL("c")); SEND_STRING(SS_LCTL("a") SS_LCTL("c"));
} }
SEQ_THREE_KEYS(KC_D, KC_D, KC_S) { SEQ_THREE_KEYS(KC_D, KC_D, KC_S) {
SEND_STRING("https://start.duckduckgo.com"SS_TAP(X_ENTER)); SEND_STRING("https://start.duckduckgo.com\n");
} }
SEQ_TWO_KEYS(KC_A, KC_S) { SEQ_TWO_KEYS(KC_A, KC_S) {
register_code(KC_LGUI); register_code(KC_LGUI);
@@ -115,11 +115,11 @@ void matrix_scan_user(void) {
SEQ_ONE_KEY(KC_E) { SEQ_ONE_KEY(KC_E) {
// Anything you can do in a macro. // Anything you can do in a macro.
SEND_STRING(SS_LCTRL(SS_LSFT("t"))); SEND_STRING(SS_LCTL(SS_LSFT("t")));
did_leader_succeed = true; did_leader_succeed = true;
} else } else
SEQ_TWO_KEYS(KC_E, KC_D) { SEQ_TWO_KEYS(KC_E, KC_D) {
SEND_STRING(SS_LGUI("r")"cmd"SS_TAP(KC_ENTER)SS_LCTRL("c")); SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
did_leader_succeed = true; did_leader_succeed = true;
} }
leader_end(); leader_end();
+11 -8
View File
@@ -67,14 +67,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case QMKURL: case QMKURL:
if (record->event.pressed) { if (record->event.pressed) {
// when keycode QMKURL is pressed // when keycode QMKURL is pressed
SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); SEND_STRING("https://qmk.fm/\n");
} else { } else {
// when keycode QMKURL is released // when keycode QMKURL is released
} }
break; break;
case MY_OTHER_MACRO: case MY_OTHER_MACRO:
if (record->event.pressed) { if (record->event.pressed) {
SEND_STRING(SS_LCTRL("ac")); // selects all and copies SEND_STRING(SS_LCTL("ac")); // selects all and copies
} }
break; break;
} }
@@ -109,18 +109,21 @@ Which would send "VE" followed by a `KC_HOME` tap, and "LO" (spelling "LOVE" if
There's also a couple of mod shortcuts you can use: There's also a couple of mod shortcuts you can use:
* `SS_LCTRL(string)` * `SS_LCTL(string)`
* `SS_LGUI(string)`
* `SS_LALT(string)`
* `SS_LSFT(string)` * `SS_LSFT(string)`
* `SS_RALT(string)` * `SS_LALT(string)`
* `SS_LGUI(string)`, `SS_LCMD(string)` or `SS_LWIN(string)`
* `SS_RCTL(string)`
* `SS_RSFT(string)`
* `SS_RALT(string)` or `SS_ALGR(string)`
* `SS_RGUI(string)`, `SS_RCMD(string)` or `SS_RWIN(string)`
These press the respective modifier, send the supplied string and then release the modifier. These press the respective modifier, send the supplied string and then release the modifier.
They can be used like this: They can be used like this:
SEND_STRING(SS_LCTRL("a")); SEND_STRING(SS_LCTL("a"));
Which would send LCTRL+a (LCTRL down, a, LCTRL up) - notice that they take strings (eg `"k"`), and not the `X_K` keycodes. Which would send Left Control+`a` (Left Control down, `a`, Left Control up) - notice that they take strings (eg `"k"`), and not the `X_K` keycodes.
### Alternative Keymaps ### Alternative Keymaps
+5 -5
View File
@@ -208,15 +208,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
clear_mods(); clear_oneshot_mods(); clear_mods(); clear_oneshot_mods();
SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP); SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
#ifndef FLASH_BOOTLOADER #ifndef FLASH_BOOTLOADER
if ( (temp_mod | temp_osm) & MOD_MASK_SHIFT ) if ((temp_mod | temp_osm) & MOD_MASK_SHIFT)
#endif #endif
{ // {
SEND_STRING(":flash"); SEND_STRING(":flash");
} }
if ( (temp_mod | temp_osm) & MOD_MASK_CTRL) { if ((temp_mod | temp_osm) & MOD_MASK_CTRL) {
SEND_STRING(" -j8 --output-sync"); SEND_STRING(" -j8 --output-sync");
} }
SEND_STRING(SS_TAP(X_ENTER)); tap_code(KC_ENT);
set_mods(temp_mod); set_mods(temp_mod);
} }
break; break;
+2 -2
View File
@@ -19,7 +19,7 @@ Sinon, vous pouvez aussi le télécharger directement en ([zip](https://github.c
## Comment le compiler ## Comment le compiler
Avant d'être prêt à compiler vous allez devoir [installer un environnement](getting_started_build_tools.md) pour les développements AVR et/ou ARM. Une fois ceci fait, vous pourrez utiliser la commande `make` pour compiler le clavier et la disposition avec une commande de ce type : Avant d'être prêt à compiler vous allez devoir [installer un environnement](fr-fr/getting_started_build_tools.md) pour les développements AVR et/ou ARM. Une fois ceci fait, vous pourrez utiliser la commande `make` pour compiler le clavier et la disposition avec une commande de ce type :
make planck/rev4:default make planck/rev4:default
@@ -29,4 +29,4 @@ Cette commande compilera la révision `rev4` du clavier `planck` avec la disposi
## Comment le personnaliser ## Comment le personnaliser
QMK a beaucoup de [fonctionnalités](features.md) à explorer, et [une documentation](http://docs.qmk.fm) très abondante que vous pourrez parcourir. La plupart des fonctionnalités vous permettrons de modifier vos [dispositions](keymap.md) (keymaps) et de changer [les codes de caractères](keycodes.md) (keycodes). QMK a beaucoup de [fonctionnalités](fr-fr/features.md) à explorer, et [une documentation](http://docs.qmk.fm) très abondante que vous pourrez parcourir. La plupart des fonctionnalités vous permettrons de modifier vos [dispositions](fr-fr/keymap.md) (keymaps) et de changer [les codes de caractères](fr-fr/keycodes.md) (keycodes).
+81 -81
View File
@@ -29,97 +29,97 @@
**En Anglais** **En Anglais**
* Guides détaillés * Guides détaillés
* [Installation des outils de compilation](getting_started_build_tools.md) * [Installation des outils de compilation](fr-fr/getting_started_build_tools.md)
* [Guide Vagrant](getting_started_vagrant.md) * [Guide Vagrant](fr-fr/getting_started_vagrant.md)
* [Commandes de compilations](getting_started_make_guide.md) * [Commandes de compilations](fr-fr/getting_started_make_guide.md)
* [Flasher les firmwares](fr-fr/flashing.md) * [Flasher les firmwares](fr-fr/flashing.md)
* [Personnaliser les fonctionnalités](custom_quantum_functions.md) * [Personnaliser les fonctionnalités](fr-fr/custom_quantum_functions.md)
* [Aperçu des fonctionnalités des dispositions](keymap.md) * [Aperçu des fonctionnalités des dispositions](fr-fr/keymap.md)
* [Hardware](hardware.md) * [Hardware](fr-fr/hardware.md)
* [Processeurs AVR](hardware_avr.md) * [Processeurs AVR](fr-fr/hardware_avr.md)
* [Pilotes / Drivers](hardware_drivers.md) * [Pilotes / Drivers](fr-fr/hardware_drivers.md)
* Réferences * Réferences
* [Lignes de conduite des claviers](hardware_keyboard_guidelines.md) * [Lignes de conduite des claviers](fr-fr/hardware_keyboard_guidelines.md)
* [Options de configurations](config_options.md) * [Options de configurations](fr-fr/config_options.md)
* [Keycodes / Codes des caractères](keycodes.md) * [Keycodes / Codes des caractères](fr-fr/keycodes.md)
* [Conventions de codage - C](coding_conventions_c.md) * [Conventions de codage - C](fr-fr/coding_conventions_c.md)
* [Conventions de codage - Python](coding_conventions_python.md) * [Conventions de codage - Python](fr-fr/coding_conventions_python.md)
* [Meilleurs pratiques sur la documentation](documentation_best_practices.md) * [Meilleurs pratiques sur la documentation](fr-fr/documentation_best_practices.md)
* [Modèles de documentation](documentation_templates.md) * [Modèles de documentation](fr-fr/documentation_templates.md)
* [Glossaire](reference_glossary.md) * [Glossaire](fr-fr/reference_glossary.md)
* [Tests unitaires](unit_testing.md) * [Tests unitaires](fr-fr/unit_testing.md)
* [Fonctions utiles](ref_functions.md) * [Fonctions utiles](fr-fr/ref_functions.md)
* [Support de configuration](reference_configurator_support.md) * [Support de configuration](fr-fr/reference_configurator_support.md)
* [Format du fichier info.json](reference_info_json.md) * [Format du fichier info.json](fr-fr/reference_info_json.md)
* [Développer la CLI en Python](cli_development.md) * [Développer la CLI en Python](fr-fr/cli_development.md)
* [Fonctionnalités](features.md) * [Fonctionnalités](fr-fr/features.md)
* [Keycodes basiques](keycodes_basic.md) * [Keycodes basiques](fr-fr/keycodes_basic.md)
* [Touches utilisées avec Shift (US ANSI)](keycodes_us_ansi_shifted.md) * [Touches utilisées avec Shift (US ANSI)](fr-fr/keycodes_us_ansi_shifted.md)
* [Keycodes quantiques](quantum_keycodes.md) * [Keycodes quantiques](fr-fr/quantum_keycodes.md)
* [Keycodes avancés](feature_advanced_keycodes.md) * [Keycodes avancés](fr-fr/feature_advanced_keycodes.md)
* [Fonctionnalités audio](feature_audio.md) * [Fonctionnalités audio](fr-fr/feature_audio.md)
* [Majuscule automatique](feature_auto_shift.md) * [Majuscule automatique](fr-fr/feature_auto_shift.md)
* [Rétroéclairage](feature_backlight.md) * [Rétroéclairage](fr-fr/feature_backlight.md)
* [Bluetooth](feature_bluetooth.md) * [Bluetooth](fr-fr/feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md) * [Bootmagic](fr-fr/feature_bootmagic.md)
* [Combos](feature_combo.md) * [Combos](fr-fr/feature_combo.md)
* [Commande](feature_command.md) * [Commande](fr-fr/feature_command.md)
* [API anti-rebond](feature_debounce_type.md) * [API anti-rebond](fr-fr/feature_debounce_type.md)
* [DIP Switch](feature_dip_switch.md) * [DIP Switch](fr-fr/feature_dip_switch.md)
* [Macros dynamiques](feature_dynamic_macros.md) * [Macros dynamiques](fr-fr/feature_dynamic_macros.md)
* [Interrupteurs rotatifs](feature_encoders.md) * [Interrupteurs rotatifs](fr-fr/feature_encoders.md)
* [Grave Escape](feature_grave_esc.md) * [Grave Escape](fr-fr/feature_grave_esc.md)
* [Retour haptique](feature_haptic_feedback.md) * [Retour haptique](fr-fr/feature_haptic_feedback.md)
* [Contrôleur LCD HD44780](feature_hd44780.md) * [Contrôleur LCD HD44780](fr-fr/feature_hd44780.md)
* [Touche à verrou / Lock-key](feature_key_lock.md) * [Touche à verrou / Lock-key](fr-fr/feature_key_lock.md)
* [Dispositions / layouts](feature_layouts.md) * [Dispositions / layouts](fr-fr/feature_layouts.md)
* [Touche leader](feature_leader_key.md) * [Touche leader](fr-fr/feature_leader_key.md)
* [Matrice LED](feature_led_matrix.md) * [Matrice LED](fr-fr/feature_led_matrix.md)
* [Macros](feature_macros.md) * [Macros](fr-fr/feature_macros.md)
* [Boutons de souris](feature_mouse_keys.md) * [Boutons de souris](fr-fr/feature_mouse_keys.md)
* [Pilotes / Drivers OLED](feature_oled_driver.md) * [Pilotes / Drivers OLED](fr-fr/feature_oled_driver.md)
* [Touche one-shot](feature_advanced_keycodes.md#one-shot-keys) * [Touche one-shot](fr-fr/feature_advanced_keycodes.md#one-shot-keys)
* [Périphériques de pointage](feature_pointing_device.md) * [Périphériques de pointage](fr-fr/feature_pointing_device.md)
* [Souris PS/2](feature_ps2_mouse.md) * [Souris PS/2](fr-fr/feature_ps2_mouse.md)
* [Éclairage RGB](feature_rgblight.md) * [Éclairage RGB](fr-fr/feature_rgblight.md)
* [Matrice RGB](feature_rgb_matrix.md) * [Matrice RGB](fr-fr/feature_rgb_matrix.md)
* [Space Cadet](feature_space_cadet.md) * [Space Cadet](fr-fr/feature_space_cadet.md)
* [Claviers scindés / splittés](feature_split_keyboard.md) * [Claviers scindés / splittés](fr-fr/feature_split_keyboard.md)
* [Stenographie](feature_stenography.md) * [Stenographie](fr-fr/feature_stenography.md)
* [Inversion des mains](feature_swap_hands.md) * [Inversion des mains](fr-fr/feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md) * [Tap Dance](fr-fr/feature_tap_dance.md)
* [Terminale](feature_terminal.md) * [Terminale](fr-fr/feature_terminal.md)
* [Imprimante thermique](feature_thermal_printer.md) * [Imprimante thermique](fr-fr/feature_thermal_printer.md)
* [Caractères unicodes](feature_unicode.md) * [Caractères unicodes](fr-fr/feature_unicode.md)
* [Dossier utilisateur](feature_userspace.md) * [Dossier utilisateur](fr-fr/feature_userspace.md)
* [Velocikey](feature_velocikey.md) * [Velocikey](fr-fr/feature_velocikey.md)
* Pour les makers et les bricoleurs * Pour les makers et les bricoleurs
* [Guide des claviers soudés à la main](hand_wire.md) * [Guide des claviers soudés à la main](fr-fr/hand_wire.md)
* [Guide de flash de l’ISP](isp_flashing_guide.md) * [Guide de flash de l’ISP](fr-fr/isp_flashing_guide.md)
* [Guide du débogage ARM](arm_debugging.md) * [Guide du débogage ARM](fr-fr/arm_debugging.md)
* [Drivers i2c](i2c_driver.md) * [Drivers i2c](fr-fr/i2c_driver.md)
* [Contrôles des GPIO](internals_gpio_control.md) * [Contrôles des GPIO](fr-fr/internals_gpio_control.md)
* [Conversion en Proton C](proton_c_conversion.md) * [Conversion en Proton C](fr-fr/proton_c_conversion.md)
* Pour aller plus loin * Pour aller plus loin
* [Comment fonctionnent les claviers](how_keyboards_work.md) * [Comment fonctionnent les claviers](fr-fr/how_keyboards_work.md)
* [Comprendre QMK](understanding_qmk.md) * [Comprendre QMK](fr-fr/understanding_qmk.md)
* Autres sujets * Autres sujets
* [Utiliser Eclipse avec QMK](other_eclipse.md) * [Utiliser Eclipse avec QMK](fr-fr/other_eclipse.md)
* [Utiliser VSCode avec QMK](other_vscode.md) * [Utiliser VSCode avec QMK](fr-fr/other_vscode.md)
* [Support](support.md) * [Support](fr-fr/support.md)
* [Comment ajouter des traductions](translating.md) * [Comment ajouter des traductions](fr-fr/translating.md)
* À l’intérieur de QMK (En cours de documentation) * À l’intérieur de QMK (En cours de documentation)
* [Définitions](internals_defines.md) * [Définitions](fr-fr/internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md) * [Input Callback Reg](fr-fr/internals_input_callback_reg.md)
* [Appareils Midi](internals_midi_device.md) * [Appareils Midi](fr-fr/internals_midi_device.md)
* [Installation d’un appareil Midi](internals_midi_device_setup_process.md) * [Installation d’un appareil Midi](fr-fr/internals_midi_device_setup_process.md)
* [Utilitaires Midi](internals_midi_util.md) * [Utilitaires Midi](fr-fr/internals_midi_util.md)
* [Fonctions Midi](internals_send_functions.md) * [Fonctions Midi](fr-fr/internals_send_functions.md)
* [Outils Sysex](internals_sysex_tools.md) * [Outils Sysex](fr-fr/internals_sysex_tools.md)
+2 -2
View File
@@ -20,7 +20,7 @@ QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open sour
## איך לקמפל ## איך לקמפל
לפני שתצליחו לקמפל, תדרשו [להתקין סביבה](getting_started_build_tools.md) עבור פיתוח AVR ו/או ARM. ברגע שהדבר בוצע, תוכלו להריץ פקודת `make` כדי לבנות מקלדת ומיפוי עם התחביר הבא: לפני שתצליחו לקמפל, תדרשו [להתקין סביבה](he-il/getting_started_build_tools.md) עבור פיתוח AVR ו/או ARM. ברגע שהדבר בוצע, תוכלו להריץ פקודת `make` כדי לבנות מקלדת ומיפוי עם התחביר הבא:
make planck/rev4:default make planck/rev4:default
@@ -30,5 +30,5 @@ QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open sour
## איך להתאים ## איך להתאים
לQMK יש המון [יכולות](features.md) שאפשר לנווט בהן, וכמות נכבדת של [תיעוד ודוקומנטציה](http://docs.qmk.fm) בה אפשר לנבור. רוב הפיצ׳רים באים לידי ביטוי על ידי שינוי [מיפוי המקלדת](keymap.md) ושינוי [קודי המקשים](keycodes.md). לQMK יש המון [יכולות](he-il/features.md) שאפשר לנווט בהן, וכמות נכבדת של [תיעוד ודוקומנטציה](http://docs.qmk.fm) בה אפשר לנבור. רוב הפיצ׳רים באים לידי ביטוי על ידי שינוי [מיפוי המקלדת](he-il/keymap.md) ושינוי [קודי המקשים](he-il/keycodes.md).
</div> </div>
+106 -105
View File
@@ -1,6 +1,7 @@
<div dir="rtl" markdown="1"> <div dir="rtl" markdown="1">
**בשפה העברית** **בשפה העברית**
* [המדריך המלא למתחילים](newbs.md) * [המדריך המלא למתחילים](he-il/newbs.md)
* [מקורות ללמידה](he-il/newbs_learn_more_resources.md) * [מקורות ללמידה](he-il/newbs_learn_more_resources.md)
* [בסיס QMK](he-il/README.md) * [בסיס QMK](he-il/README.md)
* [מבוא לQMK](he-il/getting_started_introduction.md) * [מבוא לQMK](he-il/getting_started_introduction.md)
@@ -13,126 +14,126 @@
* [איך לתעד נכון](he-il/documentation_best_practices.md) * [איך לתעד נכון](he-il/documentation_best_practices.md)
**בשפה האנגלית** **בשפה האנגלית**
* [המדריך המלא למתחילים](newbs.md) * [המדריך המלא למתחילים](he-il/newbs.md)
* [התחלה](newbs_getting_started.md) * [התחלה](he-il/newbs_getting_started.md)
* [בנייה של הקושחה הראשונה שלך](newbs_building_firmware.md) * [בנייה של הקושחה הראשונה שלך](he-il/newbs_building_firmware.md)
* [צריבה של הקושחה](newbs_flashing.md) * [צריבה של הקושחה](he-il/newbs_flashing.md)
* [בדיקות ודיבאגינג](newbs_testing_debugging.md) * [בדיקות ודיבאגינג](he-il/newbs_testing_debugging.md)
* [עבודה נכונה ב GIT](newbs_best_practices.md) * [עבודה נכונה ב GIT](he-il/newbs_best_practices.md)
* [מקורות ללמידה](newbs_learn_more_resources.md) * [מקורות ללמידה](he-il/newbs_learn_more_resources.md)
* [בסיס QMK](README.md) * [בסיס QMK](he-il/README.md)
* [מבוא לQMK](getting_started_introduction.md) * [מבוא לQMK](he-il/getting_started_introduction.md)
* [QMK CLI](cli.md) * [QMK CLI](he-il/cli.md)
* [QMK CLI Config](cli_configuration.md) * [QMK CLI Config](he-il/cli_configuration.md)
* [תרומה ל QMK](contributing.md) * [תרומה ל QMK](he-il/contributing.md)
* [איך להשתמש בGithub](getting_started_github.md) * [איך להשתמש בGithub](he-il/getting_started_github.md)
* [קבלת עזרה](getting_started_getting_help.md) * [קבלת עזרה](he-il/getting_started_getting_help.md)
* [שינויים משמעותיים](breaking_changes.md) * [שינויים משמעותיים](he-il/breaking_changes.md)
* [2019 Aug 30](ChangeLog/20190830.md) * [2019 Aug 30](he-il/ChangeLog/20190830.md)
* [שאלות נפוצות](faq.md) * [שאלות נפוצות](he-il/faq.md)
* [שאלות נפוצות כלליות](faq_general.md) * [שאלות נפוצות כלליות](he-il/faq_general.md)
* [בנייה/קומפילציה של QMK](faq_build.md) * [בנייה/קומפילציה של QMK](he-il/faq_build.md)
* [דיבאגינג ופתרון תקלות של QMK](faq_debug.md) * [דיבאגינג ופתרון תקלות של QMK](he-il/faq_debug.md)
* [מיפוי מקשים](faq_keymap.md) * [מיפוי מקשים](he-il/faq_keymap.md)
* [התקנת דרייברים עם Zadig](driver_installation_zadig.md) * [התקנת דרייברים עם Zadig](he-il/driver_installation_zadig.md)
* מדריכים מפורטים * מדריכים מפורטים
* [התקנת כלי Build](getting_started_build_tools.md) * [התקנת כלי Build](he-il/getting_started_build_tools.md)
* [מדריך Vagrant](getting_started_vagrant.md) * [מדריך Vagrant](he-il/getting_started_vagrant.md)
* [הוראות בנייה/קומפילציה](getting_started_make_guide.md) * [הוראות בנייה/קומפילציה](he-il/getting_started_make_guide.md)
* [צריבת קושחה](flashing.md) * [צריבת קושחה](he-il/flashing.md)
* [התאמה אישית של הפונקציונאליות](custom_quantum_functions.md) * [התאמה אישית של הפונקציונאליות](he-il/custom_quantum_functions.md)
* [מיפוי מקשים](keymap.md) * [מיפוי מקשים](he-il/keymap.md)
* [חומרה](hardware.md) * [חומרה](he-il/hardware.md)
* [מעבדי AVR](hardware_avr.md) * [מעבדי AVR](he-il/hardware_avr.md)
* [דרייברים](hardware_drivers.md) * [דרייברים](he-il/hardware_drivers.md)
* התייחסויות * התייחסויות
* [מדריך למקלדות](hardware_keyboard_guidelines.md) * [מדריך למקלדות](he-il/hardware_keyboard_guidelines.md)
* [אפשרויות הגדרות](config_options.md) * [אפשרויות הגדרות](he-il/config_options.md)
* [קודי מקשים](keycodes.md) * [קודי מקשים](he-il/keycodes.md)
* [קונבנציות קוד - C](coding_conventions_c.md) * [קונבנציות קוד - C](he-il/coding_conventions_c.md)
* [קונבנציות קוד - Python](coding_conventions_python.md) * [קונבנציות קוד - Python](he-il/coding_conventions_python.md)
* [איך לתעד נכון](documentation_best_practices.md) * [איך לתעד נכון](he-il/documentation_best_practices.md)
* [טמפלטים לדוקומנטציה](documentation_templates.md) * [טמפלטים לדוקומנטציה](he-il/documentation_templates.md)
* [מילון](reference_glossary.md) * [מילון](he-il/reference_glossary.md)
* [בדיקות יחידה](unit_testing.md) * [בדיקות יחידה](he-il/unit_testing.md)
* [פונקציות שימושיות](ref_functions.md) * [פונקציות שימושיות](he-il/ref_functions.md)
* [תמיכה בConfigurator](reference_configurator_support.md) * [תמיכה בConfigurator](he-il/reference_configurator_support.md)
* [פורמט info.json](reference_info_json.md) * [פורמט info.json](he-il/reference_info_json.md)
* [פיתוח בPython CLI](cli_development.md) * [פיתוח בPython CLI](he-il/cli_development.md)
* [תכונות](features.md) * [תכונות](he-il/features.md)
* [Basic Keycodes](keycodes_basic.md) * [Basic Keycodes](he-il/keycodes_basic.md)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md) * [US ANSI Shifted Keys](he-il/keycodes_us_ansi_shifted.md)
* [Quantum Keycodes](quantum_keycodes.md) * [Quantum Keycodes](he-il/quantum_keycodes.md)
* [Advanced Keycodes](feature_advanced_keycodes.md) * [Advanced Keycodes](he-il/feature_advanced_keycodes.md)
* [Audio](feature_audio.md) * [Audio](he-il/feature_audio.md)
* [Auto Shift](feature_auto_shift.md) * [Auto Shift](he-il/feature_auto_shift.md)
* [Backlight](feature_backlight.md) * [Backlight](he-il/feature_backlight.md)
* [Bluetooth](feature_bluetooth.md) * [Bluetooth](he-il/feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md) * [Bootmagic](he-il/feature_bootmagic.md)
* [Combos](feature_combo.md) * [Combos](he-il/feature_combo.md)
* [Command](feature_command.md) * [Command](he-il/feature_command.md)
* [Debounce API](feature_debounce_type.md) * [Debounce API](he-il/feature_debounce_type.md)
* [DIP Switch](feature_dip_switch.md) * [DIP Switch](he-il/feature_dip_switch.md)
* [Dynamic Macros](feature_dynamic_macros.md) * [Dynamic Macros](he-il/feature_dynamic_macros.md)
* [Encoders](feature_encoders.md) * [Encoders](he-il/feature_encoders.md)
* [Grave Escape](feature_grave_esc.md) * [Grave Escape](he-il/feature_grave_esc.md)
* [Haptic Feedback](feature_haptic_feedback.md) * [Haptic Feedback](he-il/feature_haptic_feedback.md)
* [HD44780 LCD Controller](feature_hd44780.md) * [HD44780 LCD Controller](he-il/feature_hd44780.md)
* [Key Lock](feature_key_lock.md) * [Key Lock](he-il/feature_key_lock.md)
* [Layouts](feature_layouts.md) * [Layouts](he-il/feature_layouts.md)
* [Leader Key](feature_leader_key.md) * [Leader Key](he-il/feature_leader_key.md)
* [LED Matrix](feature_led_matrix.md) * [LED Matrix](he-il/feature_led_matrix.md)
* [Macros](feature_macros.md) * [Macros](he-il/feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md) * [Mouse Keys](he-il/feature_mouse_keys.md)
* [OLED Driver](feature_oled_driver.md) * [OLED Driver](he-il/feature_oled_driver.md)
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys) * [One Shot Keys](he-il/feature_advanced_keycodes.md#one-shot-keys)
* [Pointing Device](feature_pointing_device.md) * [Pointing Device](he-il/feature_pointing_device.md)
* [PS/2 Mouse](feature_ps2_mouse.md) * [PS/2 Mouse](he-il/feature_ps2_mouse.md)
* [RGB Lighting](feature_rgblight.md) * [RGB Lighting](he-il/feature_rgblight.md)
* [RGB Matrix](feature_rgb_matrix.md) * [RGB Matrix](he-il/feature_rgb_matrix.md)
* [Space Cadet](feature_space_cadet.md) * [Space Cadet](he-il/feature_space_cadet.md)
* [Split Keyboard](feature_split_keyboard.md) * [Split Keyboard](he-il/feature_split_keyboard.md)
* [Stenography](feature_stenography.md) * [Stenography](he-il/feature_stenography.md)
* [Swap Hands](feature_swap_hands.md) * [Swap Hands](he-il/feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md) * [Tap Dance](he-il/feature_tap_dance.md)
* [Terminal](feature_terminal.md) * [Terminal](he-il/feature_terminal.md)
* [Thermal Printer](feature_thermal_printer.md) * [Thermal Printer](he-il/feature_thermal_printer.md)
* [Unicode](feature_unicode.md) * [Unicode](he-il/feature_unicode.md)
* [Userspace](feature_userspace.md) * [Userspace](he-il/feature_userspace.md)
* [Velocikey](feature_velocikey.md) * [Velocikey](he-il/feature_velocikey.md)
* למייקרים ומודרים * למייקרים ומודרים
* [מדריך לכתיבה ידנית](hand_wire.md) * [מדריך לכתיבה ידנית](he-il/hand_wire.md)
* [מדריך לצריבת ISP](isp_flashing_guide.md) * [מדריך לצריבת ISP](he-il/isp_flashing_guide.md)
* [מדריך לדיבאגינג ARM](arm_debugging.md) * [מדריך לדיבאגינג ARM](he-il/arm_debugging.md)
* [מנהל התקן I2C](i2c_driver.md) * [מנהל התקן I2C](he-il/i2c_driver.md)
* [בקרת GPIO](internals_gpio_control.md) * [בקרת GPIO](he-il/internals_gpio_control.md)
* [המרת Proton C](proton_c_conversion.md) * [המרת Proton C](he-il/proton_c_conversion.md)
* להבנה עמוקה יותר * להבנה עמוקה יותר
* [איך עובדות מקלדות](how_keyboards_work.md) * [איך עובדות מקלדות](he-il/how_keyboards_work.md)
* [להבין את QMK](understanding_qmk.md) * [להבין את QMK](he-il/understanding_qmk.md)
* נושאים נוספים * נושאים נוספים
* [שימוש ב - Eclipse עם QMK](other_eclipse.md) * [שימוש ב - Eclipse עם QMK](he-il/other_eclipse.md)
* [שימוש ב - VSCode עם QMK](other_vscode.md) * [שימוש ב - VSCode עם QMK](he-il/other_vscode.md)
* [תמיכה](support.md) * [תמיכה](he-il/support.md)
* [כיצד להוסיף תרגום](translating.md) * [כיצד להוסיף תרגום](he-il/translating.md)
* QMK מבפנים (בתהליך) * QMK מבפנים (בתהליך)
* [Defines](internals_defines.md) * [Defines](he-il/internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md) * [Input Callback Reg](he-il/internals_input_callback_reg.md)
* [Midi Device](internals_midi_device.md) * [Midi Device](he-il/internals_midi_device.md)
* [Midi Device Setup Process](internals_midi_device_setup_process.md) * [Midi Device Setup Process](he-il/internals_midi_device_setup_process.md)
* [Midi Util](internals_midi_util.md) * [Midi Util](he-il/internals_midi_util.md)
* [Send Functions](internals_send_functions.md) * [Send Functions](he-il/internals_send_functions.md)
* [Sysex Tools](internals_sysex_tools.md) * [Sysex Tools](he-il/internals_sysex_tools.md)
</div> </div>
+9
View File
@@ -35,6 +35,15 @@
loadNavbar: '_langs.md', loadNavbar: '_langs.md',
mergeNavbar: true, mergeNavbar: true,
auto2top: true, auto2top: true,
fallbackLanguages: [
'de',
'es',
'fr-fr',
'he-il',
'ja',
'ru-ru',
'zh-cn'
],
formatUpdated: '{YYYY}/{MM}/{DD} {HH}:{mm}', formatUpdated: '{YYYY}/{MM}/{DD} {HH}:{mm}',
search: { search: {
paths: 'auto', paths: 'auto',
+121
View File
@@ -0,0 +1,121 @@
* [完全な初心者のガイド](ja/newbs.md)
* [はじめに](ja/newbs_getting_started.md)
* [初めてのファームウェアの構築](ja/newbs_building_firmware.md)
* [ファームウェアのフラッシュ](ja/newbs_flashing.md)
* [テストとデバッグ](ja/newbs_testing_debugging.md)
* [Gitのベストプラクティス](ja/newbs_best_practices.md)
* [学習リソース](ja/newbs_learn_more_resources.md)
* [QMKの基本](ja/README.md)
* [QMKの導入](ja/getting_started_introduction.md)
* [QMK CLI](ja/cli.md)
* [QMK CLI 設定](ja/cli_configuration.md)
* [QMKへの貢献](ja/contributing.md)
* [Githubの使い方](ja/getting_started_github.md)
* [ヘルプ](ja/getting_started_getting_help.md)
* [破壊的な変更](ja/breaking_changes.md)
* [2019年8月30日](ja/ChangeLog/20190830.md)
* [FAQ](ja/faq.md)
* [一般的なFAQ](ja/faq_general.md)
* [QMKのビルド/コンパイル](ja/faq_build.md)
* [QMKのデバッグ/トラブルシューティング](ja/faq_debug.md)
* [キーマップ](ja/faq_keymap.md)
* [Zadigを使ったドライバのインストール](ja/driver_installation_zadig.md)
* 詳細なガイド
* [ビルドツールのインストール](ja/getting_started_build_tools.md)
* [Vagrantのガイド](ja/getting_started_vagrant.md)
* [ビルド/コンパイルの説明](ja/getting_started_make_guide.md)
* [ファームウェアのフラッシュ](ja/flashing.md)
* [機能のカスタマイズ](ja/custom_quantum_functions.md)
* [キーマップの概要](ja/keymap.md)
* [ハードウェア](ja/hardware.md)
* [AVR プロセッサ](ja/hardware_avr.md)
* [ドライバ](ja/hardware_drivers.md)
* リファレンス
* [キーボード ガイドライン](ja/hardware_keyboard_guidelines.md)
* [設定オプション](ja/config_options.md)
* [キーコード](ja/keycodes.md)
* [コーディング規約 - C](ja/coding_conventions_c.md)
* [コーディング規約 - Python](ja/coding_conventions_python.md)
* [ドキュメント ベストプラクティス](ja/documentation_best_practices.md)
* [ドキュメント テンプレート](ja/documentation_templates.md)
* [用語](ja/reference_glossary.md)
* [ユニットテスト](ja/unit_testing.md)
* [便利な関数](ja/ref_functions.md)
* [Configurator サポート](ja/reference_configurator_support.md)
* [info.json 形式](ja/reference_info_json.md)
* [Python CLI 開発](ja/cli_development.md)
* [機能](ja/features.md)
* [基本的なキーコード](ja/keycodes_basic.md)
* [US ANSI シフトキー](ja/keycodes_us_ansi_shifted.md)
* [Quantum キーコード](ja/quantum_keycodes.md)
* [Advanced キーコード](ja/feature_advanced_keycodes.md)
* [オーディオ](ja/feature_audio.md)
* [自動シフト](ja/feature_auto_shift.md)
* [バックライト](ja/feature_backlight.md)
* [ブルートゥース](ja/feature_bluetooth.md)
* [ブートマジック](ja/feature_bootmagic.md)
* [コンボ](ja/feature_combo.md)
* [コマンド](ja/feature_command.md)
* [Debounce API](ja/feature_debounce_type.md)
* [DIP スイッチ](ja/feature_dip_switch.md)
* [動的マクロ](ja/feature_dynamic_macros.md)
* [エンコーダ](ja/feature_encoders.md)
* [グレイブ エスケープ](ja/feature_grave_esc.md)
* [触覚フィードバック](ja/feature_haptic_feedback.md)
* [HD44780 LCD コントローラ](ja/feature_hd44780.md)
* [キーロック](ja/feature_key_lock.md)
* [レイアウト](ja/feature_layouts.md)
* [リーダー キー](ja/feature_leader_key.md)
* [LED マトリクス](ja/feature_led_matrix.md)
* [マクロ](ja/feature_macros.md)
* [マウスキー](ja/feature_mouse_keys.md)
* [OLED ドライバ](ja/feature_oled_driver.md)
* [One Shot Keys](ja/feature_advanced_keycodes.md#one-shot-keys)
* [ポインティング デバイス](ja/feature_pointing_device.md)
* [PS/2 マウス](ja/feature_ps2_mouse.md)
* [RGB ライト](ja/feature_rgblight.md)
* [RGB マトリクス](ja/feature_rgb_matrix.md)
* [Space Cadet](ja/feature_space_cadet.md)
* [分割キーボード](ja/feature_split_keyboard.md)
* [Stenography](ja/feature_stenography.md)
* [Swap Hands](ja/feature_swap_hands.md)
* [タップ ダンス](ja/feature_tap_dance.md)
* [Terminal](ja/feature_terminal.md)
* [感熱式プリンタ](ja/feature_thermal_printer.md)
* [ユニコード](ja/feature_unicode.md)
* [Userspace](ja/feature_userspace.md)
* [Velocikey](ja/feature_velocikey.md)
* メーカーおよびモッダーのために
* [Hand Wiring Guide](ja/hand_wire.md)
* [ISP Flashing Guide](ja/isp_flashing_guide.md)
* [ARM デバッグ ガイド](ja/arm_debugging.md)
* [I2C ドライバ](ja/i2c_driver.md)
* [GPIO コントロール](ja/internals_gpio_control.md)
* [Proton C 規約](ja/proton_c_conversion.md)
* より深く知るために
* [キーボードがどのように動作するか](ja/how_keyboards_work.md)
* [QMKの理解](ja/understanding_qmk.md)
* 他の話題
* [EclipseでQMKを使用](ja/other_eclipse.md)
* [VSCodeでQMKを使用](ja/other_vscode.md)
* [サポート](ja/support.md)
* [翻訳を追加する方法](ja/translating.md)
* QMK の内部詳細(作成中)
* [定義](ja/internals_defines.md)
* [Input Callback Reg](ja/internals_input_callback_reg.md)
* [Midi ドライバ](ja/internals_midi_device.md)
* [Midi デバイスのセットアップ手順](ja/internals_midi_device_setup_process.md)
* [Midi ユーティリティ](ja/internals_midi_util.md)
* [Send Functions](ja/internals_send_functions.md)
* [Sysex Tools](ja/internals_sysex_tools.md)
+8 -8
View File
@@ -19,18 +19,18 @@ QMK は[多くの趣味のキーボード](http://qmk.fm/keyboards/)をサポー
このガイドには7つの主要なセクションがあります。 このガイドには7つの主要なセクションがあります。
* [はじめに](newbs_getting_started.md) * [はじめに](ja/newbs_getting_started.md)
* [コマンドラインを使用して初めてのファームウェアを構築する](newbs_building_firmware.md) * [コマンドラインを使用して初めてのファームウェアを構築する](ja/newbs_building_firmware.md)
* [オンライン GUI を使用して初めてのファームウェアを構築する](newbs_building_firmware_configurator.md) * [オンライン GUI を使用して初めてのファームウェアを構築する](ja/newbs_building_firmware_configurator.md)
* [ファームウェアを書きこむ](newbs_flashing.md) * [ファームウェアを書きこむ](ja/newbs_flashing.md)
* [テストとデバッグ](newbs_testing_debugging.md) * [テストとデバッグ](ja/newbs_testing_debugging.md)
* [QMK における Git 運用作法](newbs_best_practices.md) * [QMK における Git 運用作法](ja/newbs_best_practices.md)
* [さらに学ぶための学習リソース](newbs_learn_more_resources.md) * [さらに学ぶための学習リソース](ja/newbs_learn_more_resources.md)
このガイドは、これまでソフトウェアをコンパイルしたことがない人を支援することに特化しています。 このガイドは、これまでソフトウェアをコンパイルしたことがない人を支援することに特化しています。
その観点から選択と推奨を行います。 その観点から選択と推奨を行います。
これらの手順の多くには代替方法があり、これらの代替方法のほとんどをサポートしています。 これらの手順の多くには代替方法があり、これらの代替方法のほとんどをサポートしています。
タスクを達成する方法について疑問がある場合は、[案内を求めることができます](getting_started_getting_help.md)。 タスクを達成する方法について疑問がある場合は、[案内を求めることができます](ja/getting_started_getting_help.md)。
## 追加のリソース(英語) ## 追加のリソース(英語)
+2 -2
View File
@@ -24,8 +24,8 @@ QMK に貢献するプロセスを順を追って説明し、この作業を簡
<!-- 2. You've [set up your build environment](newbs_getting_started.md?id=environment-setup). --> <!-- 2. You've [set up your build environment](newbs_getting_started.md?id=environment-setup). -->
<!-- #7231:da7d49246: 2. You've set up both [your build environment](newbs_getting_started.md?id=set-up-your-environment) and [QMK](newbs_getting_started.md?id=set-up-qmk). --> <!-- #7231:da7d49246: 2. You've set up both [your build environment](newbs_getting_started.md?id=set-up-your-environment) and [QMK](newbs_getting_started.md?id=set-up-qmk). -->
1. あなたは GitHub アカウントがあり、アカウントに [qmk_firmware リポジトリをフォーク](getting_started_github.md) している。 1. あなたは GitHub アカウントがあり、アカウントに [qmk_firmware リポジトリをフォーク](ja/getting_started_github.md) している。
2. あなたは、[環境構築](newbs_getting_started.md#環境構築) と [QMK の設定](newbs_getting_started.md#qmk-の設定) を両方とも完了している。 2. あなたは、[環境構築](ja/newbs_getting_started.md#set-up-your-environment) と [QMK の設定](ja/newbs_getting_started.md#set-up-qmk) を両方とも完了している。
<!-- ## Your fork's master: Update Often, Commit Never --> <!-- ## Your fork's master: Update Often, Commit Never -->
## あなたのフォークの master ブランチ: 更新は頻繁に、コミットはしないこと ## あなたのフォークの master ブランチ: 更新は頻繁に、コミットはしないこと
+4 -4
View File
@@ -67,9 +67,9 @@ macOS または Windows を使用している場合は、キーマップフォ
あるレイヤー全体が必要ない場合はレイヤーを削除することもでき、必要があれば、合計 32 個までレイヤーを追加することもできます。 あるレイヤー全体が必要ない場合はレイヤーを削除することもでき、必要があれば、合計 32 個までレイヤーを追加することもできます。
ここで定義できる内容については、次のドキュメントを参照してください。 ここで定義できる内容については、次のドキュメントを参照してください。
* [キーコード](keycodes.md) * [キーコード](ja/keycodes.md)
* [機能](features.md) * [機能](ja/features.md)
* [FAQ](faq.md) * [FAQ](ja/faq.md)
?> キーマップがどのように機能するかを感じながら、各変更を小さくしてください。大きな変更は、発生する問題のデバッグを困難にします。 ?> キーマップがどのように機能するかを感じながら、各変更を小さくしてください。大きな変更は、発生する問題のデバッグを困難にします。
@@ -96,4 +96,4 @@ Checking file size of planck_rev5_xyverz.hex
## ファームウェアを書きこむ ## ファームウェアを書きこむ
[「ファームウェアを書きこむ」](newbs_flashing.md) に移動して、キーボードに新しいファームウェアを書き込む方法を学習します。 [「ファームウェアを書きこむ」](ja/newbs_flashing.md) に移動して、キーボードに新しいファームウェアを書き込む方法を学習します。
@@ -83,7 +83,7 @@ QMK Configurator は Chrome/Firefox で最適に動作します。
## キーボードに書き込む(フラッシュする) ## キーボードに書き込む(フラッシュする)
[ファームウェアを書きこむ](newbs_flashing.md) を参照してください。 [ファームウェアを書きこむ](ja/newbs_flashing.md) を参照してください。
## トラブルシューティング ## トラブルシューティング
+5 -5
View File
@@ -13,7 +13,7 @@
キーボードに書き込む最も簡単な方法は [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) を使うことです。 キーボードに書き込む最も簡単な方法は [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) を使うことです。
ただし、QMK Toolbox は、現在は Windows と macOS でしか使えません。 ただし、QMK Toolbox は、現在は Windows と macOS でしか使えません。
Linuxを使用している場合(および、コマンドラインでファームウェアを書き込みたい場合)は、下の方で概説する[方法](newbs_flashing.md#コマンドラインでファームウェアを書き込む)で行なう必要があります。 Linuxを使用している場合(および、コマンドラインでファームウェアを書き込みたい場合)は、下の方で概説する[方法](ja/newbs_flashing.md#flash-your-keyboard-from-the-command-line)で行なう必要があります。
### QMK Toolbox にファイルをロードする ### QMK Toolbox にファイルをロードする
@@ -98,7 +98,7 @@ QMK Toolbox の `Flash` ボタンをクリックします。
*** Clueboard - Clueboard 66% HotSwap connected -- 0xC1ED:0x2390 *** Clueboard - Clueboard 66% HotSwap connected -- 0xC1ED:0x2390
``` ```
## コマンドラインでファームウェアを書き込む ## コマンドラインでファームウェアを書き込む :id=flash-your-keyboard-from-the-command-line
これは、以前のものと比較して非常に単純になりました。 これは、以前のものと比較して非常に単純になりました。
ファームウェアをコンパイルして書き込む準備ができたら、ターミナルウィンドウを開いてビルドコマンドを実行します。 ファームウェアをコンパイルして書き込む準備ができたら、ターミナルウィンドウを開いてビルドコマンドを実行します。
@@ -123,7 +123,7 @@ QMK Toolbox の `Flash` ボタンをクリックします。
ブートローダは主に 5 種類のものが使われています。 ブートローダは主に 5 種類のものが使われています。
Pro Micro とそのクローンは Caterina を、Teensy は HalfKay を、OLKBの AVR ボードは QMK-DFU を、その他の ATmega32U4 ボードは DFU を、そして多くの ARM ボードは ARM DFU を使います。 Pro Micro とそのクローンは Caterina を、Teensy は HalfKay を、OLKBの AVR ボードは QMK-DFU を、その他の ATmega32U4 ボードは DFU を、そして多くの ARM ボードは ARM DFU を使います。
より詳しいブートローダの情報は、[Flashing Instructions and Bootloader Information](flashing.md) にあります。 より詳しいブートローダの情報は、[Flashing Instructions and Bootloader Information](ja/flashing.md) にあります。
使用しているブートローダがわかっているならば、ファームウェアをコンパイルするときに、実は `make` コマンドにブートローダを指定するテキストを追加して、書き込みプロセスを自動化できます。 使用しているブートローダがわかっているならば、ファームウェアをコンパイルするときに、実は `make` コマンドにブートローダを指定するテキストを追加して、書き込みプロセスを自動化できます。
@@ -172,7 +172,7 @@ Checking file size of planck_rev5_xyverz.hex
>>> dfu-programmer atmega32u4 reset >>> dfu-programmer atmega32u4 reset
``` ```
?> `dfu-programmer:no device present` など、これに関する問題がある場合は、[よくある質問](faq_build.md) を参照してください。 ?> `dfu-programmer:no device present` など、これに関する問題がある場合は、[よくある質問](ja/faq_build.md) を参照してください。
#### DFU コマンド #### DFU コマンド
@@ -397,4 +397,4 @@ Uploading 22016 (0x5600) bytes starting at 0 (0x0)
おめでとうございます! カスタムファームウェアがキーボードにプログラムされました! おめでとうございます! カスタムファームウェアがキーボードにプログラムされました!
使ってみて、すべてがあなたの望むように動作するかどうか確認してください。 使ってみて、すべてがあなたの望むように動作するかどうか確認してください。
この初心者ガイドを完全なものにするために [テストとデバッグ](newbs_testing_debugging.md) を書いたので、カスタム機能のトラブルシューティング方法については、こちらをご覧ください。 この初心者ガイドを完全なものにするために [テストとデバッグ](ja/newbs_testing_debugging.md) を書いたので、カスタム機能のトラブルシューティング方法については、こちらをご覧ください。
+6 -6
View File
@@ -20,7 +20,7 @@ QMK は、簡単なことは簡単に、そして、難しいことを可能な
ファームウェアをコンパイルするキーボードの数に関わらず、この作業を一度だけ実行する必要があります。 ファームウェアをコンパイルするキーボードの数に関わらず、この作業を一度だけ実行する必要があります。
もし、GUI で作業をしたい場合、オンラインで作業できる [QMK Configurator](https://config.qmk.fm) を使ってください。 もし、GUI で作業をしたい場合、オンラインで作業できる [QMK Configurator](https://config.qmk.fm) を使ってください。
使い方は [Building Your First Firmware using the online GUI](newbs_building_firmware_configurator.md) を参照してください。 使い方は [オンライン GUI を使用して初めてのファームウェアを構築する](ja/newbs_building_firmware_configurator.md) を参照してください。
## ソフトウェアのダウンロード ## ソフトウェアのダウンロード
@@ -45,7 +45,7 @@ QMK Toolbox は、Windows と macOS で使える GUI を備えたプログラム
* Windows 版: `qmk_toolbox.exe` (portable) または `qmk_toolbox_install.exe` (installer) * Windows 版: `qmk_toolbox.exe` (portable) または `qmk_toolbox_install.exe` (installer)
* macOS 版: `QMK.Toolbox.app.zip` (portable) または `QMK.Toolbox.pkg` (installer) * macOS 版: `QMK.Toolbox.app.zip` (portable) または `QMK.Toolbox.pkg` (installer)
## 環境構築 ## 環境構築 :id=set-up-your-environment
私たちは、QMK を可能な限り簡単に構築できるように努力しています。 私たちは、QMK を可能な限り簡単に構築できるように努力しています。
Linux か Unix 環境を用意するだけで、QMK に残りをインストールさせることができます。 Linux か Unix 環境を用意するだけで、QMK に残りをインストールさせることができます。
@@ -77,9 +77,9 @@ Git のインストールが必要です。既にインストールされてい
* Fedora / Red Hat / CentOS: `yum install git` * Fedora / Red Hat / CentOS: `yum install git`
* Arch: `pacman -S git` * Arch: `pacman -S git`
?> 全てのプラットフォームにおいて、Docker を使うことも可能です。[詳細はこちらをクリックしてください](getting_started_build_tools.md#docker)。 ?> 全てのプラットフォームにおいて、Docker を使うことも可能です。[詳細はこちらをクリックしてください](ja/getting_started_build_tools.md#docker)。
## QMK の設定 ## QMK の設定 :id=set-up-qmk
Linux/Unix 環境が準備できたら QMK のダウンロードの準備は完了です。Git を使用して QMK のリポジトリを「クローン」することで QMK をダウンロードします。ターミナルか MSYS2 MinGW ウィンドウを開いて、このガイドの残りの部分では開いたままにします。そのウィンドウ内で、次の2つのコマンドを実行します。 Linux/Unix 環境が準備できたら QMK のダウンロードの準備は完了です。Git を使用して QMK のリポジトリを「クローン」することで QMK をダウンロードします。ターミナルか MSYS2 MinGW ウィンドウを開いて、このガイドの残りの部分では開いたままにします。そのウィンドウ内で、次の2つのコマンドを実行します。
@@ -88,7 +88,7 @@ git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware cd qmk_firmware
``` ```
?> 既に [GitHub の使いかた](getting_started_github.md)を知っているなら、clone ではなく fork を勧めます。この一文の意味が分からない場合、このメッセージは無視してかまいません。 ?> 既に [GitHub の使いかた](ja/getting_started_github.md)を知っているなら、clone ではなく fork を勧めます。この一文の意味が分からない場合、このメッセージは無視してかまいません。
QMK には、必要な残りの設定を手助けするスクリプトが含まれています。 QMK には、必要な残りの設定を手助けするスクリプトが含まれています。
セットアップ作業を完了させるため、次のコマンドを実行します。 セットアップ作業を完了させるため、次のコマンドを実行します。
@@ -119,4 +119,4 @@ Checking file size of clueboard_66_rev3_default.hex
# キーマップの作成 # キーマップの作成
これであなた専用のキーマップを作成する準備ができました! これであなた専用のキーマップを作成する準備ができました!
次は [Building Your First Firmware](newbs_building_firmware.md) で専用のキーマップを作成します。 次は [Building Your First Firmware](ja/newbs_building_firmware.md) で専用のキーマップを作成します。
+2 -2
View File
@@ -14,8 +14,8 @@
* [Great General Tutorial](https://www.codecademy.com/learn/learn-git) * [Great General Tutorial](https://www.codecademy.com/learn/learn-git)
* [Git Game To Learn From Examples](https://learngitbranching.js.org/) * [Git Game To Learn From Examples](https://learngitbranching.js.org/)
* [Git Resources to Learn More About Github](getting_started_github.md) * [Git Resources to Learn More About Github](ja/getting_started_github.md)
* [Git Resources Aimed Specifically toward QMK](contributing.md) * [Git Resources Aimed Specifically toward QMK](ja/contributing.md)
### 日本語 ### 日本語
+3 -3
View File
@@ -22,7 +22,7 @@
## デバッグ ## デバッグ
`rules.mk`へ`CONSOLE_ENABLE = yes`の設定をするとキーボードはデバッグ情報を出力します。デフォルトの出力は非常に限られたものですが、デバッグモードをオンにすることでデバッグ情報の量を増やすことが出来ます。キーマップの`DEBUG`キーコードを使用するか、デバッグモードを有効にする [Command](feature_command.md) 機能を使用するか、以下のコードをキーマップに追加します。 `rules.mk`へ`CONSOLE_ENABLE = yes`の設定をするとキーボードはデバッグ情報を出力します。デフォルトの出力は非常に限られたものですが、デバッグモードをオンにすることでデバッグ情報の量を増やすことが出来ます。キーマップの`DEBUG`キーコードを使用するか、デバッグモードを有効にする [Command](ja/feature_command.md) 機能を使用するか、以下のコードをキーマップに追加します。
```c ```c
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
@@ -46,7 +46,7 @@ void keyboard_post_init_user(void) {
## 独自のデバッグメッセージを送信する ## 独自のデバッグメッセージを送信する
[custom code](custom_quantum_functions.md)内からデバッグメッセージを出力すると便利な場合があります。それはとても簡単です。ファイルの先頭に`print.h`のインクルードを追加します: [custom code](ja/custom_quantum_functions.md)内からデバッグメッセージを出力すると便利な場合があります。それはとても簡単です。ファイルの先頭に`print.h`のインクルードを追加します:
#include <print.h> #include <print.h>
@@ -59,7 +59,7 @@ void keyboard_post_init_user(void) {
## デバッグの例 ## デバッグの例
以下は現実世界での実際のデバッグ手法の例を集めたものです。追加情報は[Debugging/Troubleshooting QMK](faq_debug.md)を参照してください。 以下は現実世界での実際のデバッグ手法の例を集めたものです。追加情報は[Debugging/Troubleshooting QMK](ja/faq_debug.md)を参照してください。
### マトリックス上のどの場所でキー押下が起こったか? ### マトリックス上のどの場所でキー押下が起こったか?
+1 -1
View File
@@ -7,7 +7,7 @@ This document aims to instruct novices in the best ways to have a smooth experie
This document assumes a few things: This document assumes a few things:
1. You have a GitHub account, and have [forked the qmk_firmware repository](getting_started_github.md) to your account. 1. You have a GitHub account, and have [forked the qmk_firmware repository](getting_started_github.md) to your account.
2. You've [set up your build environment](newbs_getting_started.md?id=environment-setup). 2. You've [set up your build environment](newbs_getting_started.md#set-up-your-environment).
## Your fork's master: Update Often, Commit Never ## Your fork's master: Update Often, Commit Never
+32 -12
View File
@@ -1,29 +1,49 @@
# How to translate the QMK docs into different languages # Translating the QMK Docs
All files in the root folder (`docs/`) should be in English - all other languages should be in subfolders with the ISO 639-1 language codes, followed by `-` and the country code where relevant. [A list of common ones can be found here](https://www.andiamo.co.uk/resources/iso-language-codes/). If this folder doesn't exist, you may create it. Each of the translated files should have the same name as the English version, so things can fall back successfully. All files in the root folder (`docs/`) should be in English - all other languages should be in subfolders with the ISO 639-1 language codes, followed by `-` and the country code where relevant. [A list of common ones can be found here](https://www.andiamo.co.uk/resources/iso-language-codes/). If this folder doesn't exist, you may create it. Each of the translated files should have the same name as the English version, so things can fall back successfully.
A `_summary.md` file should exist in this folder with a list of links to each file, with a translated name, and link preceded by the language folder: A `_summary.md` file should exist in this folder with a list of links to each file, with a translated name, and link preceded by the language folder:
* [QMK简介](zh-cn/getting_started_introduction.md) ```markdown
* [QMK简介](zh-cn/getting_started_introduction.md)
```
All links to other docs pages must also be prefixed with the language folder. If the link is to a specific part of the page (ie. a certain heading), you must use the English ID for the heading, like so:
```markdown
[建立你的环境](zh-cn/newbs-getting-started.md#set-up-your-environment)
## 建立你的环境 :id=set-up-your-environment
```
Once you've finished translating a new language, you'll also need to modify the following files: Once you've finished translating a new language, you'll also need to modify the following files:
* [`docs/_langs.md`](https://github.com/qmk/qmk_firmware/blob/master/docs/_langs.md) * [`docs/_langs.md`](https://github.com/qmk/qmk_firmware/blob/master/docs/_langs.md)
Each line should contain a country flag in the format `:us:` followed by the name represented in its own language: Each line should contain a country flag as a [GitHub emoji shortcode](https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md#country-flag) followed by the name represented in its own language:
- [:cn: 中文](/zh-cn/) ```markdown
- [:cn: 中文](/zh-cn/)
```
* [`docs/index.html`](https://github.com/qmk/qmk_firmware/blob/master/docs/index.html) * [`docs/index.html`](https://github.com/qmk/qmk_firmware/blob/master/docs/index.html)
Both `placeholder` and `noData` objects should have a dictionary entry for the language folder in a string: Both `placeholder` and `noData` objects should have a dictionary entry for the language folder in a string:
'/zh-cn/': '没有结果!',
## Previewing the translations ```js
'/zh-cn/': '没有结果!',
```
Before opening a pull request, you can preview your additions if you have Python 3 installed by running this command in the `docs/` folder: And make sure to add the language folder in the `fallbackLanguages` list, so it will properly fall back to English instead of 404ing:
python -m http.server 9000 ```js
fallbackLanguages: [
// ...
'zh-cn',
// ...
],
```
and navigating to http://localhost:9000/ - you should be able to select your new language from the "Translations" menu at the top-right. ## Previewing the Translations
See [Previewing the Documentation](contributing.md#previewing-the-documentation) for how to set up a local instance of the docs - you should be able to select your new language from the "Translations" menu at the top-right.
Once you're happy with your work, feel free to open a pull request! Once you're happy with your work, feel free to open a pull request!
+2 -2
View File
@@ -19,7 +19,7 @@ QMK (*Quantum Mechanical Keyboard*) 是一个社区维护的开源软件,包
## 如何编译 ## 如何编译
在你能编译之前, 你需要[部署环境](getting_started_build_tools.md) 用于 AVR or/and ARM 开发。完成后, 你可以使用 `make` 命令来编译一个键盘和布局使用以下命令: 在你能编译之前, 你需要[部署环境](zh-cn/getting_started_build_tools.md) 用于 AVR or/and ARM 开发。完成后, 你可以使用 `make` 命令来编译一个键盘和布局使用以下命令:
make planck/rev4:default make planck/rev4:default
@@ -29,4 +29,4 @@ QMK (*Quantum Mechanical Keyboard*) 是一个社区维护的开源软件,包
## 如何定制 ## 如何定制
QMK 有许多 [特性](features.md)来探索,也有很多 [参考文档](http://docs.qmk.fm) 供您发掘。你可以通过修改 [布局](keymap.md)和[键码](keycodes.md)来利用许多特性。 QMK 有许多 [特性](zh-cn/features.md)来探索,也有很多 [参考文档](http://docs.qmk.fm) 供您发掘。你可以通过修改 [布局](zh-cn/keymap.md)和[键码](zh-cn/keycodes.md)来利用许多特性。
+32 -18
View File
@@ -24,10 +24,10 @@
# include "wait.h" # include "wait.h"
#endif #endif
#include "is31fl3733.h"
#include <string.h> #include <string.h>
#include "i2c_master.h" #include "i2c_master.h"
#include "progmem.h" #include "progmem.h"
#include "is31fl3733.h"
// This is a 7-bit address, that gets left-shifted and bit 0 // This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol) // set to 0 for write, 1 for read (as per I2C protocol)
@@ -80,43 +80,54 @@ bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
uint8_t g_led_control_registers[DRIVER_COUNT][24] = {{0}, {0}}; uint8_t g_led_control_registers[DRIVER_COUNT][24] = {{0}, {0}};
bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; bool g_led_control_registers_update_required[DRIVER_COUNT] = {false};
void IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
// If the transaction fails function returns false.
g_twi_transfer_buffer[0] = reg; g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data; g_twi_transfer_buffer[1] = data;
#if ISSI_PERSISTENCE > 0 #if ISSI_PERSISTENCE > 0
for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break; if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) {
return false;
}
} }
#else #else
i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) {
return false;
}
#endif #endif
return true;
} }
void IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { bool IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// assumes PG1 is already selected // Assumes PG1 is already selected.
// If any of the transactions fails function returns false.
// transmit PWM registers in 12 transfers of 16 bytes // Transmit PWM registers in 12 transfers of 16 bytes.
// g_twi_transfer_buffer[] is 20 bytes // g_twi_transfer_buffer[] is 20 bytes
// iterate over the pwm_buffer contents at 16 byte intervals // Iterate over the pwm_buffer contents at 16 byte intervals.
for (int i = 0; i < 192; i += 16) { for (int i = 0; i < 192; i += 16) {
g_twi_transfer_buffer[0] = i; g_twi_transfer_buffer[0] = i;
// copy the data from i to i+15 // Copy the data from i to i+15.
// device will auto-increment register for data after the first byte // Device will auto-increment register for data after the first byte
// thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
for (int j = 0; j < 16; j++) { for (int j = 0; j < 16; j++) {
g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j];
} }
#if ISSI_PERSISTENCE > 0 #if ISSI_PERSISTENCE > 0
for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break; if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) {
return false;
}
} }
#else #else
i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT); if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) {
return false;
}
#endif #endif
} }
return true;
} }
void IS31FL3733_init(uint8_t addr, uint8_t sync) { void IS31FL3733_init(uint8_t addr, uint8_t sync) {
@@ -213,11 +224,15 @@ void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bo
void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index) { void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
if (g_pwm_buffer_update_required[index]) { if (g_pwm_buffer_update_required[index]) {
// Firstly we need to unlock the command register and select PG1 // Firstly we need to unlock the command register and select PG1.
IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5); IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); IS31FL3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
IS31FL3733_write_pwm_buffer(addr, g_pwm_buffer[index]); // If any of the transactions fail we risk writing dirty PG0,
// refresh page 0 just in case.
if (!IS31FL3733_write_pwm_buffer(addr, g_pwm_buffer[index])){
g_led_control_registers_update_required[index] = true;
}
} }
g_pwm_buffer_update_required[index] = false; g_pwm_buffer_update_required[index] = false;
} }
@@ -231,6 +246,5 @@ void IS31FL3733_update_led_control_registers(uint8_t addr, uint8_t index) {
IS31FL3733_write_register(addr, i, g_led_control_registers[index][i]); IS31FL3733_write_register(addr, i, g_led_control_registers[index][i]);
} }
} }
// This seems counter intuitive but sometimes this page can get corrupted. So update it every time. g_led_control_registers_update_required[index] = false;
// g_led_control_registers_update_required[index] = false;
} }
+2 -2
View File
@@ -32,8 +32,8 @@ typedef struct is31_led {
extern const is31_led g_is31_leds[DRIVER_LED_TOTAL]; extern const is31_led g_is31_leds[DRIVER_LED_TOTAL];
void IS31FL3733_init(uint8_t addr, uint8_t sync); void IS31FL3733_init(uint8_t addr, uint8_t sync);
void IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); bool IS31FL3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue); void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
@@ -1,12 +1,11 @@
#include QMK_KEYBOARD_H
#include "drashna.h" #include "drashna.h"
#include "analog.c" #include "analog.c"
#include "pointing_device.h" #include "pointing_device.h"
#include "pincontrol.h" #include "pincontrol.h"
#define KC_X0 LT(_FN, KC_ESC) #define KC_X0 LT(_FN, KC_ESC)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT( [_QWERTY] = LAYOUT(
KC_VOLU, KC_MPLY, KC_MPRV, RESET, KC_VOLU, KC_MPLY, KC_MPRV, RESET,
@@ -14,6 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
), ),
}; };
// clang-format on
// Joystick // Joystick
// Set Pins // Set Pins
@@ -39,7 +39,7 @@ int16_t xOrigin, yOrigin;
uint16_t lastCursor = 0; uint16_t lastCursor = 0;
int16_t axisCoordinate(uint8_t pin, uint16_t origin) { int16_t axisCoordinate(uint8_t pin, uint16_t origin) {
int8_t direction; int8_t direction;
int16_t distanceFromOrigin; int16_t distanceFromOrigin;
int16_t range; int16_t range;
@@ -57,8 +57,8 @@ int16_t axisCoordinate(uint8_t pin, uint16_t origin) {
direction = 1; direction = 1;
} }
float percent = (float)distanceFromOrigin / range; float percent = (float)distanceFromOrigin / range;
int16_t coordinate = (int16_t)(percent * 100); int16_t coordinate = (int16_t)(percent * 100);
if (coordinate < 0) { if (coordinate < 0) {
return 0; return 0;
} else if (coordinate > 100) { } else if (coordinate > 100) {
@@ -133,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
uint32_t layer_state_set_user(uint32_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
} }
+1
View File
@@ -0,0 +1 @@
#include "7skb.h"
+7
View File
@@ -0,0 +1,7 @@
#pragma once
#include "quantum.h"
#ifdef KEYBOARD_7skb_rev1
#include "rev1.h"
#endif
+21
View File
@@ -0,0 +1,21 @@
/*
Copyright 2012 Jun Wako <[email protected]>
Copyright 2015 Jack Humbert
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
+76
View File
@@ -0,0 +1,76 @@
{
"keyboard_name": "7skb",
"url": "https://salicylic-acid3.hatenablog.com/",
"maintainer": "Salicylic_acid3",
"width": 16,
"height": 5,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"Esc", "x":0, "y":0},
{"label":"1", "x":1, "y":0},
{"label":"2", "x":2, "y":0},
{"label":"3", "x":3, "y":0},
{"label":"4", "x":4, "y":0},
{"label":"5", "x":5, "y":0},
{"label":"6", "x":7, "y":0},
{"label":"7", "x":8, "y":0},
{"label":"8", "x":9, "y":0},
{"label":"9", "x":10, "y":0},
{"label":"0", "x":11, "y":0},
{"label":"-", "x":12, "y":0},
{"label":"=", "x":13, "y":0},
{"label":"\\", "x":14, "y":0},
{"label":"`", "x":15, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":7.5, "y":1},
{"label":"U", "x":8.5, "y":1},
{"label":"I", "x":9.5, "y":1},
{"label":"O", "x":10.5, "y":1},
{"label":"P", "x":11.5, "y":1},
{"label":"[", "x":12.5, "y":1},
{"label":"]", "x":13.5, "y":1},
{"label":"Delete", "x":14.5, "y":1, "w":1.5},
{"label":"Control", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":7.75, "y":2},
{"label":"J", "x":8.75, "y":2},
{"label":"K", "x":9.75, "y":2},
{"label":"L", "x":10.75, "y":2},
{"label":";", "x":11.75, "y":2},
{"label":"'", "x":12.75, "y":2},
{"label":"Enter", "x":13.75, "y":2, "w":2.25},
{"label":"Shift", "x":0, "y":3, "w":2.25},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":8.25, "y":3},
{"label":"M", "x":9.25, "y":3},
{"label":",", "x":10.25, "y":3},
{"label":".", "x":11.25, "y":3},
{"label":"/", "x":12.25, "y":3},
{"label":"Shift", "x":13.25, "y":3, "w":1.75},
{"label":"Fn", "x":15, "y":3},
{"label":"Alt", "x":1.5, "y":4},
{"label":"GUI", "x":2.5, "y":4, "w":1.5},
{"x":4, "y":4, "w":1.5},
{"x":5.5, "y":4, "w":1.25},
{"x":7.75, "y":4, "w":1.25},
{"x":9, "y":4, "w":2},
{"label":"GUI", "x":11, "y":4, "w":1.5},
{"label":"Alt", "x":12.5, "y":4}
]
}
}
}
+22
View File
@@ -0,0 +1,22 @@
/* Copyright 2018 Salicylic_acid3
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Select hand configuration */
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 180
+115
View File
@@ -0,0 +1,115 @@
#include QMK_KEYBOARD_H
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif
extern uint8_t is_master;
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_QWERTY = 0,
_FN,
_ADJUST,
};
enum custom_keycodes {
RGB_RST = SAFE_RANGE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS,KC_GRAVE,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LCBR, KC_RCBR,KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------|
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT
//`---------------------------------------------| |--------------------------------------------'
),
[_FN] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
TG(_ADJUST), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK,KC_PAUSE, KC_UP, _______, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT,KC_RIGHT, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, KC_STOP, _______
//`---------------------------------------------| |--------------------------------------------'
),
[_ADJUST] = LAYOUT( /* Base */
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
TG(_ADJUST), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_STOP, XXXXXXX
//`---------------------------------------------| |--------------------------------------------'
)
};
//A description for expressing the layer position in LED mode.
layer_state_t layer_state_set_user(layer_state_t state) {
#ifdef RGBLIGHT_ENABLE
switch (get_highest_layer(state)) {
case _FN:
rgblight_sethsv_at(HSV_BLUE, 0);
break;
case _ADJUST:
rgblight_sethsv_at(HSV_PURPLE, 0);
break;
default: // for any other layers, or the default layer
rgblight_sethsv_at( 0, 0, 0, 0);
break;
}
rgblight_set_effect_range( 1, 4);
#endif
return state;
}
int RGB_current_mode;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool result = false;
switch (keycode) {
#ifdef RGBLIGHT_ENABLE
case RGB_MOD:
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
RGB_current_mode = rgblight_config.mode;
}
break;
case RGB_RST:
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
RGB_current_mode = rgblight_config.mode;
}
break;
#endif
default:
result = true;
break;
}
return result;
}
+23
View File
@@ -0,0 +1,23 @@
/* Copyright 2018 Salicylic_acid3
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Select hand configuration */
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 180
//#define MASTER_RIGHT
+181
View File
@@ -0,0 +1,181 @@
#include QMK_KEYBOARD_H
#include "keymap_jp.h"
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif
extern uint8_t is_master;
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_QWERTY = 0,
_FLOCK,
_FN,
_LOWER,
_RAISE,
_ADJUST,
};
enum custom_keycodes {
RGB_RST = SAFE_RANGE
};
enum tapdances{
TD_ESFL = 0,
TD_ESQW,
};
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK),
[TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY),
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
TD(TD_ESFL), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_EQL, JP_BSLS, KC_ZKHK,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, JP_RBRC,KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------|
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_BSLS, KC_ENT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, JP_SLSH, KC_RSFT, MO(_FN),
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_ZKHK,LGUI_T(KC_MHEN),LT(_LOWER,KC_ENT), KC_BSPC, KC_DEL, LT(_RAISE,KC_SPC),ALT_T(KC_HENK), KC_APP
//`---------------------------------------------| |--------------------------------------------'
),
[_FLOCK] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
TD(TD_ESQW), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______
//`---------------------------------------------| |--------------------------------------------'
),
[_FN] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK,KC_PAUSE, KC_UP, _______, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT,KC_RIGHT, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, KC_STOP, _______
//`---------------------------------------------| |--------------------------------------------'
),
[_LOWER] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
JP_QUOT, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_P6, KC_P7, KC_P8, KC_P9, JP_ASTR, JP_SLSH, _______, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------|
JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXXXX, KC_P4, KC_P5, KC_P6, JP_MINS, JP_EQL, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_P0, KC_P1, KC_P2, KC_P3, JP_PLUS, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______,MO(_LOWER), _______, _______, MO(_RAISE), JP_DOT, _______
//`---------------------------------------------| |--------------------------------------------'
),
[_RAISE] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, XXXXXXX, _______, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------|
LCTL_T(KC_F11),XXXXXXX, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, XXXXXXX, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
SFT_T(KC_F12), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______
//`---------------------------------------------| |--------------------------------------------'
),
[_ADJUST] = LAYOUT( /* Base */
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, LCA(KC_DEL), LALT(KC_PSCR),KC_PSCR, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, _______, RESET, RESET, _______, KC_STOP, XXXXXXX
//`---------------------------------------------| |--------------------------------------------'
)
};
//A description for expressing the layer position in LED mode.
layer_state_t layer_state_set_user(layer_state_t state) {
state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
#ifdef RGBLIGHT_ENABLE
switch (get_highest_layer(state)) {
case _FLOCK:
rgblight_sethsv_at(HSV_YELLOW, 0);
break;
case _FN:
rgblight_sethsv_at(HSV_GREEN, 0);
break;
case _LOWER:
rgblight_sethsv_at(HSV_BLUE, 0);
break;
case _RAISE:
rgblight_sethsv_at(HSV_RED, 0);
break;
case _ADJUST:
rgblight_sethsv_at(HSV_PURPLE, 0);
break;
default: // for any other layers, or the default layer
rgblight_sethsv_at( 0, 0, 0, 0);
break;
}
rgblight_set_effect_range( 1, 4);
#endif
return state;
}
int RGB_current_mode;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool result = false;
switch (keycode) {
#ifdef RGBLIGHT_ENABLE
case RGB_MOD:
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
RGB_current_mode = rgblight_config.mode;
}
break;
case RGB_RST:
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
RGB_current_mode = rgblight_config.mode;
}
break;
#endif
default:
result = true;
break;
}
return result;
}
@@ -0,0 +1 @@
TAP_DANCE_ENABLE = yes
+17
View File
@@ -0,0 +1,17 @@
# 7skb
![7skb](https://cdn-ak.f.st-hatena.com/images/fotolife/S/Salicylic_acid3/20191124/20191124025208.png)
This is 63 keys Custom keyboard.
* Keyboard Maintainer: [Salicylic_acid3](https://github.com/Salicylic-acid3)
* Hardware Supported: 7skb PCB, Pro Micro
* Hardware Availability: [PCB & Case Data](https://github.com/Salicylic-acid3/PCB_Data), [Booth Shop](https://salicylic-acid3.booth.pm/items/1673395)
Make example for this keyboard (after setting up your build environment):
make 7skb:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
[Build guide](https://salicylic-acid3.hatenablog.com/entry/7skb-mx-build-guide)
+84
View File
@@ -0,0 +1,84 @@
/*
Copyright 2012 Jun Wako <[email protected]>
Copyright 2015 Jack Humbert
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include QMK_KEYBOARD_CONFIG_H
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x3060
#define DEVICE_VER 0x0007
#define MANUFACTURER Salicylic_Acid
#define PRODUCT 7skb
#define DESCRIPTION A custom keyboard
/* key matrix size */
#define MATRIX_ROWS 10
#define MATRIX_COLS 8
// wiring of each half
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B5 }
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D2
#define SPLIT_HAND_PIN B6
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
#ifndef RGBLED_NUM
#define RGBLED_NUM 10
#define RGBLIGHT_SPLIT
#define RGBLED_SPLIT { 5, 5 }
#endif
#define RGBLIGHT_ANIMATIONS
#ifndef IOS_DEVICE_ENABLE
#define RGBLIGHT_LIMIT_VAL 180
#define RGBLIGHT_VAL_STEP 17
#else
#define RGBLIGHT_LIMIT_VAL 50
#define RGBLIGHT_VAL_STEP 4
#endif
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for naked48 keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
+1
View File
@@ -0,0 +1 @@
#include "rev1.h"
+42
View File
@@ -0,0 +1,42 @@
#pragma once
#include "7skb.h"
#include "quantum.h"
//////////////////////////////////////////////////////////////////////////////
// When only use 7skb.
//////////////////////////////////////////////////////////////////////////////
/*
* ,------------------------------------ ------------------------------------------------------.
* | L00 | L01 | L02 | L03 | L04 | L05 | | R00 | R01 | R02 | R03 | R04 | R05 | R06 | R07 | R17 |
* |---------------------------------------------------------------------------------------------+
* | L10 | L11 | L12 | L13 | L14 | L15 | | R10 | R11 | R12 | R13 | R14 | R15 | R16 | R27 |
* |---------------------------------------- ---------------------------------------------------+
* | L20 | L21 | L22 | L23 | L24 | L25 | | R20 | R21 | R22 | R23 | R24 | R25 | R26 |
* |---------------------------------------------------------------------------------------------+
* | L30 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 | R36 |
* |------------------------------------------- -----------------------------------------------'
* | L41 | L42 | L43 | L44 | | R40 | R41 | R43 | R44 |
* |------------------------------ ---------------------------------'
*/
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, R06, R07, R17, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, R16, R27, \
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, R26, \
L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, R36, \
L41, L42, L43, L44, R40, R41, R43, R44 \
) \
{ \
{ L00, L01, L02, L03, L04, L05, KC_NO, KC_NO }, \
{ L10, L11, L12, L13, L14, L15, KC_NO, KC_NO }, \
{ L20, L21, L22, L23, L24, L25, KC_NO, KC_NO }, \
{ L30, L31, L32, L33, L34, L35, KC_NO, KC_NO }, \
{KC_NO, L41, L42, L43, L44, KC_NO, KC_NO, KC_NO }, \
{ R00, R01, R02, R03, R04, R05, R06, R07 }, \
{ R10, R11, R12, R13, R14, R15, R16, R17 }, \
{ R20, R21, R22, R23, R24, R25, R26, R27 }, \
{ R30, R31, R32, R33, R34, R35, R36, KC_NO }, \
{ R40, R41, KC_NO, R43, R44, KC_NO, KC_NO, KC_NO } \
}
View File
Whitespace-only changes.
+35
View File
@@ -0,0 +1,35 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = caterina
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
SPLIT_KEYBOARD = yes
DEFAULT_FOLDER = 7skb/rev1
@@ -1,6 +1,5 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -90,8 +90,8 @@ void led_set_user(uint8_t usb_led) {
} }
} }
uint32_t layer_state_set_user(uint32_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
switch (biton32(state)) { switch (get_highest_layer(state)) {
case 1: case 1:
writePinHigh(D1); writePinHigh(D1);
break; break;
@@ -85,7 +85,7 @@ void led_set_user(uint8_t usb_led) {
} }
uint32_t layer_state_set_user(uint32_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
return state; return state;
} }
+8 -33
View File
@@ -1,42 +1,17 @@
lSJ Ares # lSJ Ares
========
Keyboard Maintainer: QMK Community * Keyboard Maintainer: QMK Community
Hardware Supported: LSJ Ares PCB * Hardware Supported: LSJ Ares PCB
Hardware Availability: https://geekhack.org/index.php?topic=93146.0 * Hardware Availability: <https://geekhack.org/index.php?topic=93146.0>
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make ares:default make ares:default
Flashing Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods. make ares:default:flash
Windows: **Reset Key**: Hold down the *left control* key while plugging in the keyboard.
1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
2. Place your keyboard into reset by holding the left control key and plugging the cable in.
3. Press the `Find Device` button and ensure that your keyboard is found.
4. Press the `Open .hex File` button and locate the `.hex` file you created.
5. Press the `Flash Device` button and wait for the process to complete.
macOS: See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
1. Install homebrew by typing the following:
```
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
2. Install `crosspack-avr`.
```
brew cask install crosspack-avr
```
3. Install the following packages:
```
brew install python
brew install pyusb
brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
4. Place your keyboard into reset.
5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file.
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+8 -35
View File
@@ -1,44 +1,17 @@
B.fake # B.fake
========
A 60% keyboard with RGB. The B.fake pcb is a copy of the B.face PCB sold by [winkeyless](https://winkeyless.kr/). However, the switch matrix is actually the same as the [FaceW](https://github.com/qmk/qmk_firmware/tree/master/keyboards/facew), a ps2avr PCB sold on [mechanicalkeyboards.com](https://mechanicalkeyboards.com/). A 60% keyboard with RGB. The B.fake pcb is a copy of the B.face PCB sold by [winkeyless](https://winkeyless.kr/). However, the switch matrix is actually the same as the [FaceW](https://github.com/qmk/qmk_firmware/tree/master/keyboards/facew), a ps2avr PCB sold on [mechanicalkeyboards.com](https://mechanicalkeyboards.com/).
Keyboard Maintainer: QMK Community * Keyboard Maintainer: QMK Community
Hardware Supported: B.fake PCB * Hardware Supported: B.fake PCB
Hardware Availability: https://www.aliexpress.com/store/product/bface-60-RGB-underground-copy-pcb-from-china-gh60-pcb-Customize-keyboard-PCB/2230037_32731084597.html * Hardware Availability: <https://www.aliexpress.com/store/product/bface-60-RGB-underground-copy-pcb-from-china-gh60-pcb-Customize-keyboard-PCB/2230037_32731084597.html>
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make bfake:default make bfake:default
Flashing Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods. make bfake:default:flash
Windows: See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
2. Place your keyboard into reset.
3. Press the `Find Device` button and ensure that your keyboard is found.
4. Press the `Open .hex File` button and locate the `.hex` file you created.
5. Press the `Flash Device` button and wait for the process to complete.
macOS:
1. Install homebrew by typing the following:
```
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
2. Install `crosspack-avr`.
```
brew cask install crosspack-avr
```
3. Install the following packages:
```
brew install python
brew install pyusb
brew install --HEAD`https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
4. Place your keyboard into reset.
5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file.
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
@@ -108,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
uint32_t layer_state_set_user(uint32_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
} }
@@ -163,4 +163,3 @@ void matrix_init_user(void) {
void matrix_scan_user(void) { void matrix_scan_user(void) {
} }
+7 -2
View File
@@ -2,6 +2,11 @@
// place overrides here // place overrides here
#undef MATRIX_COL_PINS #undef MATRIX_COL_PINS
#define MATRIX_COL_PINS { A3, A2, A1, A0, B13, B14, B15, B9, B3, B2, B4, A10, A9 } #define MATRIX_COL_PINS \
{ A3, A2, A1, A0, B13, B14, B15, B9, B3, B2, B4, A10, A9 }
#undef MATRIX_ROW_PINS #undef MATRIX_ROW_PINS
#define MATRIX_ROW_PINS { B7, B1, B0 } #define MATRIX_ROW_PINS \
{ B7, B1, B0 }
#define RGB_DI_PIN B10
#define RGBLED_NUM 15
+91 -39
View File
@@ -1,45 +1,97 @@
#include QMK_KEYBOARD_H #include "drashna.h"
// Each layer gets a name for readability, which is then used in the keymap matrix below. /*
// The underscores don't mean anything - you can have a layer called STUFF or any other name. * The `LAYOUT_base` macro is a template to allow the use of identical
// Layer names don't all need to be of the same length, obviously, and you can also skip them * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
// entirely and just use numbers. * that there is no need to set them up for each layout, and modify all of
#define _QWERTY 0 * them if I want to change them. This helps to keep consistency and ease
#define _FN1 1 * of use. K## is a placeholder to pass through the individual keycodes
*/
// Defines for task manager and such // clang-format off
#define CALTDEL LCTL(LALT(KC_DEL)) #define LAYOUT_base( \
#define TSKMGR LCTL(LSFT(KC_ESC)) K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_wrapper( \
KC_ESC, K01, K02, K03, K04, K05, KC_NO, K06, K07, K08, K09, K0A, KC_DEL, \
ALT_T(KC_TAB), K11, K12, K13, K14, K15, KC_BSPC, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \
KC_MLSF, CTL_T(K21), K22, K23, K24, LT(_LOWER,K25), KC_SPC, LT(_RAISE,K26), K27, K28, K29, RCTL_T(K2A), KC_ENT \
)
#define LAYOUT_base_wrapper(...) LAYOUT_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty [_QWERTY] = LAYOUT_base_wrapper(
* ,----------------------------------------------------------------------------. ,-------------. _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
* | Q | W | E | R | T | Bksp | Y | U | I | O | P | | M1 | M2 | _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
* |------+------+------+------+------+------+------+------+------+------+------+ |------+------| _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
* | A | S | D | F | G | Enter| H | J | K | L | ; | | M3 | M4 | ),
* |------+------+------+------+------+------+------+------+------+------+------+ |------+------|
* | Z | X | C | V | B | FN1 | N | M | , | . | / | | M5 | M6 |
* `----------------------------------------------------------------------------' `-------------'
*/
[_QWERTY] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_1, KC_2,
KC_A, KC_S, KC_D, KC_F, KC_G, MT(MOD_LSFT, KC_ENT), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_3, KC_4,
KC_Z, KC_X, KC_C, KC_V, KC_B, LT(_FN1, KC_SPC), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_5, KC_6
),
/* FN1 [_COLEMAK] = LAYOUT_base_wrapper(
* ,----------------------------------------------------------------------------. ,-------------. _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
* | 1 | 2 | 3 | 4 | 5 | Bksp | 6 | 7 | 8 | 9 | 0 | | M1 | M2 | _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
* |------+------+------+------+------+------+------+------+------+------+------+ |------+------| _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
* | 4 | 5 | 6 | + | | Enter| | | | | | | M3 | M4 | ),
* |------+------+------+------+------+------+------+------+------+------+------+ |------+------|
* | 7 | 8 | 9 | 0 | | FN1 | | | | | | | M5 | M6 | [_DVORAK] = LAYOUT_base_wrapper(
* `----------------------------------------------------------------------------' `-------------' _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
*/ _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
[_FN1] = LAYOUT( _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
KC_1, KC_2, KC_3, KC_4, KC_5, KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_1, KC_2, ),
KC_4, KC_5, KC_6, KC_PLUS, _______, KC_ENT, _______, _______, _______, _______, _______, KC_3, KC_4,
KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, _______, _______, _______, KC_5, KC_6 [_WORKMAN] = LAYOUT_base_wrapper(
), _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_MODS] = LAYOUT_wrapper(
_______, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______,
_______, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______,
KC_LSFT, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______
),
[_LOWER] = LAYOUT_wrapper(
KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC,
KC_DEL, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE,
_______, _________________LOWER_L3__________________, _______, _________________LOWER_R3__________________, _______
),
[_RAISE] = LAYOUT_wrapper(
KC_GRV, _________________RAISE_L1__________________, _______, _________________RAISE_R1__________________, KC_BSPC,
KC_DEL, _________________RAISE_L2__________________, _______, _________________RAISE_R2__________________, KC_BSLS,
_______, _________________RAISE_L3__________________, _______, _________________RAISE_R3__________________, _______
),
[_ADJUST] = LAYOUT_wrapper(
KC_MAKE, _________________ADJUST_L1_________________, KC_NUKE, _________________ADJUST_R1_________________, KC_RST,
VRSN, _________________ADJUST_L2_________________, MG_NKRO, _________________ADJUST_R2_________________, EEP_RST,
TG_MODS, _________________ADJUST_L3_________________, KC_RGB_T,_________________ADJUST_R3_________________, RGB_IDL
)
}; };
// clang-format on
+3 -1
View File
@@ -15,4 +15,6 @@ MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = yes # Unicode UNICODE_ENABLE = yes # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = yes # Audio output on port C6 AUDIO_ENABLE = yes # Audio output on port C6
RGBLIGHT_ENABLE = no # RGB Enable / Disable RGBLIGHT_ENABLE = yes # RGB Enable / Disable
RGBLIGHT_STARTUP_ANIMATION = yes
+21 -7
View File
@@ -19,12 +19,26 @@
#define LAYOUT( \ #define LAYOUT( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, k1d, k1e, k1f, k1g, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, k1d, k1e, k1f, k1g, \
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \
k30, k31, k32, k35, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g \ k30, k31, k32, k35, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g \
) { \ ) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ { k00, k01 , k02, k03 , k04 , k05, k06 , k07, k08, k09, k0a, k0b , k0c, k0d, k0e, k0f, k0g } , \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, KC_NO, k1c, k1d, k1e, k1f, k1g }, \ { k10, k11 , k12, k13 , k14 , k15, k16 , k17, k18, k19, k1a, KC_NO, k1c, k1d, k1e, k1f, k1g } , \
{ k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ { k20, KC_NO, k22, k23 , k24 , k25, k26 , k27, k28, k29, k2a, k2b , k2c, k2d, k2e, k2f, k2g } , \
{ k30, k31, k32, KC_NO, KC_NO, k35, KC_NO, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g } \ { k30, k31 , k32, KC_NO, KC_NO, k35, KC_NO, k37, k38, k39, k3a, k3b , k3c, k3d, k3e, k3f, k3g } \
} }
#define LAYOUT_lefty( \
k0d, k0e, k0f, k0g, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \
k1d, k1e, k1f, k1g, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \
k2d, k2e, k2f, k2g, k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
k3d, k3e, k3f, k3g, k30, k31, k32, k35, k37, k38, k39, k3a, k3b, k3c \
) { \
{ k00, k01 , k02, k03 , k04 , k05, k06 , k07, k08, k09, k0a, k0b , k0c, k0d, k0e, k0f, k0g } , \
{ k10, k11 , k12, k13 , k14 , k15, k16 , k17, k18, k19, k1a, KC_NO, k1c, k1d, k1e, k1f, k1g } , \
{ k20, KC_NO, k22, k23 , k24 , k25, k26 , k27, k28, k29, k2a, k2b , k2c, k2d, k2e, k2f, k2g } , \
{ k30, k31 , k32, KC_NO, KC_NO, k35, KC_NO, k37, k38, k39, k3a, k3b , k3c, k3d, k3e, k3f, k3g } \
}
#define LAYOUT_righty LAYOUT
+18 -204
View File
@@ -1,210 +1,24 @@
{ {
"keyboard_name": "TKC Candybar", "keyboard_name": "TKC Candybar",
"url": "", "url": "",
"maintainer": "terrymathews", "maintainer": "terrymathews",
"width": 17, "width": 17,
"height": 4, "height": 4,
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [ "layout": [
{"label":"Esc", {"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Del", "x":11, "y":0}, {"label":"BkSp", "x":12, "y":0}, {"label":"7", "x":13, "y":0}, {"label":"8", "x":14, "y":0}, {"label":"9", "x":15, "y":0}, {"label":"*", "x":16, "y":0},
"x":0, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.75}, {"label":"4", "x":13, "y":1}, {"label":"5", "x":14, "y":1}, {"label":"6", "x":15, "y":1}, {"label":"-", "x":16, "y":1},
"y":0}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"Shift", "x":10.75, "y":2, "w":1.25}, {"label":"&uarr;", "x":12, "y":2}, {"label":"1", "x":13, "y":2}, {"label":"2", "x":14, "y":2}, {"label":"3", "x":15, "y":2}, {"label":"+", "x":16, "y":2},
{"label":"Q", {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"GUI", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":1.75}, {"x":5.5, "y":3, "w":1}, {"label":"Backspace", "x":6.5, "y":3, "w":2.25}, {"label":"Menu", "x":8.75, "y":3, "w":1.25}, {"label":"Fn", "x":10, "y":3}, {"label":"&larr;", "x":11, "y":3}, {"label":"&darr;", "x":12, "y":3}, {"label":"&rarr;", "x":13, "y":3}, {"label":"0", "x":14, "y":3}, {"label":".", "x":15, "y":3}, {"label":"Enter", "x":16, "y":3}]
"x":1, },
"y":0}, "LAYOUT_lefty": {
{"label":"W", "layout": [
"x":2, {"label":"7", "x":0, "y":0}, {"label":"8", "x":1, "y":0}, {"label":"9", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"Esc", "x":4, "y":0}, {"label":"Q", "x":5, "y":0}, {"label":"W", "x":6, "y":0}, {"label":"E", "x":7, "y":0}, {"label":"R", "x":8, "y":0}, {"label":"T", "x":9, "y":0}, {"label":"Y", "x":10, "y":0}, {"label":"U", "x":11, "y":0}, {"label":"I", "x":12, "y":0}, {"label":"O", "x":13, "y":0}, {"label":"P", "x":14, "y":0}, {"label":"{", "x":15, "y":0}, {"label":"}", "x":16, "y":0},
"y":0}, {"label":"4", "x":0, "y":1}, {"label":"5", "x":1, "y":1}, {"label":"6", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"Tab", "x":4, "y":1, "w":1.25}, {"label":"A", "x":5.25, "y":1}, {"label":"S", "x":6.25, "y":1}, {"label":"D", "x":7.25, "y":1}, {"label":"F", "x":8.25, "y":1}, {"label":"G", "x":9.25, "y":1}, {"label":"H", "x":10.25, "y":1}, {"label":"J", "x":11.25, "y":1}, {"label":"K", "x":12.25, "y":1}, {"label":"L", "x":13.25, "y":1}, {"label":":", "x":14.25, "y":1}, {"label":"Enter", "x":15.25, "y":1, "w":1.75},
{"label":"E", {"label":"1", "x":0, "y":2}, {"label":"2", "x":1, "y":2}, {"label":"3", "x":2, "y":2}, {"x":3, "y":2}, {"label":"Shift", "x":4, "y":2, "w":1.75}, {"label":"Z", "x":5.75, "y":2}, {"label":"X", "x":6.75, "y":2}, {"label":"C", "x":7.75, "y":2}, {"label":"V", "x":8.75, "y":2}, {"label":"B", "x":9.75, "y":2}, {"label":"N", "x":10.75, "y":2}, {"label":"M", "x":11.75, "y":2}, {"label":"<", "x":12.75, "y":2}, {"label":">", "x":13.75, "y":2}, {"label":"\u2191", "x":14.75, "y":2}, {"label":"Shift", "x":15.75, "y":2, "w":1.25},
"x":3, {"label":"Fn", "x":0, "y":3}, {"label":"0", "x":1, "y":3}, {"label":".", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"Ctrl", "x":4, "y":3, "w":1.25}, {"label":"Win", "x":5.25, "y":3, "w":1.25}, {"label":"Alt", "x":6.5, "y":3, "w":1.25}, {"x":7.75, "y":3, "w":1.75}, {"x":9.5, "y":3}, {"x":10.5, "y":3, "w":2.25}, {"label":"Win", "x":12.75, "y":3, "w":1.25}, {"label":"\u2190", "x":14, "y":3}, {"label":"\u2193", "x":15, "y":3}, {"label":"\u2192", "x":16, "y":3}
"y":0}, ]
{"label":"R",
"x":4,
"y":0},
{"label":"T",
"x":5,
"y":0},
{"label":"Y",
"x":6,
"y":0},
{"label":"U",
"x":7,
"y":0},
{"label":"I",
"x":8,
"y":0},
{"label":"O",
"x":9,
"y":0},
{"label":"P",
"x":10,
"y":0},
{"label":"Del",
"x":11,
"y":0},
{"label":"BkSp",
"x":12,
"y":0},
{"label":"7",
"x":13,
"y":0},
{"label":"8",
"x":14,
"y":0},
{"label":"9",
"x":15,
"y":0},
{"label":"*",
"x":16,
"y":0},
{"label":"Tab",
"x":0,
"y":1,
"w":1.25},
{"label":"A",
"x":1.25,
"y":1},
{"label":"S",
"x":2.25,
"y":1},
{"label":"D",
"x":3.25,
"y":1},
{"label":"F",
"x":4.25,
"y":1},
{"label":"G",
"x":5.25,
"y":1},
{"label":"H",
"x":6.25,
"y":1},
{"label":"J",
"x":7.25,
"y":1},
{"label":"K",
"x":8.25,
"y":1},
{"label":"L",
"x":9.25,
"y":1},
{"label":":",
"x":10.25,
"y":1},
{"label":"Enter",
"x":11.25,
"y":1,
"w":1.75},
{"label":"4",
"x":13,
"y":1},
{"label":"5",
"x":14,
"y":1},
{"label":"6",
"x":15,
"y":1},
{"label":"-",
"x":16,
"y":1},
{"label":"Shift",
"x":0,
"y":2,
"w":1.75},
{"label":"Z",
"x":1.75,
"y":2},
{"label":"X",
"x":2.75,
"y":2},
{"label":"C",
"x":3.75,
"y":2},
{"label":"V",
"x":4.75,
"y":2},
{"label":"B",
"x":5.75,
"y":2},
{"label":"N",
"x":6.75,
"y":2},
{"label":"M",
"x":7.75,
"y":2},
{"label":"<",
"x":8.75,
"y":2},
{"label":">",
"x":9.75,
"y":2},
{"label":"Shift",
"x":10.75,
"y":2,
"w":1.25},
{"label":"&uarr;",
"x":12,
"y":2},
{"label":"1",
"x":13,
"y":2},
{"label":"2",
"x":14,
"y":2},
{"label":"3",
"x":15,
"y":2},
{"label":"+",
"x":16,
"y":2},
{"label":"Ctrl",
"x":0,
"y":3,
"w":1.25},
{"label":"GUI",
"x":1.25,
"y":3,
"w":1.25},
{"label":"Alt",
"x":2.5,
"y":3,
"w":1.25},
{"x":3.75,
"y":3,
"w":1.75},
{"x":5.5,
"y":3,
"w":1},
{"label":"Backspace",
"x":6.5,
"y":3,
"w":2.25},
{"label":"Menu",
"x":8.75,
"y":3,
"w":1.25},
{"label":"Fn",
"x":10,
"y":3},
{"label":"&larr;",
"x":11,
"y":3},
{"label":"&darr;",
"x":12,
"y":3},
{"label":"&rarr;",
"x":13,
"y":3},
{"label":"0",
"x":14,
"y":3},
{"label":".",
"x":15,
"y":3},
{"label":"Enter",
"x":16,
"y":3}]
} }
} }
} }
+38
View File
@@ -0,0 +1,38 @@
/* Copyright 2018 Jack Humbert
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#define _BL 0
#define _FL 1
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer)
*/
[_BL] = LAYOUT_lefty(
KC_P7 , KC_P8, KC_P9 , KC_PAST, KC_ESC , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_DEL , KC_BSPC , \
KC_P4 , KC_P5, KC_P6 , KC_PMNS, KC_TAB , KC_A , KC_S , KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_SCLN, KC_ENT , \
KC_P1 , KC_P2, KC_P3 , KC_PPLS, KC_LSFT, KC_Z , KC_X, KC_C , KC_V , KC_B, KC_N , KC_M , KC_COMM, KC_DOT , KC_UP ,KC_RSFT , \
MO(_FL), KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC , KC_BSPC, KC_APP , KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
*/
[_FL] = LAYOUT_lefty(
KC_P7 , KC_P8, KC_P9 , KC_VOLU, RESET , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_LBRC, KC_RBRC, KC_INS , KC_BSPC , \
KC_P4 , KC_P5, KC_P6 , KC_VOLD, KC_TAB , KC_A , KC_SLCK, KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_QUOT, KC_BSLS , \
KC_P1 , KC_P2, KC_P3 , KC_PEQL, KC_LSFT, KC_Z , KC_X, KC_CAPS, KC_V , KC_B, KC_NLCK, KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_PGUP , \
KC_END, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC , KC_BSPC, KC_APP , MO(_FL), KC_HOME, KC_PGDN),
};
@@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -16,7 +16,6 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
enum layers { enum layers {
_BASE, _BASE,
@@ -18,7 +18,6 @@ enum custom_keycodes {
CKEYS_ABOUT, CKEYS_ABOUT,
}; };
extern keymap_config_t keymap_config;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* BASE (numpad) /* BASE (numpad)
@@ -1,6 +1,5 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* LAYERS /* LAYERS
@@ -7,7 +7,6 @@
#include "ssd1306.h" #include "ssd1306.h"
#endif #endif
extern keymap_config_t keymap_config;
extern uint8_t is_master; extern uint8_t is_master;
+1 -1
View File
@@ -144,7 +144,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
uint32_t layer_state_set_user(uint32_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
} }
@@ -16,7 +16,6 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
enum planck_layers { enum planck_layers {
_QWERTY, _QWERTY,
@@ -4,12 +4,16 @@
A 65% keyboard that can be assembled with only through hole components, including usb type-c A 65% keyboard that can be assembled with only through hole components, including usb type-c
Keyboard Maintainer: [coseyfannitutti](https://github.com/coseyfannitutti) * Keyboard Maintainer: [coseyfannitutti](https://github.com/coseyfannitutti)
Hardware Supported: DISCIPLINE, atmega32a * Hardware Supported: DISCIPLINE, atmega32a
Hardware Availability: [cftkb.com](http://www.cftkb.com), [GitHub](https://github.com/coseyfannitutti/discipline) * Hardware Availability: [cftkb.com](http://www.cftkb.com), [GitHub](https://github.com/coseyfannitutti/discipline)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make coseyfannitutti/discipline:default make coseyfannitutti/discipline:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
make coseyfannitutti/discipline:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
-1
View File
@@ -1,6 +1,5 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings //Following line allows macro to read current RGB settings
+5 -4
View File
@@ -1,17 +1,18 @@
#pragma once #pragma once
#ifdef __AVR__ #ifdef __AVR__
#include <avr/io.h> # include <avr/io.h>
#include <avr/pgmspace.h> # include <avr/pgmspace.h>
#elif defined(ESP8266) #elif defined(ESP8266)
#include <pgmspace.h> # include <pgmspace.h>
#else #else
#define PROGMEM # define PROGMEM
#endif #endif
// Corne 8x6 font with QMK Firmware Logo // Corne 8x6 font with QMK Firmware Logo
// Online editor: https://helixfonteditor.netlify.com/ // Online editor: https://helixfonteditor.netlify.com/
// clang-format off
const unsigned char font[] PROGMEM = { const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+27 -22
View File
@@ -1,17 +1,17 @@
#include QMK_KEYBOARD_H
#include "drashna.h" #include "drashna.h"
extern keymap_config_t keymap_config; extern uint8_t is_master;
extern uint8_t is_master;
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
// Following line allows macro to read current RGB settings // Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config; extern rgblight_config_t rgblight_config;
#endif #endif
#ifdef OLED_DRIVER_ENABLE #ifdef OLED_DRIVER_ENABLE
static uint32_t oled_timer = 0; # define KEYLOGGER_LENGTH 5
static char keylog_str[6] = {}; static uint32_t oled_timer = 0;
static uint16_t log_timer = 0; static char keylog_str[KEYLOGGER_LENGTH + 1] = {"\n"};
static uint16_t log_timer = 0;
// clang-format off
static const char PROGMEM code_to_name[0xFF] = { static const char PROGMEM code_to_name[0xFF] = {
// 0 1 2 3 4 5 6 7 8 9 A B c D E F // 0 1 2 3 4 5 6 7 8 9 A B c D E F
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x
@@ -37,7 +37,14 @@ void add_keylog(uint16_t keycode);
enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE };
// clang-format off /*
* The `LAYOUT_crkbd_base` macro is a template to allow the use of identical
* modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
* that there is no need to set them up for each layout, and modify all of
* them if I want to change them. This helps to keep consistency and ease
* of use. K## is a placeholder to pass through the individual keycodes
*/
#define LAYOUT_crkbd_base( \ #define LAYOUT_crkbd_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
@@ -155,7 +162,7 @@ void add_keylog(uint16_t keycode) {
keycode = 0; keycode = 0;
} }
for (uint8_t i = 4; i > 0; --i) { for (uint8_t i = (KEYLOGGER_LENGTH - 1); i > 0; --i) {
keylog_str[i] = keylog_str[i - 1]; keylog_str[i] = keylog_str[i - 1];
} }
@@ -168,7 +175,7 @@ void add_keylog(uint16_t keycode) {
void update_log(void) { void update_log(void) {
if (timer_elapsed(log_timer) > 750) { if (timer_elapsed(log_timer) > 750) {
//add_keylog(0); // add_keylog(0);
} }
} }
@@ -179,7 +186,7 @@ void render_keylogger_status(void) {
void render_default_layer_state(void) { void render_default_layer_state(void) {
oled_write_P(PSTR("Lyout"), false); oled_write_P(PSTR("Lyout"), false);
switch (biton32(default_layer_state)) { switch (get_highest_layer(default_layer_state)) {
case _QWERTY: case _QWERTY:
oled_write_P(PSTR(" QRTY"), false); oled_write_P(PSTR(" QRTY"), false);
break; break;
@@ -268,7 +275,7 @@ void render_status_secondary(void) {
/* Show Keyboard Layout */ /* Show Keyboard Layout */
render_default_layer_state(); render_default_layer_state();
render_layer_state(); render_layer_state();
render_mod_status(get_mods()|get_oneshot_mods()); render_mod_status(get_mods() | get_oneshot_mods());
render_keylogger_status(); render_keylogger_status();
} }
@@ -278,9 +285,11 @@ void oled_task_user(void) {
oled_off(); oled_off();
return; return;
} }
#ifndef SPLIT_KEYBOARD # ifndef SPLIT_KEYBOARD
else { oled_on(); } else {
#endif oled_on();
}
# endif
update_log(); update_log();
if (is_master) { if (is_master) {
@@ -303,16 +312,12 @@ uint16_t get_tapping_term(uint16_t keycode) {
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
void suspend_power_down_keymap(void) { void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); }
rgb_matrix_set_suspend_state(true);
}
void suspend_wakeup_init_keymap(void) { void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); }
rgb_matrix_set_suspend_state(false);
}
void check_default_layer(uint8_t mode, uint8_t type) { void check_default_layer(uint8_t mode, uint8_t type) {
switch (biton32(default_layer_state)) { switch (get_highest_layer(default_layer_state)) {
case _QWERTY: case _QWERTY:
rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type); rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type);
break; break;
@@ -351,7 +356,7 @@ void rgb_matrix_indicators_user(void) {
rgb_matrix_config.enable rgb_matrix_config.enable
# endif # endif
) { ) {
switch (biton32(layer_state)) { switch (get_highest_layer(layer_state)) {
case _GAMEPAD: case _GAMEPAD:
rgb_matrix_layer_helper(HSV_ORANGE, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); rgb_matrix_layer_helper(HSV_ORANGE, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW);
break; break;
-1
View File
@@ -1,6 +1,5 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// Layer shorthand // Layer shorthand
#define _BL 0 #define _BL 0
@@ -1,6 +1,5 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -84,7 +84,6 @@ qk_tap_dance_action_t tap_dance_actions[] = {
}; };
// KEYMAP // KEYMAP
extern keymap_config_t keymap_config;
#define _QWERTY 0 #define _QWERTY 0
#define _LOWER 1 #define _LOWER 1
@@ -17,7 +17,6 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -195,6 +194,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true; return true;
} }
uint32_t layer_state_set_user(uint32_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
} }
+6 -32
View File
@@ -2,44 +2,18 @@
96 key atmega32a keyboard. 96 key atmega32a keyboard.
Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) * Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
Hardware Supported: Budget96 PCB * Hardware Supported: Budget96 PCB
Hardware Availability: [DonutCables](https://donutcables.com/) * Hardware Availability: [DonutCables](https://donutcables.com/)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make donutcables/budget96:default make donutcables/budget96:default
Flashing Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
**Reset Key:** Hold down the key located at `K00`, commonly programmed as left control while plugging in the keyboard. make donutcables/budget96:default:flash
ps2avr(GB) boards use an atmega32a microcontroller and a different bootloader. It is not flashable using the regular QMK methods. **Reset Key**: Hold down the key located at *K00*, commonly programmed as *left control* while plugging in the keyboard.
Windows:
1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
2. Place your keyboard into reset.
3. Press the `Find Device` button and ensure that your keyboard is found.
4. Press the `Open .hex File` button and locate the `.hex` file you created.
5. Press the `Flash Device` button and wait for the process to complete.
macOS:
1. Install homebrew by typing the following:
```
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
2. Install `crosspack-avr`.
```
brew cask install crosspack-avr
```
3. Install the following packages:
```
brew install python3
pip3 install pyusb
brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
```
4. Place your keyboard into reset.
5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+8 -8
View File
@@ -52,14 +52,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define BACKLIGHT_BREATHING // #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3 // #define BACKLIGHT_LEVELS 3
// #define RGB_DI_PIN E2 #define RGB_DI_PIN D3
// #ifdef RGB_DI_PIN #ifdef RGB_DI_PIN
// #define RGBLIGHT_ANIMATIONS #define RGBLIGHT_ANIMATIONS
// #define RGBLED_NUM 16 #define RGBLED_NUM 2
// #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_HUE_STEP 8
// #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_SAT_STEP 8
// #define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_VAL_STEP 8
// #endif #endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5 #define DEBOUNCE 5
+98 -8
View File
@@ -15,20 +15,110 @@
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { enum layer_number {
[0] = LAYOUT( _BASE = 0,
LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_UP, KC_DEL, KC_BSPC, \ _LOWER,
KC_LCTRL, KC_LSFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT \ _RAISE,
), _ADJUST
}; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { enum custom_keycodes {
return true; BASE = SAFE_RANGE,
LOWER,
RAISE,
ADJUST,
RGBRST
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base
* ,-----------------------------------------.
* | Cut | Copy |Paste | Up |Delete| Bksp |
* | | | | | |Raise |
* |------+------+------+------+------+------|
* | Ctrl |Shift | Left | Down |Right |Enter |
* | | | | | |Lower |
* `-----------------------------------------'
*/
[_BASE] = LAYOUT(
LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_UP, KC_DEL, LT(_RAISE,KC_BSPC),
KC_LCTL, KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, LT(_LOWER,KC_ENT)
),
/* Lower
* ,-----------------------------------------.
* | | | | Page | | |
* | | | | Up | | |
* |------+------+------+------+------+------|
* | | | Home | Page | End | |
* | | | | Down | | |
* `-----------------------------------------'
*/
[_LOWER] = LAYOUT(
_______, _______, _______, KC_PGUP, _______, _______,
_______, _______, KC_HOME, KC_PGDN, KC_END, _______
),
/* Raise
* ,-----------------------------------------.
* | | | | | | |
* | | | | | | |
* |------+------+------+------+------+------|
* | | | | | | |
* | | | | | | |
* `-----------------------------------------'
*/
[_RAISE] = LAYOUT(
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
/* Adjust
* ,-----------------------------------------.
* | RGB | RGB | RGB | RGB | RGB | |
* |Toggle|Mode+ | Hue+ | Sat+ | Val+ | |
* |------+------+------+------+------+------|
* | RGB | RGB | RGB | RGB | RGB | |
* |Reset |Mode- | Hue- | Sat- | Val- | |
* `-----------------------------------------'
*/
[_ADJUST] = LAYOUT(
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______,
RGBRST, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______
)
};
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
} }
void matrix_init_user(void) { int RGB_current_mode;
void matrix_init_user(void) {
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case RGBRST:
#ifdef RGBLIGHT_ENABLE
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
RGB_current_mode = rgblight_config.mode;
}
#endif
break;
}
return true;
} }
void matrix_scan_user(void) { void matrix_scan_user(void) {
+41 -4
View File
@@ -1,8 +1,45 @@
# The default keymap for Dozen0 # The default keymap for Dozen0
## Base
``` ```
,-------------------------------------------------. ,-----------------------------------------.
| Ctrl+X | Ctrl+C | Ctrl+V | Up | Delete | Bksp | | Cut | Copy |Paste | Up |Delete| Bksp |
| Ctrl | Shift | Left | Down | Right | Enter | | | | | | |Raise |
`--------------------------------------------------' |------+------+------+------+------+------|
| Ctrl |Shift | Left | Down |Right |Enter |
| | | | | |Lower |
`-----------------------------------------'
```
## Lower
```
,-----------------------------------------.
| | | | Page | | |
| | | | Up | | |
|------+------+------+------+------+------|
| | | Home | Page | End | |
| | | | Down | | |
`-----------------------------------------'
```
## Raise
```
,-----------------------------------------.
| | | | | | |
| | | | | | |
|------+------+------+------+------+------|
| | | | | | |
| | | | | | |
`-----------------------------------------'
```
## Adjust
```
,-----------------------------------------.
| RGB | RGB | RGB | RGB | RGB | |
|Toggle|Mode+ | Hue+ | Sat+ | Val+ | |
|------+------+------+------+------+------|
| RGB | RGB | RGB | RGB | RGB | |
|Reset |Mode- | Hue- | Sat- | Val- | |
`-----------------------------------------'
``` ```
+2 -2
View File
@@ -18,8 +18,8 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( [0] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 \ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
), ),
}; };
+10 -10
View File
@@ -9,25 +9,25 @@ MCU = atmega32u4
# QMK DFU qmk-dfu # QMK DFU qmk-dfu
# ATmega32A bootloadHID # ATmega32A bootloadHID
# ATmega328P USBasp # ATmega328P USBasp
BOOTLOADER = atmel-dfu BOOTLOADER = caterina
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) HD44780_ENABLE = no # Enable support for HD44780 based LCDs
@@ -0,0 +1,67 @@
#include QMK_KEYBOARD_H
/* DZ60 layout using following options (from layouts diagram on KBDfans):
* - plate B (2.25u lshift)
* - opt 4 (1.75, 1, 1 on rshift)
* - opt 10 (2.75, 1.25, 2.25 on space, 5x1u bottom right keys)
* http://www.keyboard-layout-editor.com/#/gists/225f0f4dcf6671405f744fabe314627c
*/
#define LAYOUT_b_4_10( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
}
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: basic qwerty */
LAYOUT_b_4_10(
// |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||------2.0-------|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
// |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------|
//
// |----1.5-----||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|----1.5-----|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
// |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------|
//
// |----1.75------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------2.25--------||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
// |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------||
//
// |------2.25--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----1.75------|--------|--------||
KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH), KC_UP, KC_HYPR,
// |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------||
//
// |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------|
KC_MEH, KC_LALT, KC_LGUI, KC_SPC, TT(1), MO(1), TG(1), TT(2), KC_LEFT, KC_DOWN, KC_RGHT
// |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------|
),
/* Layer 1: primary fn layer */
LAYOUT_b_4_10(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
KC_TAB, KC_NO, KC_HOME, KC_UP, KC_END, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, KC_NO, KC_NO, KC_NO,
KC_CAPS, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_NO, KC_ENT,
KC_LSFT, KC_MPRV, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_LOCK, KC_PGUP, KC_INS,
KC_MEH, KC_LALT, KC_LGUI, KC_MEDIA_PLAY_PAUSE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
),
/* Layer 2: mouse navigation */
/* Layer 3: numpad */
/* Layer 4: RGB lighting controls and keyboard config, reset */
LAYOUT_b_4_10(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(5),
KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MODE_PLAIN, RGB_MODE_FORWARD, KC_RSHIFT,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_VAI, RGB_HUI,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_SAD, RGB_VAD, RGB_SAI
),
};
@@ -0,0 +1,7 @@
# Build Options
# override the options specified in dz60/rules.mk
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
KEY_LOCK_ENABLE = yes # Enables use of KC_LOCK
@@ -0,0 +1,24 @@
#pragma once
// number of taps for TT Tap-Toggle keys to toggle
#ifdef TAPPING_TOGGLE
#undef TAPPING_TOGGLE
#endif
#define TAPPING_TOGGLE 2
// time in ms that counts as a "tap" for various features
#ifdef TAPPING_TERM
#undef TAPPING_TERM
#endif
#define TAPPING_TERM 100
// https://docs.qmk.fm/features/mouse-keys#configuring-the-behavior-of-mousekeys
#define MOUSEKEY_DELAY 0
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_MAX_SPEED 10
#define MOUSEKEY_TIME_TO_MAX 15
#define MOUSEKEY_WHEEL_MAX_SPEED 1
#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
// flags from user/twschum/
#define TWSCHUM_TAPPING_CTRL_PREFIX 1
@@ -0,0 +1,123 @@
#include QMK_KEYBOARD_H
#include "twschum.h"
/* DZ60 layout using following options (from layouts diagram on KBDfans):
* - plate B (2.25u lshift)
* - opt 4 (1.75, 1, 1 on rshift)
* - opt 10 (2.75, 1.25, 2.25 on space, 5x1u bottom right keys)
* http://www.keyboard-layout-editor.com/#/gists/225f0f4dcf6671405f744fabe314627c
*/
#define LAYOUT_b_4_10( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, XXXXXXX, K014 }, \
{ K100, XXXXXXX, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
{ K200, XXXXXXX, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, XXXXXXX }, \
{ K300, XXXXXXX, K302, K303, K304, K305, K306, K307, K308, K309, K310, XXXXXXX, K312, K313, K314 }, \
{ K400, K401, XXXXXXX, K403, K404, XXXXXXX, K406, XXXXXXX, K408, XXXXXXX, K410, K411, K412, K413, K414 } \
}
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* base 60% qwerty */
LAYOUT_b_4_10(
// |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
// |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------|
//
// |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
// |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------|
//
// |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
// |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------||
//
// |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------||
KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, /*SFT_T*/KC_SLSH, KC_UP, VIM_START,
// |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------||
//
// |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------|
MO(_Fn), KC_LALT, KC_LGUI, KC_SPC, TT(_Nav), MO(_Fn), TG(_Num), TT(_Cfg), KC_LEFT, KC_DOWN, KC_RGHT
// |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------|
),
/* vim mode */
LAYOUT_b_4_10(
VIM_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, VIM_W, VIM_E, KC_R, _______, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, _______, _______, _______,
_______, VIM_A, VIM_S, VIM_D, _______, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, _______, _______, _______,
VIM_SHIFT, _______, VIM_X, VIM_C, VIM_V, VIM_B, _______, _______, VIM_COMMA, VIM_PERIOD, _______, _______, VIM_ESC,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* primary fn layer */
LAYOUT_b_4_10(
// |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
// |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------|
//
// |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----|
KC_TAB, CODE_PASTE, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, LESS_PD, XXXXXXX, XXXXXXX, CODE_PASTE,
// |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------|
//
// |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------||
KC_CAPS, SALT_CMD, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, KC_ENT,
// |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------||
//
// |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------||
KC_LSHIFT, KC_MPRV, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, XXXXXXX, XXXXXXX, KC_LOCK, KC_PGUP, KC_INS,
// |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------||
//
// |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------|
KC_MEH, KC_LALT, KC_LGUI, KC_MEDIA_PLAY_PAUSE, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
// |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------|
),
/* mouse navigation */
LAYOUT_b_4_10(
TO(_Base), KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, XXXXXXX, XXXXXXX, KC_SLEP, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
KC_LCTL, KC_MS_BTN3, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, XXXXXXX, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX,
KC_LSHIFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1, _______, _______, _______, _______, _______, _______, _______
),
/* numpad layer */
LAYOUT_b_4_10(
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_PLUS, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, KC_KP_ASTERISK, XXXXXXX, KC_ENT,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_DOT, KC_KP_ENTER, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_0, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX
),
/* RGB lighting controls and keyboard config, reset */
LAYOUT_b_4_10(
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_L0_RGB, XXXXXXX, XXXXXXX, TO(_None),
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD,
EN_CTRL_SHORTCUTS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_LAYER_RGB, RGB_MODE_PLAIN, RGB_MODE_FORWARD, KC_RSHIFT,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, XXXXXXX, XXXXXXX, RGB_TOG, RGB_VAI, RGB_HUI,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_VAD, RGB_SAI
),
/* soft "off" state where none of the keystroke register */
LAYOUT_b_4_10(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TO(_Base),
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
),
};
uint8_t vim_cmd_layer(void) {
return _Vim;
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,15 @@
# Build Options
# override the options specified in dz60/rules.mk
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
KEY_LOCK_ENABLE = yes # Enables use of KC_LOCK
# Enables including users/twschum/twschum.h
USER_NAME := twschum
+3 -3
View File
@@ -21,8 +21,8 @@ CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality BACKLIGHT_ENABLE = yes # Enable per-key backlight LEDs
AUDIO_ENABLE = no AUDIO_ENABLE = no # There is no speaker on this PCB
RGBLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes # Enable the RGB underglow LEDs
LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_abnt2 LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_abnt2
+1 -38
View File
@@ -1,39 +1,2 @@
#pragma once #pragma once
#include "config_common.h"
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x1219
#define DEVICE_VER 0x0001
#define MANUFACTURER DZTECH
#define PRODUCT DZ60RGB
#define DESCRIPTION DZ60 ARM RGB keyboard
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
#define MATRIX_ROW_PINS { B1, B10, B11, B14, B12 }
#define MATRIX_COL_PINS {A6, A7, B0, B13, B15, A8, A15, B3, B4, B5, B8, B9, C13, C14 }
/* #define UNUSED_PINS {A0,A1,A2, A3,A4,A9,A10,C15,A13,A14,B2}*/
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 3
#ifdef RGB_MATRIX_ENABLE
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define DISABLE_RGB_MATRIX_SPLASH
#define DISABLE_RGB_MATRIX_MULTISPLASH
#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 0b1010000
#define DRIVER_ADDR_2 0b1010000 // this is here for compliancy reasons.
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 63
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
#endif
+36
View File
@@ -0,0 +1,36 @@
#pragma once
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x1219
#define DEVICE_VER 0x0001
#define MANUFACTURER DZTECH
#define PRODUCT DZ60RGB
#define DESCRIPTION DZ60 ARM RGB keyboard
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
#define MATRIX_ROW_PINS { B1, B10, B11, B14, B12 }
#define MATRIX_COL_PINS {A6, A7, B0, B13, B15, A8, A15, B3, B4, B5, B8, B9, C13, C14 }
/* #define UNUSED_PINS {A0,A1,A2, A3,A4,A9,A10,C15,A13,A14,B2}*/
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 3
#ifdef RGB_MATRIX_ENABLE
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define DISABLE_RGB_MATRIX_SPLASH
#define DISABLE_RGB_MATRIX_MULTISPLASH
#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 0b1010000
#define DRIVER_ADDR_2 0b1010000 // this is here for compliancy reasons.
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 63
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
#endif
@@ -2,13 +2,13 @@
MCU = STM32F303 MCU = STM32F303
BACKLIGHT_ENABLE = no BACKLIGHT_ENABLE = no
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend #SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover NKRO_ENABLE = yes # USB Nkey Rollover
AUDIO_ENABLE = no AUDIO_ENABLE = no
RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
+44
View File
@@ -0,0 +1,44 @@
#pragma once
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x1219
#define DEVICE_VER 0x0002
#define MANUFACTURER DZTECH
#define PRODUCT DZ60RGB
#define DESCRIPTION DZ60 AVR RGB keyboard
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
#define MATRIX_ROW_PINS {F5, F4, F1, B3, B2 }
#define MATRIX_COL_PINS {C7, F7, F6, F0, B0, B1, B4, D7, D6, D4, D5, D3, D2, B7 }
#define UNUSED_PINS
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 3
#ifdef RGB_MATRIX_ENABLE
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#define DISABLE_RGB_MATRIX_BAND_SAT
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
#define DISABLE_RGB_MATRIX_SPLASH
#define DISABLE_RGB_MATRIX_MULTISPLASH
#define DISABLE_RGB_MATRIX_SOLID_SPLASH
#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
#define DRIVER_ADDR_1 0b1010000
#define DRIVER_ADDR_2 0b1010000 // this is here for compliancy reasons.
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 63
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
#endif
Loaded 100 of 531 files, more files were not shown because too many files have changed in this diff. Show more