diff options
114 files changed, 5843 insertions, 378 deletions
diff --git a/.github/workflows/info.yml b/.github/workflows/info.yml index 7551c127e..bb3a50847 100644 --- a/.github/workflows/info.yml +++ b/.github/workflows/info.yml | |||
| @@ -16,7 +16,7 @@ jobs: | |||
| 16 | with: | 16 | with: |
| 17 | fetch-depth: 0 | 17 | fetch-depth: 0 |
| 18 | 18 | ||
| 19 | - uses: trilom/file-changes-action@v1.2.3 | 19 | - uses: trilom/file-changes-action@v1.2.4 |
| 20 | id: file_changes | 20 | id: file_changes |
| 21 | with: | 21 | with: |
| 22 | output: '\n' | 22 | output: '\n' |
diff --git a/.vscode/settings.json b/.vscode/settings.json index 9aa546a78..775b3df17 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json | |||
| @@ -16,7 +16,8 @@ | |||
| 16 | "*.hpp": "cpp", | 16 | "*.hpp": "cpp", |
| 17 | "xstddef": "c", | 17 | "xstddef": "c", |
| 18 | "type_traits": "c", | 18 | "type_traits": "c", |
| 19 | "utility": "c" | 19 | "utility": "c", |
| 20 | "ranges": "c" | ||
| 20 | }, | 21 | }, |
| 21 | "[markdown]": { | 22 | "[markdown]": { |
| 22 | "editor.trimAutoWhitespace": false, | 23 | "editor.trimAutoWhitespace": false, |
diff --git a/common_features.mk b/common_features.mk index 1f110d081..ed6908f4b 100644 --- a/common_features.mk +++ b/common_features.mk | |||
| @@ -397,9 +397,20 @@ ifneq ($(strip $(CUSTOM_MATRIX)), yes) | |||
| 397 | endif | 397 | endif |
| 398 | endif | 398 | endif |
| 399 | 399 | ||
| 400 | # Support for translating old names to new names: | ||
| 401 | ifeq ($(strip $(DEBOUNCE_TYPE)),sym_g) | ||
| 402 | DEBOUNCE_TYPE:=sym_defer_g | ||
| 403 | else ifeq ($(strip $(DEBOUNCE_TYPE)),eager_pk) | ||
| 404 | DEBOUNCE_TYPE:=sym_eager_pk | ||
| 405 | else ifeq ($(strip $(DEBOUNCE_TYPE)),sym_pk) | ||
| 406 | DEBOUNCE_TYPE:=sym_defer_pk | ||
| 407 | else ifeq ($(strip $(DEBOUNCE_TYPE)),eager_pr) | ||
| 408 | DEBOUNCE_TYPE:=sym_eager_pr | ||
| 409 | endif | ||
| 410 | |||
| 400 | DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce | 411 | DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce |
| 401 | # Debounce Modules. Set DEBOUNCE_TYPE=custom if including one manually. | 412 | # Debounce Modules. Set DEBOUNCE_TYPE=custom if including one manually. |
| 402 | DEBOUNCE_TYPE?= sym_g | 413 | DEBOUNCE_TYPE?= sym_defer_g |
| 403 | ifneq ($(strip $(DEBOUNCE_TYPE)), custom) | 414 | ifneq ($(strip $(DEBOUNCE_TYPE)), custom) |
| 404 | QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c | 415 | QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c |
| 405 | endif | 416 | endif |
diff --git a/docs/feature_debounce_type.md b/docs/feature_debounce_type.md index 65b4ea1e5..83ebafe60 100644 --- a/docs/feature_debounce_type.md +++ b/docs/feature_debounce_type.md | |||
| @@ -1,43 +1,151 @@ | |||
| 1 | # Debounce algorithm | 1 | # Contact bounce / contact chatter |
| 2 | 2 | ||
| 3 | QMK supports multiple debounce algorithms through its debounce API. | 3 | Mechanical switches often don't have a clean single transition between pressed and unpressed states. |
| 4 | |||
| 5 | In an ideal world, when you press a switch, you would expect the digital pin to see something like this: | ||
| 6 | (X axis showing time | ||
| 7 | ``` | ||
| 8 | voltage +---------------------- | ||
| 9 | ^ | | ||
| 10 | | | | ||
| 11 | | ------------------+ | ||
| 12 | ----> time | ||
| 13 | ``` | ||
| 14 | |||
| 15 | However in the real world you will actually see contact bounce, which will look like multiple 1->0 and 0->1 transitions, | ||
| 16 | until the value finally settles. | ||
| 17 | ``` | ||
| 18 | +-+ +--+ +------------- | ||
| 19 | | | | | | | ||
| 20 | | | | | | | ||
| 21 | +-----------------+ +-+ +-+ | ||
| 22 | ``` | ||
| 23 | The time it takes for the switch to settle might vary with switch type, age, and even pressing technique. | ||
| 24 | |||
| 25 | If the device chooses not to mitigate contact bounce, then often actions that happen when the switch is pressed are repeated | ||
| 26 | multiple times. | ||
| 27 | |||
| 28 | There are many ways to handle contact bounce ("Debouncing"). Some include employing additional hardware, for example an RC filter, | ||
| 29 | while there are various ways to do debouncing in software too, often called debounce algorithms. This page discusses software | ||
| 30 | debouncing methods available in QMK. | ||
| 31 | |||
| 32 | While technically not considered contact bounce/contact chatter, some switch technologies are susceptible to noise, meaning, | ||
| 33 | while the key is not changing state, sometimes short random 0->1 or 1->0 transitions might be read by the digital circuit, for example: | ||
| 34 | ``` | ||
| 35 | +-+ | ||
| 36 | | | | ||
| 37 | | | | ||
| 38 | +-----------------+ +-------------------- | ||
| 39 | ``` | ||
| 40 | |||
| 41 | Many debounce methods (but not all) will also make the device resistant to noise. If you are working with a technology that is | ||
| 42 | susceptible to noise, you must choose a debounce method that will also mitigate noise for you. | ||
| 43 | |||
| 44 | ## Types of debounce algorithms | ||
| 4 | 45 | ||
| 5 | The logic for which debounce method called is below. It checks various defines that you have set in rules.mk | 46 | 1) Unit of time: Timestamp (milliseconds) vs Cycles (scans) |
| 47 | * Debounce algorithms often have a 'debounce time' parameter, that specifies the maximum settling time of the switch contacts. | ||
| 48 | This time might be measured in various units: | ||
| 49 | * Cycles-based debouncing waits n cycles (scans), decreasing count by one each matrix_scan | ||
| 50 | * Timestamp-based debouncing stores the millisecond timestamp a change occurred, and does substraction to figure out time elapsed. | ||
| 51 | * Timestamp-based debouncing is usually superior, especially in the case of noise-resistant devices because settling times of physical | ||
| 52 | switches is specified in units of time, and should not depend on the matrix scan-rate of the keyboard. | ||
| 53 | * Cycles-based debouncing is sometimes considered inferior, because the settling time that it is able to compensate for depends on the | ||
| 54 | performance of the matrix scanning code. If you use cycles-based debouncing, and you significantly improve the performance of your scanning | ||
| 55 | code, you might end up with less effective debouncing. A situation in which cycles-based debouncing might be preferable is when | ||
| 56 | noise is present, and the scanning algorithm is slow, or variable speed. Even if your debounce algorithm is fundamentally noise-resistant, | ||
| 57 | if the scanning is slow, and you are using a timestamp-based algorithm, you might end up making a debouncing decision based on only two | ||
| 58 | sampled values, which will limit the noise-resistance of the algorithm. | ||
| 59 | * Currently all built-in debounce algorithms support timestamp-based debouncing only. In the future we might | ||
| 60 | implement cycles-based debouncing, and it will be selectable via a ```config.h``` macro. | ||
| 61 | |||
| 62 | 2) Symmetric vs Asymmetric | ||
| 63 | * Symmetric - apply the same debouncing algorithm, to both key-up and key-down events. | ||
| 64 | * Recommended naming convention: ```sym_*``` | ||
| 65 | * Asymmetric - apply different debouncing algorithms to key-down and key-up events. E.g. Eager key-down, Defer key-up. | ||
| 66 | * Recommended naming convention: ```asym_*``` followed by details of the type of algorithm in use, in order, for key-down and then key-up | ||
| 67 | |||
| 68 | 3) Eager vs Defer | ||
| 69 | * Eager - any key change is reported immediately. All further inputs for DEBOUNCE ms are ignored. | ||
| 70 | * Eager algorithms are not noise-resistant. | ||
| 71 | * Recommended naming conventions: | ||
| 72 | * ```sym_eager_*``` | ||
| 73 | * ```asym_eager_*_*```: key-down is using eager algorithm | ||
| 74 | * ```asym_*_eager_*```: key-up is using eager algorithm | ||
| 75 | * Defer - wait for no changes for DEBOUNCE ms before reporting change. | ||
| 76 | * Defer algorithms are noise-resistant | ||
| 77 | * Recommended naming conventions: | ||
| 78 | * ```sym_defer_*``` | ||
| 79 | * ```asym_defer_*_*```: key-down is using eager algorithm | ||
| 80 | * ```asym_*_defer_*```: key-up is using eager algorithm | ||
| 81 | |||
| 82 | 4) Global vs Per-Key vs Per-Row | ||
| 83 | * Global - one timer for all keys. Any key change state affects global timer | ||
| 84 | * Recommended naming convention: ```*_g``` | ||
| 85 | * Per-key - one timer per key | ||
| 86 | * Recommended naming convention: ```*_pk``` | ||
| 87 | * Per-row - one timer per row | ||
| 88 | * Recommended naming convention: ```*_pr``` | ||
| 89 | * Per-key and per-row algorithms consume more resources (in terms of performance, | ||
| 90 | and ram usage), but fast typists might prefer them over global. | ||
| 91 | |||
| 92 | ## Debounce algorithms supported by QMK | ||
| 93 | |||
| 94 | QMK supports multiple debounce algorithms through its debounce API. | ||
| 95 | The logic for which debounce method called is below. It checks various defines that you have set in ```rules.mk``` | ||
| 6 | 96 | ||
| 7 | ``` | 97 | ``` |
| 8 | DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce | 98 | DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce |
| 9 | DEBOUNCE_TYPE?= sym_g | 99 | DEBOUNCE_TYPE?= sym_defer_g |
| 10 | ifneq ($(strip $(DEBOUNCE_TYPE)), custom) | 100 | ifneq ($(strip $(DEBOUNCE_TYPE)), custom) |
| 11 | QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c | 101 | QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c |
| 12 | endif | 102 | endif |
| 13 | ``` | 103 | ``` |
| 14 | 104 | ||
| 15 | # Debounce selection | 105 | ### Debounce selection |
| 16 | 106 | ||
| 17 | | DEBOUNCE_TYPE | Description | What else is needed | | 107 | | DEBOUNCE_TYPE | Description | What else is needed | |
| 18 | | ------------- | --------------------------------------------------- | ----------------------------- | | 108 | | ------------- | --------------------------------------------------- | ----------------------------- | |
| 19 | | Not defined | Use the default algorithm, currently sym_g | Nothing | | 109 | | Not defined | Use the default algorithm, currently sym_defer_g | Nothing | |
| 20 | | custom | Use your own debounce code | ```SRC += debounce.c``` add your own debounce.c and implement necessary functions | | 110 | | custom | Use your own debounce code | ```SRC += debounce.c``` add your own debounce.c and implement necessary functions | |
| 21 | | anything_else | Use another algorithm from quantum/debounce/* | Nothing | | 111 | | Anything Else | Use another algorithm from quantum/debounce/* | Nothing | |
| 22 | 112 | ||
| 23 | **Regarding split keyboards**: | 113 | **Regarding split keyboards**: |
| 24 | The debounce code is compatible with split keyboards. | 114 | The debounce code is compatible with split keyboards. |
| 25 | 115 | ||
| 26 | # Use your own debouncing code | 116 | ### Selecting an included debouncing method |
| 27 | * Set ```DEBOUNCE_TYPE = custom```. | 117 | Keyboards may select one of the already implemented debounce methods, by adding to ```rules.mk``` the following line: |
| 28 | * Add ```SRC += debounce.c``` | 118 | ``` |
| 119 | DEBOUNCE_TYPE = <name of algorithm> | ||
| 120 | ``` | ||
| 121 | Where name of algorithm is one of: | ||
| 122 | * ```sym_defer_g``` - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occurred, all input changes are pushed. | ||
| 123 | * This is the current default algorithm. This is the highest performance algorithm with lowest memory usage, and it's also noise-resistant. | ||
| 124 | * ```sym_eager_pr``` - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row. | ||
| 125 | For use in keyboards where refreshing ```NUM_KEYS``` 8-bit counters is computationally expensive / low scan rate, and fingers usually only hit one row at a time. This could be | ||
| 126 | appropriate for the ErgoDox models; the matrix is rotated 90°, and hence its "rows" are really columns, and each finger only hits a single "row" at a time in normal use. | ||
| 127 | * ```sym_eager_pk``` - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key | ||
| 128 | * ```sym_defer_pk``` - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that key, the key status change is pushed. | ||
| 129 | |||
| 130 | ### A couple algorithms that could be implemented in the future: | ||
| 131 | * ```sym_defer_pr``` | ||
| 132 | * ```sym_eager_g``` | ||
| 133 | * ```asym_eager_defer_pk``` | ||
| 134 | |||
| 135 | ### Use your own debouncing code | ||
| 136 | You have the option to implement you own debouncing algorithm. To do this: | ||
| 137 | * Set ```DEBOUNCE_TYPE = custom``` in ```rules.mk```. | ||
| 138 | * Add ```SRC += debounce.c``` in ```rules.mk``` | ||
| 29 | * Add your own ```debounce.c```. Look at current implementations in ```quantum/debounce``` for examples. | 139 | * Add your own ```debounce.c```. Look at current implementations in ```quantum/debounce``` for examples. |
| 30 | * Debouncing occurs after every raw matrix scan. | 140 | * Debouncing occurs after every raw matrix scan. |
| 31 | * Use num_rows rather than MATRIX_ROWS, so that split keyboards are supported correctly. | 141 | * Use num_rows rather than MATRIX_ROWS, so that split keyboards are supported correctly. |
| 142 | * If the algorithm might be applicable to other keyboards, please consider adding it to ```quantum/debounce``` | ||
| 32 | 143 | ||
| 33 | # Changing between included debouncing methods | 144 | ### Old names |
| 34 | You can either use your own code, by including your own debounce.c, or switch to another included one. | 145 | The following old names for existing algorithms will continue to be supported, however it is recommended to use the new names instead. |
| 35 | Included debounce methods are: | ||
| 36 | * eager_pr - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row. | ||
| 37 | For use in keyboards where refreshing ```NUM_KEYS``` 8-bit counters is computationally expensive / low scan rate, and fingers usually only hit one row at a time. This could be | ||
| 38 | appropriate for the ErgoDox models; the matrix is rotated 90°, and hence its "rows" are really columns, and each finger only hits a single "row" at a time in normal use. | ||
| 39 | * eager_pk - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key | ||
| 40 | * sym_g - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occured, all input changes are pushed. | ||
| 41 | * sym_pk - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occured on that key, the key status change is pushed. | ||
| 42 | 146 | ||
| 147 | * sym_g - old name for sym_defer_g | ||
| 148 | * eager_pk - old name for sym_eager_pk | ||
| 149 | * sym_pk - old name for sym_defer_pk | ||
| 150 | * eager_pr - old name for sym_eager_pr | ||
| 43 | 151 | ||
diff --git a/docs/ja/api_development_environment.md b/docs/ja/api_development_environment.md new file mode 100644 index 000000000..8dce1ba2f --- /dev/null +++ b/docs/ja/api_development_environment.md | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | # 開発環境ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ— | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.50:docs/api_development_environment.md | ||
| 5 | git diff 0.9.50 HEAD -- docs/api_development_environment.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | 開発環境をセットアップã™ã‚‹ã«ã¯ã€[qmk_web_stack](https://github.com/qmk/qmk_web_stack) ã«è¡Œã£ã¦ãã ã•ã„。 | ||
diff --git a/docs/ja/api_development_overview.md b/docs/ja/api_development_overview.md new file mode 100644 index 000000000..0612507b4 --- /dev/null +++ b/docs/ja/api_development_overview.md | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | # QMK コンパイラ開発ガイド | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.50:docs/api_development_overview.md | ||
| 5 | git diff 0.9.50 HEAD -- docs/api_development_overview.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€é–‹ç™ºè€…ã« QMK コンパイラを紹介ã—よã†ã¨æ€ã„ã¾ã™ã€‚コードをèªã¾ãªã‘れã°ãªã‚‰ãªã„よã†ãªæ ¸å¿ƒã¨ãªã‚‹è©³ç´°ã«ç«‹ã¡å…¥ã£ã¦èª¿ã¹ã‚‹ã“ã¨ã¯ã—ã¾ã›ã‚“。ã“ã“ã§å¾—られるもã®ã¯ã€ã‚³ãƒ¼ãƒ‰ã‚’èªã‚“ã§ç†è§£ã‚’æ·±ã‚ã‚‹ãŸã‚ã®ãƒ•レームワークã§ã™ã€‚ | ||
| 9 | |||
| 10 | # æ¦‚è¦ | ||
| 11 | |||
| 12 | QMK Compile API ã¯ã€ã„ãã¤ã‹ã®å¯å‹•部分ã‹ã‚‰ã§ãã¦ã„ã¾ã™: | ||
| 13 | |||
| 14 |  | ||
| 15 | |||
| 16 | API クライアント㯠API ã‚µãƒ¼ãƒ“ã‚¹ã¨æŽ’ä»–çš„ã«ã‚„りã¨ã‚Šã‚’ã—ã¾ã™ã€‚ã“ã“ã§ã‚¸ãƒ§ãƒ–をサブミットã—ã€çŠ¶æ…‹ã‚’èª¿ã¹ã€çµæžœã‚’ダウンãƒãƒ¼ãƒ‰ã—ã¾ã™ã€‚API サービスã¯ã‚³ãƒ³ãƒ‘イルジョブを [Redis Queue](https://python-rq.org) ã«æŒ¿å…¥ã—ã€ãれらã®ã‚¸ãƒ§ãƒ–ã®çµæžœã«ã¤ã„㦠RQ 㨠S3 ã®ä¸¡æ–¹ã‚’調ã¹ã¾ã™ã€‚ | ||
| 17 | |||
| 18 | ワーカー㯠RQ ã‹ã‚‰æ–°ã—ã„コンパイルジョブをå–り出ã—ã€ã‚½ãƒ¼ã‚¹ã¨ãƒã‚¤ãƒŠãƒªã‚’ S3 互æ›ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚¨ãƒ³ã‚¸ãƒ³ã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã—ã¾ã™ã€‚ | ||
| 19 | |||
| 20 | # ワーカー | ||
| 21 | |||
| 22 | QMK コンパイラワーカーã¯å®Ÿéš›ã®ãƒ“ルド作æ¥ã«è²¬ä»»ã‚’æŒã¡ã¾ã™ã€‚ワーカー㯠RQ ã‹ã‚‰ã‚¸ãƒ§ãƒ–ã‚’å–り出ã—ã€ã‚¸ãƒ§ãƒ–を完了ã™ã‚‹ãŸã‚ã«ã„ãã¤ã‹ã®äº‹ã‚’行ã„ã¾ã™: | ||
| 23 | |||
| 24 | * æ–°ã—ã„ qmk_firmware ã®ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã‚’作æˆã™ã‚‹ | ||
| 25 | * 指定ã•れãŸãƒ¬ã‚¤ãƒ¤ãƒ¼ã¨ã‚ーボードメタデータを使ã£ã¦ `keymap.c` をビルドã™ã‚‹ | ||
| 26 | * ファームウェアをビルドã™ã‚‹ | ||
| 27 | * ソースã®ã‚³ãƒ”ーを zip å½¢å¼ã§åœ§ç¸®ã™ã‚‹ | ||
| 28 | * ファームウェアã€ã‚½ãƒ¼ã‚¹ã® zip ファイルã€ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ãƒ•ァイルを S3 ã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã™ã‚‹ | ||
| 29 | * ジョブã®çŠ¶æ…‹ã‚’ RQ ã«é€ä¿¡ã™ã‚‹ | ||
| 30 | |||
| 31 | # API サービス | ||
| 32 | |||
| 33 | API ã‚µãƒ¼ãƒ“ã‚¹ã¯æ¯”較的å˜ç´”㪠Flask アプリケーションã§ã™ã€‚ç†è§£ã—ã¦ãŠãã¹ãã“ã¨ãŒå¹¾ã¤ã‹ã‚りã¾ã™ã€‚ | ||
| 34 | |||
| 35 | ## @app.route('/v1/compile', methods=['POST']) | ||
| 36 | |||
| 37 | ã“れ㯠API ã®ä¸»ãªã‚¨ãƒ³ãƒˆãƒªãƒ¼ãƒã‚¤ãƒ³ãƒˆã§ã™ã€‚クライアントã¨ã®ã‚„りã¨ã‚Šã¯ã“ã“ã‹ã‚‰é–‹å§‹ã•れã¾ã™ã€‚クライアントã¯ã‚ーボードを表㙠JSON ドã‚ュメントを POST ã—ã€API ã¯ã‚³ãƒ³ãƒ‘イルジョブをサブミットã™ã‚‹å‰ã«ã„ãらã‹ã®(ã¨ã¦ã‚‚)åŸºæœ¬çš„ãªæ¤œè¨¼ã‚’行ã„ã¾ã™ã€‚ | ||
| 38 | |||
| 39 | ## @app.route('/v1/compile/<string:job_id>', methods=['GET']) | ||
| 40 | |||
| 41 | ã“ã‚Œã¯æœ€ã‚‚よã呼ã°ã‚Œã‚‹ã‚¨ãƒ³ãƒ‰ãƒã‚¤ãƒ³ãƒˆã§ã™ã€‚ジョブã®è©³ç´°ãŒ redis ã‹ã‚‰åˆ©ç”¨å¯èƒ½ã§ã‚れã°ãれをå–り出ã—ã€ãã†ã§ãªã‘れ㰠S3 ã‹ã‚‰ã‚ャッシュã•れãŸã‚¸ãƒ§ãƒ–ã®è©³ç´°ã‚’å–り出ã—ã¾ã™ã€‚ | ||
| 42 | |||
| 43 | ## @app.route('/v1/compile/<string:job_id>/download', methods=['GET']) | ||
| 44 | |||
| 45 | ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã‚Šãƒ¦ãƒ¼ã‚¶ã¯ã‚³ãƒ³ãƒ‘イルã•れãŸãƒ•ァームウェアファイルをダウンãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
| 46 | |||
| 47 | ## @app.route('/v1/compile/<string:job_id>/source', methods=['GET']) | ||
| 48 | |||
| 49 | ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã‚Šãƒ¦ãƒ¼ã‚¶ã¯ãƒ•ァームウェアã®ã‚½ãƒ¼ã‚¹ã‚’ダウンãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
diff --git a/docs/ja/api_docs.md b/docs/ja/api_docs.md new file mode 100644 index 000000000..b483c045e --- /dev/null +++ b/docs/ja/api_docs.md | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | # QMK API | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.50:docs/api_docs.md | ||
| 5 | git diff 0.9.50 HEAD -- docs/api_docs.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | ã“ã®ãƒšãƒ¼ã‚¸ã¯ QMK API ã®ä½¿ã„方を説明ã—ã¾ã™ã€‚ã‚‚ã—ã‚ãªãŸãŒã‚¢ãƒ—リケーション開発者ã§ã‚れã°ã€å…¨ã¦ã® [QMK](https://qmk.fm) ã‚ーボードã®ãƒ•ァームウェアをコンパイルã™ã‚‹ãŸã‚ã«ã€ã“ã® API を使ã†ã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
| 9 | |||
| 10 | ## æ¦‚è¦ | ||
| 11 | |||
| 12 | ã“ã®ã‚µãƒ¼ãƒ“スã¯ã€ã‚«ã‚¹ã‚¿ãƒ ã‚ーマップをコンパイルã™ã‚‹ãŸã‚ã®éžåŒæœŸ API ã§ã™ã€‚API 㫠何らã‹ã® JSON ã‚’ POST ã—ã€å®šæœŸçš„ã«çŠ¶æ…‹ã‚’ãƒã‚§ãƒƒã‚¯ã—ã€ãƒ•ァームウェアã®ã‚³ãƒ³ãƒ‘イルãŒå®Œäº†ã—ã¦ã„れã°ã€çµæžœã®ãƒ•ァームウェアã¨(ã‚‚ã—希望ã™ã‚Œã°)ãã®ãƒ•ァームウェアã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’ダウンãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
| 13 | |||
| 14 | #### JSON ペイãƒãƒ¼ãƒ‰ã®ä¾‹: | ||
| 15 | |||
| 16 | ```json | ||
| 17 | { | ||
| 18 | "keyboard": "clueboard/66/rev2", | ||
| 19 | "keymap": "my_awesome_keymap", | ||
| 20 | "layout": "LAYOUT_all", | ||
| 21 | "layers": [ | ||
| 22 | ["KC_GRV","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_GRV","KC_BSPC","KC_PGUP","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","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"], | ||
| 23 | ["KC_ESC","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_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"], | ||
| 24 | ["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"] | ||
| 25 | ] | ||
| 26 | } | ||
| 27 | ``` | ||
| 28 | |||
| 29 | ã”覧ã®ã¨ãŠã‚Šã€ãƒšã‚¤ãƒãƒ¼ãƒ‰ã«ã¯ãƒ•ァームウェアを作æˆãŠã‚ˆã³ç”Ÿæˆã™ã‚‹ãŸã‚ã«å¿…è¦ãªã‚ーボードã®å…¨ã¦ã®å´é¢ã‚’記述ã—ã¾ã™ã€‚å„レイヤー㯠QMK ã‚ーコードã®1ã¤ã®ãƒªã‚¹ãƒˆã§ã€ã‚ーボード㮠`LAYOUT` マクãƒã¨åŒã˜é•·ã•ã§ã™ã€‚ã‚‚ã—ã‚ーボードãŒè¤‡æ•°ã® `LAYOUT` マクãƒã‚’サãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã€ã©ã®ãƒžã‚¯ãƒã‚’使ã†ã‹ã‚’指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
| 30 | |||
| 31 | ## コンパイルジョブã®ã‚µãƒ–ミット | ||
| 32 | |||
| 33 | ã‚ーマップをファームウェアã«ã‚³ãƒ³ãƒ‘イルã™ã‚‹ã«ã¯ã€å˜ç´”ã« JSON ã‚’ `/v1/compile` エンドãƒã‚¤ãƒ³ãƒˆã« POST ã—ã¾ã™ã€‚以下ã®ä¾‹ã§ã¯ã€JSON ペイãƒãƒ¼ãƒ‰ã‚’ `json_data` ã¨ã„ã†åå‰ã®ãƒ•ァイルã«é…ç½®ã—ã¦ã„ã¾ã™ã€‚ | ||
| 34 | |||
| 35 | ``` | ||
| 36 | $ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://api.qmk.fm/v1/compile | ||
| 37 | { | ||
| 38 | "enqueued": true, | ||
| 39 | "job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6" | ||
| 40 | } | ||
| 41 | ``` | ||
| 42 | |||
| 43 | ## 状態ã®ãƒã‚§ãƒƒã‚¯ | ||
| 44 | |||
| 45 | ã‚ーマップをサブミットã—ãŸå¾Œã§ã€ç°¡å˜ãª HTTP GET 呼ã³å‡ºã—を使ã£ã¦çŠ¶æ…‹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: | ||
| 46 | |||
| 47 | ``` | ||
| 48 | $ curl http://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6 | ||
| 49 | { | ||
| 50 | "created_at": "Sat, 19 Aug 2017 21:39:12 GMT", | ||
| 51 | "enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT", | ||
| 52 | "id": "f5f9b992-73b4-479b-8236-df1deb37c163", | ||
| 53 | "status": "running", | ||
| 54 | "result": null | ||
| 55 | } | ||
| 56 | ``` | ||
| 57 | |||
| 58 | ã“れã¯ã€ã‚¸ãƒ§ãƒ–ã‚’ã‚ューã«å…¥ã‚Œã‚‹ã“ã¨ã«æˆåŠŸã—ã€ç¾åœ¨å®Ÿè¡Œä¸ã§ã‚ã‚‹ã“ã¨ã‚’示ã—ã¦ã„ã¾ã™ã€‚5ã¤ã®çŠ¶æ…‹ãŒã‚りãˆã¾ã™: | ||
| 59 | |||
| 60 | * **failed**: ãªã‚“らã‹ã®ç†ç”±ã§ã‚³ãƒ³ãƒ‘イルサービスãŒå¤±æ•—ã—ã¾ã—ãŸã€‚ | ||
| 61 | * **finished**: コンパイルãŒå®Œäº†ã—ã€çµæžœã‚’見るã«ã¯ `result` ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ | ||
| 62 | * **queued**: ã‚ーマップã¯ã‚³ãƒ³ãƒ‘イルサーãƒãŒåˆ©ç”¨å¯èƒ½ã«ãªã‚‹ã®ã‚’å¾…ã£ã¦ã„ã¾ã™ã€‚ | ||
| 63 | * **running**: コンパイルãŒé€²è¡Œä¸ã§ã€ã¾ã‚‚ãªã完了ã™ã‚‹ã¯ãšã§ã™ã€‚ | ||
| 64 | * **unknown**: 深刻ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã€[ãƒã‚°ã‚’å ±å‘Š](https://github.com/qmk/qmk_compiler/issues)ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ | ||
| 65 | |||
| 66 | ## 完了ã—ãŸçµæžœã‚’検証 | ||
| 67 | |||
| 68 | コンパイルジョブãŒå®Œäº†ã—ãŸã‚‰ã€`result` ã‚ーをãƒã‚§ãƒƒã‚¯ã—ã¾ã™ã€‚ã“ã®ã‚ーã®å€¤ã¯å¹¾ã¤ã‹ã®æƒ…å ±ã‚’å«ã‚€ãƒãƒƒã‚·ãƒ¥ã§ã™: | ||
| 69 | |||
| 70 | * `firmware_binary_url`: 書ãè¾¼ã¿å¯èƒ½ãªãƒ•ァームウェア㮠URL ã®ãƒªã‚¹ãƒˆ | ||
| 71 | * `firmware_keymap_url`: `keymap.c` ã® URL ã®ãƒªã‚¹ãƒˆ | ||
| 72 | * `firmware_source_url`: ファームウェアã®å®Œå…¨ãªã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã® URL ã®ãƒªã‚¹ãƒˆ | ||
| 73 | * `output`: ã“ã®ã‚³ãƒ³ãƒ‘イルジョブ㮠stdout 㨠stderr。エラーã¯ã“ã“ã§è¦‹ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
diff --git a/docs/ja/api_overview.md b/docs/ja/api_overview.md new file mode 100644 index 000000000..18b8eae10 --- /dev/null +++ b/docs/ja/api_overview.md | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | # QMK API | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.50:docs/api_overview.md | ||
| 5 | git diff 0.9.50 HEAD -- docs/api_overview.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | QMK API ã¯ã€Web 㨠GUI ツール㌠[QMK](http://qmk.fm/) ã«ã‚ˆã£ã¦ã‚µãƒãƒ¼ãƒˆã•れるã‚ーボード用ã®ä»»æ„ã®ã‚ーマップをコンパイルã™ã‚‹ãŸã‚ã«ä½¿ã†ã“ã¨ãŒã§ãã‚‹ã€éžåŒæœŸ API ã‚’æä¾›ã—ã¾ã™ã€‚標準ã®ã‚ーマップテンプレートã¯ã€C コードã®ã‚µãƒãƒ¼ãƒˆã‚’å¿…è¦ã¨ã—ãªã„å…¨ã¦ã® QMK ã‚ーコードをサãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ã‚ーボードã®ãƒ¡ãƒ³ãƒ†ãƒŠã¯ç‹¬è‡ªã®ã‚«ã‚¹ã‚¿ãƒ テンプレートをæä¾›ã—ã¦ã€ã‚ˆã‚Šå¤šãã®æ©Ÿèƒ½ã‚’実ç¾ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
| 9 | |||
| 10 | ## アプリケーション開発者 | ||
| 11 | |||
| 12 | ã‚‚ã—ã‚ãªãŸãŒã‚¢ãƒ—リケーションã§ã“ã® API を使ã†ã“ã¨ã«èˆˆå‘³ãŒã‚るアプリケーション開発者ã§ã‚れã°ã€[API ã®ä½¿ç”¨](ja/api_docs.md) ã«è¡Œãã¹ãã§ã™ã€‚ | ||
| 13 | |||
| 14 | ## ã‚ーボードã®ãƒ¡ãƒ³ãƒ†ãƒŠ | ||
| 15 | |||
| 16 | ã‚‚ã— QMK Compiler API ã§ã®ã‚ãªãŸã®ã‚ーボードã®ã‚µãƒãƒ¼ãƒˆã‚’強化ã—ãŸã„å ´åˆã¯ã€[ã‚ーボードサãƒãƒ¼ãƒˆ](ja/reference_configurator_support.md) ã®ç¯€ã«è¡Œãã¹ãã§ã™ã€‚ | ||
| 17 | |||
| 18 | ## ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰é–‹ç™ºè€… | ||
| 19 | |||
| 20 | ã‚‚ã— API 自体ã«å–り組むã“ã¨ã«èˆˆå‘³ãŒã‚ã‚‹å ´åˆã¯ã€[開発環境](ja/api_development_environment.md)ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã‹ã‚‰å§‹ã‚ã€ãれã‹ã‚‰ [API ã®ãƒãƒƒã‚ング](ja/api_development_overview.md) を調ã¹ã‚‹ã¹ãã§ã™ã€‚ | ||
diff --git a/docs/ja/faq_build.md b/docs/ja/faq_build.md index 97e1bd8cf..62c36f249 100644 --- a/docs/ja/faq_build.md +++ b/docs/ja/faq_build.md | |||
| @@ -145,4 +145,4 @@ ARM ベースã®ãƒãƒƒãƒ—上ã§ã® EEPROM ã®å‹•作ã«ã‚ˆã£ã¦ã€ä¿å˜ã•れã | |||
| 145 | [Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) を使ã£ã¦ eeprom ã®ãƒªã‚»ãƒƒãƒˆã‚’強制ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’書ã込んã 後ã§ã€é€šå¸¸ã®ãƒ•ァームウェアを書ã込むã¨ã€ã‚ーボードãŒ_通常_ ã®å‹•ä½œé †åºã«å¾©å…ƒã•れã¾ã™ã€‚ | 145 | [Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) を使ã£ã¦ eeprom ã®ãƒªã‚»ãƒƒãƒˆã‚’強制ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’書ã込んã 後ã§ã€é€šå¸¸ã®ãƒ•ァームウェアを書ã込むã¨ã€ã‚ーボードãŒ_通常_ ã®å‹•ä½œé †åºã«å¾©å…ƒã•れã¾ã™ã€‚ |
| 146 | [Preonic rev3 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/537849497313738762/preonic_rev3_default.bin) | 146 | [Preonic rev3 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/537849497313738762/preonic_rev3_default.bin) |
| 147 | 147 | ||
| 148 | ã„ãšã‚Œã‹ã®å½¢å¼ã§ãƒ–ãƒ¼ãƒˆãƒžã‚¸ãƒƒã‚¯ãŒæœ‰åйã«ãªã£ã¦ã„ã‚‹å ´åˆã¯ã€ã“れも実行ã§ãã‚‹ã¯ãšã§ã™ (実行方法ã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€[ブートマジックドã‚ュメント](feature_bootmagic.md)ã¨ã‚ãƒ¼ãƒœãƒ¼ãƒ‰æƒ…å ±ã‚’è¦‹ã¦ãã ã•ã„)。 | 148 | ã„ãšã‚Œã‹ã®å½¢å¼ã§ãƒ–ãƒ¼ãƒˆãƒžã‚¸ãƒƒã‚¯ãŒæœ‰åйã«ãªã£ã¦ã„ã‚‹å ´åˆã¯ã€ã“れも実行ã§ãã‚‹ã¯ãšã§ã™ (実行方法ã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€[ブートマジックドã‚ュメント](ja/feature_bootmagic.md)ã¨ã‚ãƒ¼ãƒœãƒ¼ãƒ‰æƒ…å ±ã‚’è¦‹ã¦ãã ã•ã„)。 |
diff --git a/docs/ja/faq_general.md b/docs/ja/faq_general.md index a365e380b..83d1a557b 100644 --- a/docs/ja/faq_general.md +++ b/docs/ja/faq_general.md | |||
| @@ -51,7 +51,7 @@ OKã€å•題ã‚りã¾ã›ã‚“。[GitHub ã§ issue ã‚’é–‹ã](https://github.com/qmk | |||
| 51 | 51 | ||
| 52 | TMK 㯠[Jun Wako](https://github.com/tmk) ã«ã‚ˆã£ã¦è¨è¨ˆã•れ実装ã•れã¾ã—ãŸã€‚QMK 㯠[Jack Humbert](https://github.com/jackhumbert) ã® Planck 用 TMK ã®ãƒ•ォークã¨ã—ã¦å§‹ã¾ã‚Šã¾ã—ãŸã€‚ã—ã°ã‚‰ãã—ã¦ã€Jack ã®ãƒ•ォーク㯠TMK ã‹ã‚‰ã‹ãªã‚Šåˆ†å²ã—ã€2015å¹´ã« Jack ã¯ãƒ•ォークを QMK ã«åå‰ã‚’変ãˆã‚‹ã“ã¨ã«ã—ã¾ã—ãŸã€‚ | 52 | TMK 㯠[Jun Wako](https://github.com/tmk) ã«ã‚ˆã£ã¦è¨è¨ˆã•れ実装ã•れã¾ã—ãŸã€‚QMK 㯠[Jack Humbert](https://github.com/jackhumbert) ã® Planck 用 TMK ã®ãƒ•ォークã¨ã—ã¦å§‹ã¾ã‚Šã¾ã—ãŸã€‚ã—ã°ã‚‰ãã—ã¦ã€Jack ã®ãƒ•ォーク㯠TMK ã‹ã‚‰ã‹ãªã‚Šåˆ†å²ã—ã€2015å¹´ã« Jack ã¯ãƒ•ォークを QMK ã«åå‰ã‚’変ãˆã‚‹ã“ã¨ã«ã—ã¾ã—ãŸã€‚ |
| 53 | 53 | ||
| 54 | 技術的ãªè¦³ç‚¹ã‹ã‚‰ã€QMK ã¯å¹¾ã¤ã‹ã®æ–°ã—ã„æ©Ÿèƒ½ã‚’è¿½åŠ ã—㟠TMK ã«åŸºã¥ã„ã¦ã„ã¾ã™ã€‚最も注目ã™ã¹ãã“ã¨ã¯ã€QMK ã¯åˆ©ç”¨å¯èƒ½ãªã‚ãƒ¼ã‚³ãƒ¼ãƒ‰ã®æ•°ã‚’増やã—ã€`S()`ã€`LCTL()` ãŠã‚ˆã³ `MO()` ãªã©ã®é«˜åº¦ãªæ©Ÿèƒ½ã‚’実装ã™ã‚‹ãŸã‚ã«ã“れらを使ã£ã¦ã„ã¾ã™ã€‚[ã‚ーコード](keycodes.md)ã§ã“れらã®ã‚ーコードã®å®Œå…¨ãªãƒªã‚¹ãƒˆã‚’見るã“ã¨ãŒã§ãã¾ã™ã€‚ | 54 | 技術的ãªè¦³ç‚¹ã‹ã‚‰ã€QMK ã¯å¹¾ã¤ã‹ã®æ–°ã—ã„æ©Ÿèƒ½ã‚’è¿½åŠ ã—㟠TMK ã«åŸºã¥ã„ã¦ã„ã¾ã™ã€‚最も注目ã™ã¹ãã“ã¨ã¯ã€QMK ã¯åˆ©ç”¨å¯èƒ½ãªã‚ãƒ¼ã‚³ãƒ¼ãƒ‰ã®æ•°ã‚’増やã—ã€`S()`ã€`LCTL()` ãŠã‚ˆã³ `MO()` ãªã©ã®é«˜åº¦ãªæ©Ÿèƒ½ã‚’実装ã™ã‚‹ãŸã‚ã«ã“れらを使ã£ã¦ã„ã¾ã™ã€‚[ã‚ーコード](ja/keycodes.md)ã§ã“れらã®ã‚ーコードã®å®Œå…¨ãªãƒªã‚¹ãƒˆã‚’見るã“ã¨ãŒã§ãã¾ã™ã€‚ |
| 55 | 55 | ||
| 56 | プãƒã‚¸ã‚§ã‚¯ãƒˆã¨ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã®ç®¡ç†ã®è¦³ç‚¹ã‹ã‚‰ã€TMK ã¯å…¬å¼ã«ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹å…¨ã¦ã®ã‚ーボードを自分ã§ç®¡ç†ã—ã¦ãŠã‚Šã€ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã®ã‚µãƒãƒ¼ãƒˆã‚‚å°‘ã—å—ã‘ã¦ã„ã¾ã™ã€‚ä»–ã®ã‚ーボード用ã«åˆ¥å€‹ã®ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãŒç¶æŒã™ã‚‹ãƒ•ォークãŒå˜åœ¨ã™ã‚‹ã‹ã€ä½œæˆã§ãã¾ã™ã€‚デフォルトã§ã¯å°‘æ•°ã®ã‚ーマップã®ã¿ãŒæä¾›ã•れるãŸã‚ã€ãƒ¦ãƒ¼ã‚¶ã¯ä¸€èˆ¬çš„ã«ãŠäº’ã„ã«ã‚ーマップを共有ã—ã¾ã›ã‚“。QMK ã¯é›†ä¸ç®¡ç†ã•れãŸãƒªãƒã‚¸ãƒˆãƒªã‚’介ã—ã¦ã€ã‚ーボードã¨ã‚ーマップã®ä¸¡æ–¹ã‚’共有ã™ã‚‹ã“ã¨ã‚’奨励ã—ã¦ãŠã‚Šã€å“è³ªåŸºæº–ã«æº–æ‹ ã™ã‚‹å…¨ã¦ã®ãƒ—ルリクエストをå—ã‘付ã‘ã¾ã™ã€‚ã“れらã¯ã»ã¨ã‚“ã©ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã§ç®¡ç†ã•れã¾ã™ãŒã€å¿…è¦ãªå ´åˆã¯ QMK ãƒãƒ¼ãƒ も支æ´ã—ã¾ã™ã€‚ | 56 | プãƒã‚¸ã‚§ã‚¯ãƒˆã¨ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã®ç®¡ç†ã®è¦³ç‚¹ã‹ã‚‰ã€TMK ã¯å…¬å¼ã«ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹å…¨ã¦ã®ã‚ーボードを自分ã§ç®¡ç†ã—ã¦ãŠã‚Šã€ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã®ã‚µãƒãƒ¼ãƒˆã‚‚å°‘ã—å—ã‘ã¦ã„ã¾ã™ã€‚ä»–ã®ã‚ーボード用ã«åˆ¥å€‹ã®ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãŒç¶æŒã™ã‚‹ãƒ•ォークãŒå˜åœ¨ã™ã‚‹ã‹ã€ä½œæˆã§ãã¾ã™ã€‚デフォルトã§ã¯å°‘æ•°ã®ã‚ーマップã®ã¿ãŒæä¾›ã•れるãŸã‚ã€ãƒ¦ãƒ¼ã‚¶ã¯ä¸€èˆ¬çš„ã«ãŠäº’ã„ã«ã‚ーマップを共有ã—ã¾ã›ã‚“。QMK ã¯é›†ä¸ç®¡ç†ã•れãŸãƒªãƒã‚¸ãƒˆãƒªã‚’介ã—ã¦ã€ã‚ーボードã¨ã‚ーマップã®ä¸¡æ–¹ã‚’共有ã™ã‚‹ã“ã¨ã‚’奨励ã—ã¦ãŠã‚Šã€å“è³ªåŸºæº–ã«æº–æ‹ ã™ã‚‹å…¨ã¦ã®ãƒ—ルリクエストをå—ã‘付ã‘ã¾ã™ã€‚ã“れらã¯ã»ã¨ã‚“ã©ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã§ç®¡ç†ã•れã¾ã™ãŒã€å¿…è¦ãªå ´åˆã¯ QMK ãƒãƒ¼ãƒ も支æ´ã—ã¾ã™ã€‚ |
| 57 | 57 | ||
diff --git a/docs/ja/faq_keymap.md b/docs/ja/faq_keymap.md index 2726e1872..311ebe0e4 100644 --- a/docs/ja/faq_keymap.md +++ b/docs/ja/faq_keymap.md | |||
| @@ -128,7 +128,7 @@ https://github.com/tekezo/Karabiner/issues/403 | |||
| 128 | 128 | ||
| 129 | ## å˜ä¸€ã®ã‚ーã§ã® Esc ã¨<code>`</code> | 129 | ## å˜ä¸€ã®ã‚ーã§ã® Esc ã¨<code>`</code> |
| 130 | 130 | ||
| 131 | [Grave Escape](feature_grave_esc.md) 機能を見ã¦ãã ã•ã„。 | 131 | [Grave Escape](ja/feature_grave_esc.md) 機能を見ã¦ãã ã•ã„。 |
| 132 | 132 | ||
| 133 | ## Mac OSX ã§ã® Eject | 133 | ## Mac OSX ã§ã® Eject |
| 134 | `KC_EJCT` ã‚ーコード㯠OSX ã§å‹•作ã—ã¾ã™ã€‚https://github.com/tmk/tmk_keyboard/issues/250 | 134 | `KC_EJCT` ã‚ーコード㯠OSX ã§å‹•作ã—ã¾ã™ã€‚https://github.com/tmk/tmk_keyboard/issues/250 |
diff --git a/docs/ja/feature_split_keyboard.md b/docs/ja/feature_split_keyboard.md index 74b62310f..1efc98e40 100644 --- a/docs/ja/feature_split_keyboard.md +++ b/docs/ja/feature_split_keyboard.md | |||
| @@ -20,12 +20,12 @@ QMK ファームウェアã«ã¯ã€ä»»æ„ã®ã‚ーボードã§ä½¿ç”¨å¯èƒ½ãªä¸€è | |||
| 20 | 20 | ||
| 21 | | Transport | AVR | ARM | | 21 | | Transport | AVR | ARM | |
| 22 | |------------------------------|--------------------|--------------------| | 22 | |------------------------------|--------------------|--------------------| |
| 23 | | ['serial'](serial_driver.md) | :heavy_check_mark: | :white_check_mark: <sup>1</sup> | | 23 | | ['serial'](ja/serial_driver.md) | :heavy_check_mark: | :white_check_mark: <sup>1</sup> | |
| 24 | | I2C | :heavy_check_mark: | | | 24 | | I2C | :heavy_check_mark: | | |
| 25 | 25 | ||
| 26 | 注æ„: | 26 | 注æ„: |
| 27 | 27 | ||
| 28 | 1. ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã¨ã‚½ãƒ•トウェアã®ä¸¡æ–¹ã®åˆ¶é™ã¯ã€[ドライãƒãƒ¼ã®ãƒ‰ã‚ュメント](serial_driver.md)ã®ä¸ã§èª¬æ˜Žã•れã¾ã™ã€‚ | 28 | 1. ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã¨ã‚½ãƒ•トウェアã®ä¸¡æ–¹ã®åˆ¶é™ã¯ã€[ドライãƒãƒ¼ã®ãƒ‰ã‚ュメント](ja/serial_driver.md)ã®ä¸ã§èª¬æ˜Žã•れã¾ã™ã€‚ |
| 29 | 29 | ||
| 30 | ## ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢è¨å®š | 30 | ## ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢è¨å®š |
| 31 | 31 | ||
diff --git a/docs/ja/how_a_matrix_works.md b/docs/ja/how_a_matrix_works.md index ff4fbb115..b6ded186b 100644 --- a/docs/ja/how_a_matrix_works.md +++ b/docs/ja/how_a_matrix_works.md | |||
| @@ -101,4 +101,4 @@ | |||
| 101 | - [Deskthority ã®è¨˜äº‹](https://deskthority.net/wiki/Keyboard_matrix) | 101 | - [Deskthority ã®è¨˜äº‹](https://deskthority.net/wiki/Keyboard_matrix) |
| 102 | - [Dave Dribin ã«ã‚ˆã‚‹ Keyboard Matrix Help (2000)](https://www.dribin.org/dave/keyboard/one_html/) | 102 | - [Dave Dribin ã«ã‚ˆã‚‹ Keyboard Matrix Help (2000)](https://www.dribin.org/dave/keyboard/one_html/) |
| 103 | - [PCBheaven ã«ã‚ˆã‚‹ How Key Matrices Works](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (アニメーションã®ä¾‹) | 103 | - [PCBheaven ã«ã‚ˆã‚‹ How Key Matrices Works](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (アニメーションã®ä¾‹) |
| 104 | - [ã‚ーボードã®ä»•組㿠- QMK ドã‚ュメント](how_keyboards_work.md) | 104 | - [ã‚ーボードã®ä»•組㿠- QMK ドã‚ュメント](ja/how_keyboards_work.md) |
diff --git a/docs/ja/quantum_keycodes.md b/docs/ja/quantum_keycodes.md new file mode 100644 index 000000000..ffcc49446 --- /dev/null +++ b/docs/ja/quantum_keycodes.md | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | # Quantum ã‚ーコード | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.55:docs/quantum_keycodes.md | ||
| 5 | git diff 0.9.55 HEAD -- docs/quantum_keycodes.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | Quantum ã‚ーコードã«ã‚ˆã‚Šã€ã‚«ã‚¹ã‚¿ãƒ アクションを定義ã™ã‚‹ã“ã¨ãªãã€åŸºæœ¬çš„ãªã‚‚ã®ãŒæä¾›ã™ã‚‹ã‚‚ã®ã‚ˆã‚Šç°¡å˜ã«ã‚ーマップをカスタマイズã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
| 9 | |||
| 10 | quantum 内ã®å…¨ã¦ã®ã‚ーコード㯠`0x0000` 㨠`0xFFFF` ã®é–“ã®æ•°å€¤ã§ã™ã€‚`keymap.c` ã®ä¸ã§ã¯ã€é–¢æ•°ã‚„ãã®ä»–ã®ç‰¹åˆ¥ãªå ´åˆãŒã‚るよã†ã«è¦‹ãˆã¾ã™ãŒã€æœ€çµ‚çš„ã«ã¯ C プリプãƒã‚»ãƒƒã‚µã«ã‚ˆã£ã¦ãれらã¯å˜ä¸€ã®4ãƒã‚¤ãƒˆæ•´æ•°ã«å¤‰æ›ã•れã¾ã™ã€‚QMK ã¯æ¨™æº–çš„ãªã‚ーコードã®ãŸã‚ã« `0x0000` ã‹ã‚‰ `0x00FF` を予約ã—ã¦ã„ã¾ã™ã€‚ã“れらã¯ã€`KC_A`ã€`KC_1` ãŠã‚ˆã³ `KC_LCTL` ã®ã‚ˆã†ãªã‚ーコードã§ã€USB HID 仕様ã§å®šç¾©ã•れãŸåŸºæœ¬çš„ãªã‚ーã§ã™ã€‚ | ||
| 11 | |||
| 12 | ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€é«˜åº¦ãª quantum 機能を実装ã™ã‚‹ãŸã‚ã«ä½¿ã‚れる `0x00FF` 㨠`0xFFFF` ã®é–“ã®ã‚ーコードを説明ã—ã¾ã™ã€‚独自ã®ã‚«ã‚¹ã‚¿ãƒ ã‚ーコードを定義ã™ã‚‹å ´åˆã¯ã€ãれらもã“ã®ç¯„囲ã«é…ç½®ã•れã¾ã™ã€‚ | ||
| 13 | |||
| 14 | ## QMK ã‚ーコード :id=qmk-keycodes | ||
| 15 | |||
| 16 | | ã‚ー | エイリアス | 説明 | | ||
| 17 | |----------------|------------|--------------------------------------------------------| | ||
| 18 | | `RESET` | | 書ãè¾¼ã¿ã®ãŸã‚ã«ã€ã‚ーボードを bootloader モードã«ã™ã‚‹ | | ||
| 19 | | `DEBUG` | | デãƒãƒƒã‚°ãƒ¢ãƒ¼ãƒ‰ã®åˆ‡ã‚Šæ›¿ãˆ | | ||
| 20 | | `EEPROM_RESET` | `EEP_RST` | ã‚ーボード㮠EEPROM (永続化メモリ) ã‚’å†åˆæœŸåŒ–ã™ã‚‹ | | ||
diff --git a/docs/ja/reference_configurator_support.md b/docs/ja/reference_configurator_support.md new file mode 100644 index 000000000..0151731e9 --- /dev/null +++ b/docs/ja/reference_configurator_support.md | |||
| @@ -0,0 +1,202 @@ | |||
| 1 | # QMK Configurator ã§ã®ã‚ーボードã®ã‚µãƒãƒ¼ãƒˆ | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.46:docs/reference_configurator_support.md | ||
| 5 | git diff 0.9.46 HEAD -- docs/reference_configurator_support.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | ã“ã®ãƒšãƒ¼ã‚¸ã¯ [QMK Configurator](https://config.qmk.fm/) ã§ã‚ーボードをé©åˆ‡ã«ã‚µãƒãƒ¼ãƒˆã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦èª¬æ˜Žã—ã¾ã™ã€‚ | ||
| 9 | |||
| 10 | |||
| 11 | ## Configurator ãŒã‚ーボードをç†è§£ã™ã‚‹æ–¹æ³• | ||
| 12 | |||
| 13 | Configurator ãŒã‚ーボードをã©ã®ã‚ˆã†ã«ç†è§£ã™ã‚‹ã‹ã‚’ç†è§£ã™ã‚‹ã«ã¯ã€æœ€åˆã«ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆãƒžã‚¯ãƒã‚’ç†è§£ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ã“ã®æ¼”ç¿’ã§ã¯ã€17ã‚ーã®ãƒ†ãƒ³ã‚ー PCB を想定ã—ã¾ã™ã€‚ã“れを `numpad` ã¨å‘¼ã³ã¾ã™ã€‚ | ||
| 14 | |||
| 15 | ``` | ||
| 16 | |---------------| | ||
| 17 | |NLk| / | * | - | | ||
| 18 | |---+---+---+---| | ||
| 19 | |7 |8 |9 | + | | ||
| 20 | |---+---+---| | | ||
| 21 | |4 |5 |6 | | | ||
| 22 | |---+---+---+---| | ||
| 23 | |1 |2 |3 |Ent| | ||
| 24 | |-------+---| | | ||
| 25 | |0 | . | | | ||
| 26 | |---------------| | ||
| 27 | ``` | ||
| 28 | |||
| 29 | ?> レイアウトマクãƒã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€[QMK ã®ç†è§£: マトリックススã‚ャン](ja/understanding_qmk.md?id=matrix-scanning) 㨠[QMK ã®ç†è§£: マトリックスã‹ã‚‰ç‰©ç†ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã¸ã®ãƒžãƒƒãƒ—](ja/understanding_qmk.md?id=matrix-to-physical-layout-map) を見ã¦ãã ã•ã„。 | ||
| 30 | |||
| 31 | Configurator ã® API ã¯ã‚ーボード㮠`.h` ファイルを `qmk_firmware/keyboards/<keyboard>/<keyboard>.h` ã‹ã‚‰èªã¿å–りã¾ã™ã€‚numpad ã®å ´åˆã€ã“ã®ãƒ•ァイル㯠`qmk_firmware/keyboards/numpad/numpad.h` ã§ã™: | ||
| 32 | |||
| 33 | ```c | ||
| 34 | #pragma once | ||
| 35 | |||
| 36 | #define LAYOUT( \ | ||
| 37 | k00, k01, k02, k03, \ | ||
| 38 | k10, k11, k12, k13, \ | ||
| 39 | k20, k21, k22, \ | ||
| 40 | k30, k31, k32, k33, \ | ||
| 41 | k40, k42 \ | ||
| 42 | ) { \ | ||
| 43 | { k00, k01, k02, k03 }, \ | ||
| 44 | { k10, k11, k12, k13 }, \ | ||
| 45 | { k20, k21, k22, KC_NO }, \ | ||
| 46 | { k30, k31, k32, k33 }, \ | ||
| 47 | { k40, KC_NO, k42, KC_NO } \ | ||
| 48 | } | ||
| 49 | ``` | ||
| 50 | |||
| 51 | QMK 㯠`KC_NO` を使ã£ã¦ã€ã‚¹ã‚¤ãƒƒãƒãƒžãƒˆãƒªãƒƒã‚¯ã‚¹å†…ã®ã‚¹ã‚¤ãƒƒãƒãŒãªã„å ´æ‰€ã‚’æŒ‡å®šã—ã¾ã™ã€‚デãƒãƒƒã‚°ãŒå¿…è¦ãªå ´åˆã«ã€ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’èªã¿ã‚„ã™ãã™ã‚‹ãŸã‚ã«ã€`XXX`ã€`___`ã€`____` を略記ã¨ã—ã¦ä½¿ã†ã“ã¨ã‚‚ã‚りã¾ã™ã€‚通常㯠`.h` ファイルã®å…ˆé è¿‘ãã§å®šç¾©ã•れã¾ã™: | ||
| 52 | |||
| 53 | ```c | ||
| 54 | #pragma once | ||
| 55 | |||
| 56 | #define XXX KC_NO | ||
| 57 | |||
| 58 | #define LAYOUT( \ | ||
| 59 | k00, k01, k02, k03, \ | ||
| 60 | k10, k11, k12, k13, \ | ||
| 61 | k20, k21, k22, \ | ||
| 62 | k30, k31, k32, k33, \ | ||
| 63 | k40, k42 \ | ||
| 64 | ) { \ | ||
| 65 | { k00, k01, k02, k03 }, \ | ||
| 66 | { k10, k11, k12, k13 }, \ | ||
| 67 | { k20, k21, k22, XXX }, \ | ||
| 68 | { k30, k31, k32, k33 }, \ | ||
| 69 | { k40, XXX, k42, XXX } \ | ||
| 70 | } | ||
| 71 | ``` | ||
| 72 | |||
| 73 | !> ã“ã®ä½¿ç”¨æ–¹æ³•ã¯ã‚ーマップマクãƒã¨ç•°ãªã‚Šã¾ã™ã€‚ã‚ーマップマクãƒã¯ã»ã¨ã‚“ã©å¸¸ã«`KC_NO`ã«ã¤ã„ã¦ã¯`XXXXXXX` (7ã¤ã®å¤§æ–‡å—ã® X) ã‚’ã€`KC_TRNS` ã«ã¤ã„ã¦ã¯ `_______` (7ã¤ã®ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢)を使ã„ã¾ã™ã€‚ | ||
| 74 | |||
| 75 | !> ãƒ¦ãƒ¼ã‚¶ã®æ··ä¹±ã‚’防ããŸã‚ã«ã€`KC_NO` を使ã†ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ | ||
| 76 | |||
| 77 | レイアウトマクãƒã¯ã€ã‚ーボードã«17個ã®ã‚ーãŒã‚りã€4列ãれãžã‚ŒãŒ5行ã«é…ç½®ã•れã¦ã„ã‚‹ã“ã¨ã‚’ Configurator ã«ä¼ãˆã¾ã™ã€‚スイッãƒã®ä½ç½®ã¯ã€0ã‹ã‚‰å§‹ã¾ã‚‹ `k<row><column>` ã¨ã„ã†åå‰ãŒä»˜ã‘られã¦ã„ã¾ã™ã€‚ã‚ーマップã‹ã‚‰ã‚ーコードをå—ã‘å–る上部セクションã¨ã€ãƒžãƒˆãƒªãƒƒã‚¯ã‚¹å†…ã®å„ã‚ーã®ä½ç½®ã‚’指定ã™ã‚‹ä¸‹éƒ¨ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã¨ãŒä¸€è‡´ã™ã‚‹é™ã‚Šã€åå‰è‡ªä½“ã¯å®Ÿéš›ã«ã¯å•題ã§ã¯ã‚りã¾ã›ã‚“。 | ||
| 78 | |||
| 79 | 物ç†çš„ãªã‚ーボードã«ä¼¼ãŸå½¢ã§ã‚ーボードを表示ã™ã‚‹ã«ã¯ã€ãれãžã‚Œã®ã‚ーã®ç‰©ç†çš„ãªä½ç½®ã¨ã‚µã‚¤ã‚ºã‚’スイッãƒãƒžãƒˆãƒªãƒƒã‚¯ã‚¹ã«çµã³ã¤ã‘ã‚‹ã“ã¨ã‚’ Configurator ã«ä¼ãˆã‚‹ JSON ファイルを作æˆã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ | ||
| 80 | |||
| 81 | ## JSON ファイルã®ãƒ“ルド | ||
| 82 | |||
| 83 | JSON ファイルをビルドã™ã‚‹æœ€ã‚‚ç°¡å˜ãªæ–¹æ³•ã¯ã€[Keyboard Layout Editor](http://www.keyboard-layout-editor.com/) ("KLE") ã§ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’作æˆã™ã‚‹ã“ã¨ã§ã™ã€‚ã“ã® Raw Data ã‚’ QMK tool ã«å…¥ã‚Œã¦ã€Configurator ãŒèªã¿å‡ºã—ã¦ä½¿ç”¨ã™ã‚‹ JSON ファイルã«å¤‰æ›ã—ã¾ã™ã€‚KLE 㯠numpad レイアウトをデフォルトã§é–‹ããŸã‚ã€Getting Started ã®èª¬æ˜Žã‚’削除ã—ã€æ®‹ã‚Šã‚’使ã„ã¾ã™ã€‚ | ||
| 84 | |||
| 85 | ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆãŒæœ›ã¿é€šã‚Šã®ã‚‚ã®ã«ãªã£ãŸã‚‰ã€KLE ã® Raw Data タブã«ç§»å‹•ã—ã€å†…容をコピーã—ã¾ã™: | ||
| 86 | |||
| 87 | ``` | ||
| 88 | ["Num Lock","/","*","-"], | ||
| 89 | ["7\nHome","8\n↑","9\nPgUp",{h:2},"+"], | ||
| 90 | ["4\nâ†","5","6\n→"], | ||
| 91 | ["1\nEnd","2\n↓","3\nPgDn",{h:2},"Enter"], | ||
| 92 | [{w:2},"0\nIns",".\nDel"] | ||
| 93 | ``` | ||
| 94 | |||
| 95 | ã“ã®ãƒ‡ãƒ¼ã‚¿ã‚’ JSON ã«å¤‰æ›ã™ã‚‹ã«ã¯ã€[QMK KLE-JSON Converter](https://qmk.fm/converter/) ã«ç§»å‹•ã—ã€Raw Data ã‚’ Input フィールド ã«è²¼ã‚Šä»˜ã‘ã€Convert ボタンをクリックã—ã¾ã™ã€‚ã—ã°ã‚‰ãã™ã‚‹ã¨ã€JSON データ㌠Output フィールドã«è¡¨ç¤ºã•れã¾ã™ã€‚内容を新ã—ã„テã‚ストドã‚ュメントã«ã‚³ãƒ”ーã—ã€ãƒ‰ã‚ュメント㫠`info.json` ã¨ã„ã†åå‰ã‚’付ã‘ã€`numpad.h` ã‚’å«ã‚€åŒã˜ãƒ•ォルダã«ä¿å˜ã—ã¾ã™ã€‚ | ||
| 96 | |||
| 97 | `keyboard_name` オブジェクトを使ã£ã¦ã‚ーボードã®åå‰ã‚’è¨å®šã—ã¾ã™ã€‚説明ã®ãŸã‚ã«ã€å„ã‚ーã®ã‚ªãƒ–ジェクトをå„行ã«é…ç½®ã—ã¾ã™ã€‚ã“れã¯ãƒ•ァイルを人間ãŒèªã¿ã‚„ã™ã„ã‚‚ã®ã«ã™ã‚‹ãŸã‚ã®ã‚‚ã®ã§ã€Configurator ã®æ©Ÿèƒ½ã«ã¯å½±éŸ¿ã—ã¾ã›ã‚“。 | ||
| 98 | |||
| 99 | ```json | ||
| 100 | { | ||
| 101 | "keyboard_name": "Numpad", | ||
| 102 | "url": "", | ||
| 103 | "maintainer": "qmk", | ||
| 104 | "tags": { | ||
| 105 | "form_factor": "numpad" | ||
| 106 | }, | ||
| 107 | "width": 4, | ||
| 108 | "height": 5, | ||
| 109 | "layouts": { | ||
| 110 | "LAYOUT": { | ||
| 111 | "layout": [ | ||
| 112 | {"label":"Num Lock", "x":0, "y":0}, | ||
| 113 | {"label":"/", "x":1, "y":0}, | ||
| 114 | {"label":"*", "x":2, "y":0}, | ||
| 115 | {"label":"-", "x":3, "y":0}, | ||
| 116 | {"label":"7", "x":0, "y":1}, | ||
| 117 | {"label":"8", "x":1, "y":1}, | ||
| 118 | {"label":"9", "x":2, "y":1}, | ||
| 119 | {"label":"+", "x":3, "y":1, "h":2}, | ||
| 120 | {"label":"4", "x":0, "y":2}, | ||
| 121 | {"label":"5", "x":1, "y":2}, | ||
| 122 | {"label":"6", "x":2, "y":2}, | ||
| 123 | {"label":"1", "x":0, "y":3}, | ||
| 124 | {"label":"2", "x":1, "y":3}, | ||
| 125 | {"label":"3", "x":2, "y":3}, | ||
| 126 | {"label":"Enter", "x":3, "y":3, "h":2}, | ||
| 127 | {"label":"0", "x":0, "y":4, "w":2}, | ||
| 128 | {"label":".", "x":2, "y":4} | ||
| 129 | ] | ||
| 130 | } | ||
| 131 | } | ||
| 132 | } | ||
| 133 | ``` | ||
| 134 | |||
| 135 | `layouts` オブジェクトã«ã¯ã‚ーボードã®ç‰©ç†ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’表ã™ãƒ‡ãƒ¼ã‚¿ãŒå«ã¾ã‚Œã¾ã™ã€‚ã“ã®ã‚ªãƒ–ジェクトã«ã¯ `LAYOUT` ã¨ã„ã†åå‰ã®ã‚ªãƒ–ジェクトãŒã‚りã€ã“ã®ã‚ªãƒ–ジェクトå㯠`numpad.h` ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆãƒžã‚¯ãƒã®åå‰ã¨ä¸€è‡´ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚`LAYOUT` オブジェクト自体ã«ã¯ `layout` ã¨ã„ã†åå‰ã®ã‚ªãƒ–ジェクトãŒã‚りã¾ã™ã€‚ã“ã®ã‚ªãƒ–ジェクトã«ã¯ã‚ーボードã®ç‰©ç†ã‚ーã”ã¨ã« 1ã¤ã® JSON オブジェクトãŒä»¥ä¸‹ã®å½¢å¼ã§å«ã¾ã‚Œã¦ã„ã¾ã™: | ||
| 136 | |||
| 137 | ``` | ||
| 138 | ã‚ーã®åå‰ã€‚Configurator ã§ã¯è¡¨ç¤ºã•れã¾ã›ã‚“。 | ||
| 139 | | | ||
| 140 | | ã‚ーボードã®å·¦ç«¯ã‹ã‚‰ã®ã‚ーå˜ä½ã§ã® | ||
| 141 | | | ã‚ー㮠X 軸ã®ä½ç½®ã€‚ | ||
| 142 | | | | ||
| 143 | | | ã‚ーボードã®ä¸Šç«¯(奥å´)ã‹ã‚‰ã®ã‚ーå˜ä½ã§ã® | ||
| 144 | | | | ã‚ー㮠Y 軸ä½ç½®ã€‚ | ||
| 145 | ↓ ↓ ↓ | ||
| 146 | {"label":"Num Lock", "x":0, "y":0}, | ||
| 147 | ``` | ||
| 148 | |||
| 149 | 一部ã®ã‚ªãƒ–ジェクトã«ã¯ã€ãれãžã‚Œã‚ーã®å¹…ã¨é«˜ã•を表㙠`"w"` 属性ã‚ー㨠`"h"` 属性ã‚ーãŒã‚りã¾ã™ã€‚ | ||
| 150 | |||
| 151 | ?> `info.json` ファイルã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€[`info.json` å½¢å¼](ja/reference_info_json.md) ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 | ||
| 152 | |||
| 153 | |||
| 154 | ## Configurator ãŒã‚ーをプãƒã‚°ãƒ©ãƒ ã™ã‚‹æ–¹æ³• | ||
| 155 | |||
| 156 | Configurator ã® API ã¯ã€æŒ‡å®šã•れãŸãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆãƒžã‚¯ãƒã¨ JSON ファイルを使ã£ã¦ã€ç‰¹å®šã®ã‚ーã«é–¢é€£ä»˜ã‘られãŸå„ãƒ“ã‚¸ãƒ¥ã‚¢ãƒ«ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’é †ç•ªã«æŒã¤ã‚ーボードã®ãƒ“ジュアル表ç¾ã‚’作æˆã—ã¾ã™: | ||
| 157 | |||
| 158 | | レイアウトマクãƒã®ã‚ー | 使用ã•れる JSON オブジェクト | | ||
| 159 | :---: | :---- | ||
| 160 | | k00 | {"label":"Num Lock", "x":0, "y":0} | | ||
| 161 | | k01 | {"label":"/", "x":1, "y":0} | | ||
| 162 | | k02 | {"label":"*", "x":2, "y":0} | | ||
| 163 | | k03 | {"label":"-", "x":3, "y":0} | | ||
| 164 | | k10 | {"label":"7", "x":0, "y":1} | | ||
| 165 | | k11 | {"label":"8", "x":1, "y":1} | | ||
| 166 | | k12 | {"label":"9", "x":2, "y":1} | | ||
| 167 | | k13 | {"label":"+", "x":3, "y":1, "h":2} | | ||
| 168 | | k20 | {"label":"4", "x":0, "y":2} | | ||
| 169 | | k21 | {"label":"5", "x":1, "y":2} | | ||
| 170 | | k22 | {"label":"6", "x":2, "y":2} | | ||
| 171 | | k30 | {"label":"1", "x":0, "y":3} | | ||
| 172 | | k31 | {"label":"2", "x":1, "y":3} | | ||
| 173 | | k32 | {"label":"3", "x":2, "y":3} | | ||
| 174 | | k33 | {"label":"Enter", "x":3, "y":3, "h":2} | | ||
| 175 | | k40 | {"label":"0", "x":0, "y":4, "w":2} | | ||
| 176 | | k42 | {"label":".", "x":2, "y":4} | | ||
| 177 | |||
| 178 | ユーザ㌠Configurator ã§å·¦ä¸Šã®ã‚ãƒ¼ã‚’é¸æŠžã—ã€Num Lock を割り当ã¦ã‚‹ã¨ã€Configurator ã¯æœ€åˆã®ã‚ーã¨ã—㦠`KC_NLCK` ã‚’æŒã¤ã‚ーマップを作æˆã—ã€åŒæ§˜ã«ã‚ーマップãŒä½œæˆã•れã¾ã™ã€‚`label` ã‚ーã¯ä½¿ã‚れã¾ã›ã‚“; ãれら㯠`info.json` ファイルをデãƒãƒƒã‚°ã™ã‚‹æ™‚ã«ç‰¹å®šã®ã‚ーをè˜åˆ¥ã™ã‚‹ãŸã‚ã®ãƒ¦ãƒ¼ã‚¶ã®å‚ç…§ã®ãŸã‚ã ã‘ã®ã‚‚ã®ã§ã™ã€‚ | ||
| 179 | |||
| 180 | |||
| 181 | ## å•題ã¨å±é™º | ||
| 182 | |||
| 183 | ç¾åœ¨ã®ã¨ã“ã‚ã€Configurator ã¯ã‚ーã®å›žè»¢ã¾ãŸã¯ ISO Enter ãªã©ã®é•·æ–¹å½¢ã§ã¯ãªã„ã‚ーをサãƒãƒ¼ãƒˆã—ã¾ã›ã‚“。ã•らã«ã€"行"ã‹ã‚‰åž‚ç›´æ–¹å‘ã«ãšã‚Œã¦ã„ã‚‹ã‚ー〗 é¡•è‘—ãªä¾‹ã¨ã—㦠[TKC1800](https://github.com/qmk/qmk_firmware/tree/4ac48a61a66206beaf2fdd5f2939d8bbedd0004c/keyboards/tkc1800/) ã®ã‚ˆã†ãª1800レイアウト上ã®çŸ¢å°ã‚ー — ã¯ã€ `info.json` ãƒ•ã‚¡ã‚¤ãƒ«ã®æä¾›è€…ã«ã‚ˆã£ã¦èª¿æ•´ã•れã¦ã„ãªã„å ´åˆã¯ã€KLE-to-JSON コンãƒãƒ¼ã‚¿ã‚’æ··ä¹±ã•ã›ã¾ã™ã€‚ | ||
| 184 | |||
| 185 | ### 回é¿ç– | ||
| 186 | |||
| 187 | #### 長方形ã§ã¯ãªã„ã‚ー | ||
| 188 | |||
| 189 | ISO Enter ã‚ーã«ã¤ã„ã¦ã¯ã€QMK custom ã¯å¹… 1.25uã€é«˜ã• 2u ã®é•·æ–¹å½¢ã®ã‚ーã¨ã—ã¦è¡¨ç¤ºã—ã€å³ç«¯ãŒè‹±æ•°å—ã‚ーブãƒãƒƒã‚¯ã®å³ç«¯ã«æƒã†ã‚ˆã†ã«é…ç½®ã•れã¾ã™ã€‚ | ||
| 190 | |||
| 191 |  | ||
| 192 | *QMK Configurator ã«ã‚ˆã£ã¦æç”»ã•れる標準 ISO レイアウトã®60%ã‚ーボード。* | ||
| 193 | |||
| 194 | #### 垂直方å‘ã«ãšã‚ŒãŸã‚ー | ||
| 195 | |||
| 196 | 垂直方å‘ã«ãšã‚ŒãŸã‚ーã«ã¤ã„ã¦ã¯ã€ãšã‚Œã¦ã„ãªã„ã‹ã®ã‚ˆã†ã« KLE ã§é…ç½®ã—ã€å¤‰æ›ã•れ㟠JSON ファイルã§å¿…è¦ã«å¿œã˜ã¦ Y 値を編集ã—ã¾ã™ã€‚ | ||
| 197 | |||
| 198 |  | ||
| 199 | *矢å°ã‚ーã«é©ç”¨ã•れる垂直方å‘ã®ãšã‚Œã®ãªã„ã€Keyboard Layout Editor ã§æç”»ã•れãŸ1800レイアウトã®ã‚ーボード。* | ||
| 200 | |||
| 201 |  | ||
| 202 | *ã‚ーボード㮠JSON ファイルã§çŸ¢å°ã‚ーを垂直方å‘ã«ãšã‚‰ã™ãŸã‚ã«å¿…è¦ãªå¤‰æ›´ã‚’示ã™ã€Unix ã® diff ファイル。* | ||
diff --git a/docs/ja/reference_glossary.md b/docs/ja/reference_glossary.md new file mode 100644 index 000000000..19791206f --- /dev/null +++ b/docs/ja/reference_glossary.md | |||
| @@ -0,0 +1,173 @@ | |||
| 1 | # QMK 用語集 | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.46:docs/reference_glossary.md | ||
| 5 | git diff 0.9.46 HEAD -- docs/reference_glossary.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | ## ARM | ||
| 9 | Atmelã€Cypressã€Kinetisã€NXPã€STã€TI ãªã©å¤šãã®ä¼æ¥ãŒç”Ÿç”£ã™ã‚‹ 32 ビット MCU ã®ãƒ©ã‚¤ãƒ³ã€‚ | ||
| 10 | |||
| 11 | ## AVR | ||
| 12 | [Atmel](http://www.microchip.com/) ãŒç”Ÿç”£ã™ã‚‹ 8 ビット MCU ã®ãƒ©ã‚¤ãƒ³ã€‚AVR 㯠TMK ãŒã‚µãƒãƒ¼ãƒˆã—ã¦ã„ãŸå…ƒã®ãƒ—ラットフォームã§ã—ãŸã€‚ | ||
| 13 | |||
| 14 | ## AZERTY | ||
| 15 | 標準的㪠Français (フランス) ã‚ーボードレイアウト。ã‚ãƒ¼ãƒœãƒ¼ãƒ‰ã®æœ€åˆã®6ã¤ã®ã‚ーã‹ã‚‰å‘½åã•れã¾ã—ãŸã€‚ | ||
| 16 | |||
| 17 | ## ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆ | ||
| 18 | ã‚ーボードã®ãƒ©ã‚¤ãƒˆã®ç·ç§°ã€‚ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆãŒä¸€èˆ¬çš„ã§ã™ãŒã€ãれã ã‘ã§ã¯ãªãã€ã‚ーã‚ャップã‚ã‚‹ã„ã¯ã‚¹ã‚¤ãƒƒãƒã‚’通ã—ã¦å…‰ã‚‹ LED ã®é…列。 | ||
| 19 | |||
| 20 | ## Bluetooth | ||
| 21 | çŸè·é›¢ã®ãƒ”アツーピア無線プãƒãƒˆã‚³ãƒ«ã€‚ã‚ーボード用ã®ã‚‚ã£ã¨ã‚‚一般的ãªãƒ¯ã‚¤ãƒ¤ãƒ¬ã‚¹ãƒ—ãƒãƒˆã‚³ãƒ«ã€‚ | ||
| 22 | |||
| 23 | ## ブートãƒãƒ¼ãƒ€ | ||
| 24 | MCU ã®ä¿è·é ˜åŸŸã«æ›¸ãè¾¼ã¾ã‚Œã‚‹ç‰¹åˆ¥ãªãƒ—ãƒã‚°ãƒ©ãƒ ã§ã€MCU ãŒç‹¬è‡ªã®ãƒ•ァームウェアを通常㯠USB 経由ã§ã‚¢ãƒƒãƒ—グレードã§ãるよã†ã«ã—ã¾ã™ã€‚ | ||
| 25 | |||
| 26 | ## ブートマジック | ||
| 27 | よãã‚ã‚‹ã‚ーã®äº¤æ›ã‚ã‚‹ã„ã¯ç„¡åŠ¹åŒ–ãªã©ã€æ§˜ã€…ãªã‚ãƒ¼ãƒœãƒ¼ãƒ‰ã®æŒ™å‹•ã®å¤‰æ›´ã‚’ãã®å ´ã§å®Ÿè¡Œã§ãる機能。 | ||
| 28 | |||
| 29 | ## C | ||
| 30 | システムコードã«é©ã—ãŸä½Žãƒ¬ãƒ™ãƒ«ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžã€‚QMK ã®ã»ã¨ã‚“ã©ã®ã‚³ãƒ¼ãƒ‰ã¯ C ã§æ›¸ã‹ã‚Œã¦ã„ã¾ã™ã€‚ | ||
| 31 | |||
| 32 | ## Colemak | ||
| 33 | 人気ãŒå‡ºå§‹ã‚ã¦ã„る代替ã‚ーボードレイアウト。 | ||
| 34 | |||
| 35 | ## コンパイル | ||
| 36 | 人間ãŒèªã‚るコードを MCU ãŒå®Ÿè¡Œã§ãるマシンコードã«å¤‰æ›ã™ã‚‹ãƒ—ãƒã‚»ã‚¹ã€‚ | ||
| 37 | |||
| 38 | ## Dvorak | ||
| 39 | 1930年代㫠Dr. August Dvorak ã«ã‚ˆã£ã¦é–‹ç™ºã•れãŸä»£æ›¿ã‚ーボードレイアウト。Dvorak Simplified Keyboard ã®çŸç¸®å½¢ã€‚ | ||
| 40 | |||
| 41 | ## 動的マクム| ||
| 42 | ã‚ーボードã«è¨˜éŒ²ã•れãŸãƒžã‚¯ãƒã§ã€ã‚ーボードã®ãƒ—ラグを抜ãã‹ã€ã‚³ãƒ³ãƒ”ュータをå†èµ·å‹•ã™ã‚‹ã¨å¤±ã‚れã¾ã™ã€‚ | ||
| 43 | |||
| 44 | * [動的マクãƒãƒ‰ã‚ュメント](ja/feature_dynamic_macros.md) | ||
| 45 | |||
| 46 | ## Eclipse | ||
| 47 | 多ãã® C 開発者ã«äººæ°—ã®ã‚ã‚‹ IDE。 | ||
| 48 | |||
| 49 | * [Eclipse ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—æ‰‹é †](ja/other_eclipse.md) | ||
| 50 | |||
| 51 | ## ファームウェア | ||
| 52 | MCU を制御ã™ã‚‹ã‚½ãƒ•トウェア | ||
| 53 | |||
| 54 | ## git | ||
| 55 | コマンドラインã§ä½¿ç”¨ã•れるãƒãƒ¼ã‚¸ãƒ§ãƒ³ç®¡ç†ã‚½ãƒ•トウェア | ||
| 56 | |||
| 57 | ## GitHub | ||
| 58 | QMK プãƒã‚¸ã‚§ã‚¯ãƒˆã®ã»ã¨ã‚“ã©ã‚’ホストã™ã‚‹ Web サイト。gitã€èª²é¡Œç®¡ç†ã€ãŠã‚ˆã³ QMK ã®å®Ÿè¡Œã«å½¹ç«‹ã¤ãã®ä»–ã®æ©Ÿèƒ½ã‚’çµ±åˆã—ã¦æä¾›ã—ã¾ã™ã€‚ | ||
| 59 | |||
| 60 | ## ISP | ||
| 61 | インシステムプãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã€‚外部ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã¨ JTAG ピンを使ã£ã¦ AVR ãƒãƒƒãƒ—をプãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã™ã‚‹æ–¹æ³•。 | ||
| 62 | |||
| 63 | ## hid_listen | ||
| 64 | ã‚ーボードã‹ã‚‰ãƒ‡ãƒãƒƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å—ä¿¡ã™ã‚‹ãŸã‚ã®ã‚¤ãƒ³ã‚¿ãƒ•ェース。[QMK Flasher](https://github.com/qmk/qmk_flasher) ã‚ã‚‹ã„㯠[PJRC ã® hid_listen](https://www.pjrc.com/teensy/hid_listen.html) を使ã£ã¦ã“れらã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’見るã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
| 65 | |||
| 66 | ## ã‚ーコード | ||
| 67 | 特定ã®ã‚ーを表ã™2ãƒã‚¤ãƒˆã®æ•°å€¤ã€‚`0x00`-`0xFF` ã¯[基本ã‚ーコード](ja/keycodes_basic.md)ã«ä½¿ã‚れã€`0x100`-`0xFFFF` 㯠[Quantum ã‚ーコード](ja/quantum_keycodes.md) ã«ä½¿ã‚れã¾ã™ã€‚ | ||
| 68 | |||
| 69 | ## ã‚ーダウン | ||
| 70 | ã‚ãƒ¼ãŒæŠ¼ã•ã‚ŒãŸæ™‚ã«ç™ºç”Ÿã—ã€ã‚ãƒ¼ãŒæ”¾ã•れるå‰ã«å®Œäº†ã™ã‚‹ã‚¤ãƒ™ãƒ³ãƒˆã€‚ | ||
| 71 | |||
| 72 | ## ã‚ーアップ | ||
| 73 | ã‚ãƒ¼ãŒæ”¾ã•ã‚ŒãŸæ™‚ã«ç™ºç”Ÿã™ã‚‹ã‚¤ãƒ™ãƒ³ãƒˆã€‚ | ||
| 74 | |||
| 75 | ## ã‚ーマップ | ||
| 76 | 物ç†çš„ãªã‚ーボードレイアウトã«ãƒžãƒƒãƒ—ã•れãŸã‚ーコードã®é…列。ã‚ãƒ¼ã®æŠ¼ä¸‹ãŠã‚ˆã³ãƒªãƒªãƒ¼ã‚¹æ™‚ã«å‡¦ç†ã•れã¾ã™ã€‚ | ||
| 77 | |||
| 78 | ## レイヤー | ||
| 79 | 1ã¤ã®ã‚ーãŒè¤‡æ•°ã®ç›®çš„ã‚’æžœãŸã™ãŸã‚ã«ä½¿ã‚れる抽象化。最上ä½ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ¬ã‚¤ãƒ¤ãƒ¼ãŒå„ªå…ˆã•れã¾ã™ã€‚ | ||
| 80 | |||
| 81 | ## リーダーã‚ー | ||
| 82 | リーダーã‚ーã«ç¶šã‘ã¦1, 2 ã‚ã‚‹ã„ã¯3ã¤ã®ã‚ーをタップã™ã‚‹ã“ã¨ã§ã€ã‚ãƒ¼ã®æŠ¼ä¸‹ã‚ã‚‹ã„ã¯ä»–ã® quantum 機能をアクティブã«ã™ã‚‹æ©Ÿèƒ½ã€‚ | ||
| 83 | |||
| 84 | * [リーダーã‚ードã‚ュメント](ja/feature_leader_key.md) | ||
| 85 | |||
| 86 | ## LED | ||
| 87 | 発光ダイオード。ã‚ーボードã®è¡¨ç¤ºã«ä½¿ã‚れる最も一般的ãªãƒ‡ãƒã‚¤ã‚¹ã€‚ | ||
| 88 | |||
| 89 | ## Make | ||
| 90 | å…¨ã¦ã®ã‚½ãƒ¼ã‚¹ãƒ•ァイルをコンパイルã™ã‚‹ãŸã‚ã«ä½¿ã‚れるソフトウェアパッケージ。ã‚ーボードファームウェアをコンパイルã™ã‚‹ãŸã‚ã«ã€æ§˜ã€…ãªã‚ªãƒ—ションを指定ã—㦠`make` を実行ã—ã¾ã™ã€‚ | ||
| 91 | |||
| 92 | ## マトリックス | ||
| 93 | MCU ãŒã‚ˆã‚Šå°‘ãªã„ピン数ã§ã‚ー押下を検出ã§ãるよã†ã«ã™ã‚‹åˆ—ã¨è¡Œã®é…線パターン。マトリックスã«ã¯å¤šãã®å ´åˆã€NKRO ã‚’å¯èƒ½ã«ã™ã‚‹ãŸã‚ã®ãƒ€ã‚¤ã‚ªãƒ¼ãƒ‰ãŒçµ„ã¿è¾¼ã¾ã‚Œã¦ã„ã¾ã™ã€‚ | ||
| 94 | |||
| 95 | ## マクム| ||
| 96 | å˜ä¸€ã®ã‚ーã®ã¿ã‚’押ã—ãŸå¾Œã§ã€è¤‡æ•°ã®ã‚ー押下イベント (HID レãƒãƒ¼ãƒˆ) ã‚’é€ä¿¡ã§ãる機能。 | ||
| 97 | |||
| 98 | * [マクãƒãƒ‰ã‚ュメント](ja/feature_macros.md) | ||
| 99 | |||
| 100 | ## MCU | ||
| 101 | マイクãƒã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ãƒ¦ãƒ‹ãƒƒãƒˆã€‚ã‚ーボードを動ã‹ã™ãƒ—ãƒã‚»ãƒƒã‚µã€‚ | ||
| 102 | |||
| 103 | ## モディファイア | ||
| 104 | 別ã®ã‚ーを入力ã™ã‚‹é–“押ã—ãŸã¾ã¾ã«ã—ã¦ã€ãã®ã‚ーã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’変更ã™ã‚‹ã‚ー。例ã¨ã—ã¦ã€Ctrlã€Alt ãŠã‚ˆã³ Shift ãŒã‚りã¾ã™ã€‚ | ||
| 105 | (訳注:モディファイヤã€ãƒ¢ãƒ‡ã‚£ãƒ•ァイヤã‚ーã€ä¿®é£¾ã‚ーãªã©ã€è¨³èªžãŒçµ±ä¸€ã•れã¦ã„ã¾ã›ã‚“ãŒåŒã˜ã‚‚ã®ã§ã™) | ||
| 106 | |||
| 107 | ## マウスã‚ー | ||
| 108 | ã‚ーボードã‹ã‚‰ãƒžã‚¦ã‚¹ã‚«ãƒ¼ã‚½ãƒ«ã‚’制御ã—ã€ã‚¯ãƒªãƒƒã‚¯ã§ãる機能。 | ||
| 109 | |||
| 110 | * [マウスã‚ードã‚ュメント](ja/feature_mouse_keys.md) | ||
| 111 | |||
| 112 | ## N ã‚ーãƒãƒ¼ãƒ«ã‚ªãƒ¼ãƒãƒ¼ (NKRO) | ||
| 113 | 一度ã«ä»»æ„ã®æ•°ã®ã‚ãƒ¼ã®æŠ¼ä¸‹ã‚’é€ä¿¡ã§ãã‚‹ã‚ーボードã«å½“ã¦ã¯ã¾ã‚‹ç”¨èªžã€‚ | ||
| 114 | |||
| 115 | ## ワンショットモディファイア | ||
| 116 | 別ã®ã‚ãƒ¼ãŒæ”¾ã•れるã¾ã§æŠ¼ã•れã¦ã„ã‚‹ã‹ã®ã‚ˆã†ã«æ©Ÿèƒ½ã™ã‚‹ãƒ¢ãƒ‡ã‚£ãƒ•ァイア。ã‚ーを押ã—ã¦ã„ã‚‹é–“ã« mod を押ã—ç¶šã‘ã‚‹ã®ã§ã¯ãªãã€mod を押ã—ã¦ã‹ã‚‰ã‚ーを押ã™ã“ã¨ãŒã§ãã¾ã™ã€‚スティッã‚ーã‚ーã¾ãŸã¯ãƒ‡ãƒƒãƒ‰ã‚ーã¨ã‚‚呼ã³ã¾ã™ã€‚ | ||
| 117 | |||
| 118 | ## ProMicro | ||
| 119 | 低コスト㮠AVR 開発ボード。ã“ã®ãƒ‡ãƒã‚¤ã‚¹ã®ã‚¯ãƒãƒ¼ãƒ³ã¯ ebay ã§éžå¸¸ã«å®‰ä¾¡(5ドル未満)ã«è¦‹ã¤ã‹ã‚‹ã“ã¨ãŒã‚りã¾ã™ãŒã€å¤šãã®å ´åˆ pro micro ã®æ›¸ãè¾¼ã¿ã«è‹¦åŠ´ã—ã¾ã™ã€‚ | ||
| 120 | |||
| 121 | ## プルリクエスト | ||
| 122 | QMK ã«ã‚³ãƒ¼ãƒ‰ã‚’é€ä¿¡ã™ã‚‹ãƒªã‚¯ã‚¨ã‚¹ãƒˆã€‚å…¨ã¦ã®ãƒ¦ãƒ¼ã‚¶ãŒå€‹äººã®ã‚ーマップã®ãƒ—ルリクエストをé€ä¿¡ã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™ã€‚ | ||
| 123 | |||
| 124 | ## QWERTY | ||
| 125 | 標準ã®è‹±èªžã‚ーボードレイアウト。多ãã®å ´åˆã€ä»–ã®è¨€èªžã®æ¨™æº–レイアウトã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆã€‚ã‚ãƒ¼ãƒœãƒ¼ãƒ‰ã®æœ€åˆã®6æ–‡å—ã‹ã‚‰å‘½åã•れã¾ã—ãŸã€‚ | ||
| 126 | |||
| 127 | ## QWERTZ | ||
| 128 | 標準的㪠Deutsche (ドイツ語) ã‚ーボードレイアウト。ã‚ãƒ¼ãƒœãƒ¼ãƒ‰ã®æœ€åˆã®6æ–‡å—ã‹ã‚‰å‘½åã•れã¾ã—ãŸã€‚ | ||
| 129 | |||
| 130 | ## ãƒãƒ¼ãƒ«ã‚ªãƒ¼ãƒãƒ¼ | ||
| 131 | ã‚ãƒ¼ãŒæ—¢ã«æŠ¼ã•れã¦ã„ã‚‹é–“ã«ã‚ーを押ã™ã“ã¨ã‚’指ã™ç”¨èªžã€‚ä¼¼ãŸã‚‚ã®ã« 2KROã€6KROã€NKRO ãŒå«ã¾ã‚Œã¾ã™ã€‚ | ||
| 132 | |||
| 133 | ## スã‚ャンコード | ||
| 134 | å˜ä¸€ã®ã‚ーを表㙠USB 経由㮠HID レãƒãƒ¼ãƒˆã®ä¸€éƒ¨ã¨ã—ã¦é€ä¿¡ã•れる1ãƒã‚¤ãƒˆã®æ•°å€¤ã€‚ã“れらã®å€¤ã¯ã€[USB-IF](http://www.usb.org/) ãŒç™ºè¡Œã™ã‚‹ [HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) ã«è¨˜è¼‰ã•れã¦ã„ã¾ã™ã€‚ | ||
| 135 | |||
| 136 | ## スペースカデットシフト | ||
| 137 | å·¦ã¾ãŸã¯å³ shift ã‚’1回以上タップã™ã‚‹ã“ã¨ã§ã€æ§˜ã€…ãªã‚¿ã‚¤ãƒ—ã®æ‹¬å¼§ã‚’入力ã§ãる特別㪠shift ã‚ーã®ã‚»ãƒƒãƒˆã€‚ | ||
| 138 | |||
| 139 | * [スペースカデットシフトドã‚ュメント](ja/feature_space_cadet_shift.md) | ||
| 140 | |||
| 141 | ## タップ | ||
| 142 | ã‚ーを押ã—ã¦æ”¾ã™ã€‚状æ³ã«ã‚ˆã£ã¦ã¯ã‚ーダウンイベントã¨ã‚ーアップイベントを区別ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ãŒã€ã‚¿ãƒƒãƒ—ã¯å¸¸ã«ä¸¡æ–¹ã‚’ä¸€åº¦ã«æŒ‡ã—ã¾ã™ã€‚ | ||
| 143 | |||
| 144 | ## タップダンス | ||
| 145 | 押ã™å›žæ•°ã«åŸºã¥ã„ã¦ã€åŒã˜ã‚ーã«è¤‡æ•°ã®ã‚ーコードを割り当ã¦ã‚‹ã“ã¨ãŒã§ãる機能。 | ||
| 146 | |||
| 147 | * [タップダンスドã‚ュメント](ja/feature_tap_dance.md) | ||
| 148 | |||
| 149 | ## Teensy | ||
| 150 | 手é…ç·šã§ã®çµ„ã¿ç«‹ã¦ã«ã‚ˆã用ã„られる低コスト㮠AVR 開発ボード。halfkay ブートãƒãƒ¼ãƒ€ã«ã‚ˆã£ã¦æ›¸ãè¾¼ã¿ãŒéžå¸¸ã«ç°¡å˜ã«ãªã‚‹ãŸã‚ã«ã€æ•°ãƒ‰ãƒ«é«˜ã„ã«ã‚‚ã‹ã‹ã‚ら㚠teensy ãŒã—ã°ã—ã°é¸æŠžã•れã¾ã™ã€‚ | ||
| 151 | |||
| 152 | ## アンダーライト | ||
| 153 | ã‚ーボードã®ä¸‹å´ã‚’照ら㙠LED ã®ç·ç§°ã€‚ã“れら㮠LED ã¯é€šå¸¸ PCB ã®åº•é¢ã‹ã‚‰ã‚ーボードãŒç½®ã‹ã‚Œã¦ã„る表é¢ã«å‘ã‘ã¦ç…§ã‚‰ã—ã¾ã™ã€‚ | ||
| 154 | |||
| 155 | ## ユニコード | ||
| 156 | å¤§è¦æ¨¡ãªã‚³ãƒ³ãƒ”ュータã®ä¸–界ã§ã¯ã€ãƒ¦ãƒ‹ã‚³ãƒ¼ãƒ‰ã¯ä»»æ„ã®è¨€èªžã§æ–‡å—を表ç¾ã™ã‚‹ãŸã‚ã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–¹å¼ã®ã‚»ãƒƒãƒˆã§ã™ã€‚QMK ã«é–¢ã—ã¦ã¯ã€æ§˜ã€…㪠OS スã‚ームを使ã£ã¦ã‚¹ã‚ャンコードã®ä»£ã‚りã«ãƒ¦ãƒ‹ã‚³ãƒ¼ãƒ‰ã‚³ãƒ¼ãƒ‰ãƒã‚¤ãƒ³ãƒˆã‚’é€ä¿¡ã™ã‚‹ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚ | ||
| 157 | |||
| 158 | * [ユニコードドã‚ュメント](ja/feature_unicode.md) | ||
| 159 | |||
| 160 | ## å˜ä½“テスト | ||
| 161 | QMK ã«å¯¾ã—ã¦è‡ªå‹•テストを実行ã™ã‚‹ãŸã‚ã®ãƒ•レームワーク。å˜ä½“テストã¯ã€å¤‰æ›´ãŒä½•も壊ã•ãªã„ã“ã¨ã‚’確信ã™ã‚‹ã®ã«å½¹ç«‹ã¡ã¾ã™ã€‚ | ||
| 162 | |||
| 163 | * [å˜ä½“テストドã‚ュメント](ja/unit_testing.md) | ||
| 164 | |||
| 165 | ## USB | ||
| 166 | ユニãƒãƒ¼ã‚µãƒ«ã‚·ãƒªã‚¢ãƒ«ãƒã‚¹ã€‚ã‚ãƒ¼ãƒœãƒ¼ãƒ‰ç”¨ã®æœ€ã‚‚ä¸€èˆ¬çš„ãªæœ‰ç·šã‚¤ãƒ³ã‚¿ãƒ•ェース。 | ||
| 167 | |||
| 168 | ## USB ホスト (ã‚ã‚‹ã„ã¯å˜ã«ãƒ›ã‚¹ãƒˆ) | ||
| 169 | USB ホストã¯ã€ã‚ãªãŸã®ã‚³ãƒ³ãƒ”ュータã€ã¾ãŸã¯ã‚ーボードãŒå·®ã—è¾¼ã¾ã‚Œã¦ã„るデãƒã‚¤ã‚¹ã®ã“ã¨ã§ã™ã€‚ | ||
| 170 | |||
| 171 | # 探ã—ã¦ã„る用語ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã‹ï¼Ÿ | ||
| 172 | |||
| 173 | 質å•ã«ã¤ã„ã¦ã® [issue ã‚’é–‹ã„ã¦](https://github.com/qmk/qmk_firmware/issues) ã€è³ªå•ã—ãŸç”¨èªžã«ã¤ã„ã¦ã“ã“ã«è¿½åŠ ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã•らã«è‰¯ã„ã®ã¯ã€å®šç¾©ã«ã¤ã„ã¦ã®ãƒ—ルリクエストを開ãã“ã¨ã§ã™ã€‚:) | ||
diff --git a/docs/ja/reference_info_json.md b/docs/ja/reference_info_json.md new file mode 100644 index 000000000..708f7c19a --- /dev/null +++ b/docs/ja/reference_info_json.md | |||
| @@ -0,0 +1,78 @@ | |||
| 1 | # `info.json` | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.46:docs/reference_info_json.md | ||
| 5 | git diff 0.9.46 HEAD -- docs/reference_info_json.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | ã“ã®ãƒ•ァイル㯠[QMK API](https://github.com/qmk/qmk_api) ã«ã‚ˆã£ã¦ä½¿ã‚れã¾ã™ã€‚ã“ã®ãƒ•ァイル㯠[QMK Configurator](https://config.qmk.fm/) ãŒã‚ーボードã®ç”»åƒã‚’表示ã™ã‚‹ãŸã‚ã«å¿…è¦ãªæƒ…å ±ã‚’å«ã‚“ã§ã„ã¾ã™ã€‚ã“ã“ã«ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’è¨å®šã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ | ||
| 9 | |||
| 10 | ã“ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’指定ã™ã‚‹ãŸã‚ã«ã€`qmk_firmware/keyboards/<name>` ã®ä¸‹ã®å…¨ã¦ã®ãƒ¬ãƒ™ãƒ«ã§ `info.json` を作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れらã®ãƒ•ァイルã¯çµåˆã•れã€ã‚ˆã‚Šå…·ä½“çš„ãªãƒ•ァイルãŒãã†ã§ã¯ãªã„ファイルã®ã‚ーを上書ãã—ã¾ã™ã€‚ã¤ã¾ã‚Šã€ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿æƒ…å ±ã‚’è¤‡è£½ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。例ãˆã°ã€`qmk_firmware/keyboards/clueboard/info.json` 㯠`manufacturer` ãŠã‚ˆã³ `maintainer` を指定ã—ã€`qmk_firmware/keyboards/clueboard/66/info.json` 㯠Clueboard 66% ã«ã¤ã„ã¦ã®ã‚ˆã‚Šå…·ä½“çš„ãªæƒ…å ±ã‚’æŒ‡å®šã—ã¾ã™ã€‚ | ||
| 11 | |||
| 12 | ## `info.json` ã®å½¢å¼ | ||
| 13 | |||
| 14 | `info.json` ファイルã¯è¨å®šå¯èƒ½ãªä»¥ä¸‹ã®ã‚ーをæŒã¤ JSON å½¢å¼ã®è¾žæ›¸ã§ã™ã€‚å…¨ã¦ã‚’è¨å®šã™ã‚‹å¿…è¦ã¯ãªãã€ã‚ーボードã«é©ç”¨ã™ã‚‹ã‚ーã ã‘ã‚’è¨å®šã—ã¾ã™ã€‚ | ||
| 15 | |||
| 16 | * `keyboard_name` | ||
| 17 | * ã‚ーボードを説明ã™ã‚‹è‡ªç”±å½¢å¼ã®ãƒ†ã‚スト文å—列。 | ||
| 18 | * 例: `Clueboard 66%` | ||
| 19 | * `url` | ||
| 20 | * ã‚ーボードã®è£½å“ページã€[QMK.fm/keyboards](https://qmk.fm/keyboards) ã®ãƒšãƒ¼ã‚¸ã€ã‚ã‚‹ã„ã¯ã‚ーボードã«é–¢ã™ã‚‹æƒ…å ±ã‚’èª¬æ˜Žã™ã‚‹ä»–ã®ãƒšãƒ¼ã‚¸ã® URL。 | ||
| 21 | * `maintainer` | ||
| 22 | * メンテナ㮠GitHub ã®ãƒ¦ãƒ¼ã‚¶åã€ã‚ã‚‹ã„ã¯ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãŒç®¡ç†ã™ã‚‹ã‚ーボードã®å ´åˆã¯ `qmk` | ||
| 23 | * `width` | ||
| 24 | * ã‚ーå˜ä½ã§ã®ã‚ーボードã®å¹… | ||
| 25 | * `height` | ||
| 26 | * ã‚ーå˜ä½ã§ã®ã‚ーボードã®é«˜ã• | ||
| 27 | * `layouts` | ||
| 28 | * 物ç†çš„ãªãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆè¡¨ç¾ã€‚詳細ã¯ä»¥ä¸‹ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’見ã¦ãã ã•ã„。 | ||
| 29 | |||
| 30 | ### レイアウトã®å½¢å¼ | ||
| 31 | |||
| 32 | `info.json` ファイル内ã®è¾žæ›¸ã® `layouts` 部分ã¯ã€å¹¾ã¤ã‹ã®å…¥ã‚Œåã«ãªã£ãŸè¾žæ›¸ã‚’å«ã¿ã¾ã™ã€‚外å´ã®ãƒ¬ã‚¤ãƒ¤ãƒ¼ã¯ QMK レイアウトマクãƒã§æ§‹æˆã•れã¾ã™ã€‚例ãˆã°ã€`LAYOUT_ansi` ã‚ã‚‹ã„㯠`LAYOUT_iso`。å„レイアウトマクãƒå†…ã«ã¯ã€`width`〠`height`ã€`key_count` ã®ã‚ーãŒã‚りã¾ã™ã€‚ã“れらã¯è‡ªæ˜Žã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 | ||
| 33 | |||
| 34 | * `width` | ||
| 35 | * オプション: ã‚ーå˜ä½ã§ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã®å¹… | ||
| 36 | * `height` | ||
| 37 | * オプション: ã‚ーå˜ä½ã§ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã®é«˜ã• | ||
| 38 | * `key_count` | ||
| 39 | * **å¿…é ˆ**: ã“ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã®ã‚ãƒ¼ã®æ•° | ||
| 40 | * `layout` | ||
| 41 | * 物ç†ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’説明ã™ã‚‹ã‚ー辞書ã®ãƒªã‚¹ãƒˆã€‚è©³ç´°ã¯æ¬¡ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’見ã¦ãã ã•ã„。 | ||
| 42 | |||
| 43 | ### ã‚ãƒ¼è¾žæ›¸å½¢å¼ | ||
| 44 | |||
| 45 | レイアウトã®å„ã‚ー辞書ã¯ã€ã‚ーã®ç‰©ç†ãƒ—ãƒãƒ‘ティを記述ã—ã¾ã™ã€‚<http://keyboard-layout-editor.com> ã® Raw Code ã«ç²¾é€šã—ã¦ã„ã‚‹å ´åˆã€å¤šãã®æ¦‚念ãŒåŒã˜ã§ã‚ã‚‹ã“ã¨ãŒåˆ†ã‹ã‚Šã¾ã™ã€‚å¯èƒ½ãªé™ã‚ŠåŒã˜ã‚ーåã¨ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã®é¸æŠžã‚’å†åˆ©ç”¨ã—ã¾ã™ãŒã€keyboard-layout-editor ã¨ã¯ç•°ãªã£ã¦å„ã‚ーã¯ã‚¹ãƒ†ãƒ¼ãƒˆãƒ¬ã‚¹ã§ã€å‰ã®ã‚ーã‹ã‚‰ãƒ—ãƒãƒ‘ティを継承ã—ã¾ã›ã‚“。 | ||
| 46 | |||
| 47 | å…¨ã¦ã®ã‚ーã®ä½ç½®ã¨å›žè»¢ã¯ã€ã‚ーボードã®å·¦ä¸Šã¨ã€å„ã‚ーã®å·¦ä¸Šã‚’基準ã«ã—ã¦æŒ‡å®šã•れã¾ã™ã€‚ | ||
| 48 | |||
| 49 | * `x` | ||
| 50 | * **å¿…é ˆ**: 水平軸ã§ã®ã‚ーã®çµ¶å¯¾ä½ç½®(ã‚ーå˜ä½)。 | ||
| 51 | * `y` | ||
| 52 | * **å¿…é ˆ**: 垂直軸ã§ã®ã‚ーã®çµ¶å¯¾ä½ç½®(ã‚ーå˜ä½)。 | ||
| 53 | * `w` | ||
| 54 | * ã‚ーå˜ä½ã§ã®ã‚ーã®å¹…。`ks` ãŒæŒ‡å®šã•れãŸå ´åˆã¯ç„¡è¦–ã•れã¾ã™ã€‚デフォルト: `1` | ||
| 55 | * `h` | ||
| 56 | * ã‚ーå˜ä½ã§ã®ã‚ーã®é«˜ã•。`ks` ãŒæŒ‡å®šã•れãŸå ´åˆã¯ç„¡è¦–ã•れã¾ã™ã€‚デフォルト: `1` | ||
| 57 | * `r` | ||
| 58 | * ã‚ーを回転ã•ã›ã‚‹æ™‚計回りã®è§’度。 | ||
| 59 | * `rx` | ||
| 60 | * ã‚ーを回転ã•ã›ã‚‹ç‚¹ã®æ°´å¹³è»¸ã«ãŠã‘る絶対ä½ç½®ã€‚デフォルト: `x` | ||
| 61 | * `ry` | ||
| 62 | * ã‚ーを回転ã•ã›ã‚‹ç‚¹ã®åž‚直軸ã«ãŠã‘る絶対ä½ç½®ã€‚デフォルト: `y` | ||
| 63 | * `ks` | ||
| 64 | * ã‚ー形状: ã‚ーå˜ä½ã§é ‚点を列挙ã™ã‚‹ã“ã¨ã§ãƒãƒªã‚´ãƒ³ã‚’定義ã—ã¾ã™ã€‚ | ||
| 65 | * **é‡è¦**: ã“れらã¯ã‚ーã®å·¦ä¸Šã‹ã‚‰ã®ç›¸å¯¾ä½ç½®ã§ã€çµ¶å¯¾ä½ç½®ã§ã¯ã‚りã¾ã›ã‚“。 | ||
| 66 | * ISO Enter ã®ä¾‹: `[ [0,0], [1.5,0], [1.5,2], [0.25,2], [0.25,1], [0,1], [0,0] ]` | ||
| 67 | * `label` | ||
| 68 | * マトリックス内ã®ã“ã®ä½ç½®ã«ã¤ã‘ã‚‹åå‰ã€‚ | ||
| 69 | * ã“れã¯é€šå¸¸ PCB 上ã§ã“ã®ä½ç½®ã«ã‚·ãƒ«ã‚¯ã‚¹ã‚¯ãƒªãƒ¼ãƒ³å°åˆ·ã•れるもã®ã¨åŒã˜åå‰ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 | ||
| 70 | |||
| 71 | ## メタデータã¯ã©ã®ã‚ˆã†ã«å…¬é–‹ã•れã¾ã™ã‹ï¼Ÿ | ||
| 72 | |||
| 73 | ã“ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã¯ä¸»ã«2ã¤ã®æ–¹æ³•ã§ä½¿ã‚れã¾ã™: | ||
| 74 | |||
| 75 | * Web ベース㮠configurator ãŒå‹•的㫠UI を生æˆã§ãるよã†ã«ã™ã‚‹ã€‚ | ||
| 76 | * æ–°ã—ã„ `make keyboard:keymap:qmk` ターゲットをサãƒãƒ¼ãƒˆã™ã‚‹ã€‚ã“れã¯ã€ã“ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’ファームウェアã«ãƒãƒ³ãƒ‰ãƒ«ã—㦠QMK Toolbox をよりスマートã«ã—ã¾ã™ã€‚ | ||
| 77 | |||
| 78 | Configurator ã®ä½œæˆè€…ã¯ã€JSON API ã®ä½¿ç”¨ã«é–¢ã™ã‚‹è©³ç´°ã«ã¤ã„ã¦ã€[QMK Compiler](https://docs.api.qmk.fm/using-the-api) ドã‚ュメントをå‚ç…§ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ | ||
diff --git a/docs/ja/serial_driver.md b/docs/ja/serial_driver.md new file mode 100644 index 000000000..72071f4f7 --- /dev/null +++ b/docs/ja/serial_driver.md | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | # 'シリアル' ドライム| ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.51:docs/serial_drive.md | ||
| 5 | git diff 0.9.51 HEAD -- docs/serial_drive.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | ã“ã®ãƒ‰ãƒ©ã‚¤ãƒã¯[分割ã‚ーボード](ja/feature_split_keyboard.md) 機能ã«ä½¿ã„ã¾ã™ã€‚ | ||
| 9 | |||
| 10 | ?> ã“ã®æ–‡ç« ã§ã®ã‚·ãƒªã‚¢ãƒ«ã¯ã€UART/USART/RS485/RS232 è¦æ ¼ã®å®Ÿè£…ã§ã¯ãªãã€**一度ã«1ãƒ“ãƒƒãƒˆã®æƒ…å ±ã‚’é€ä¿¡ã™ã‚‹ã‚‚ã®**ã¨ã—ã¦èªã¾ã‚Œã‚‹ã¹ãã§ã™ã€‚ | ||
| 11 | |||
| 12 | ã“ã®ã‚«ãƒ†ã‚´ãƒªã®å…¨ã¦ã®ãƒ‰ãƒ©ã‚¤ãƒã«ã¯ä»¥ä¸‹ã®ç‰¹å¾´ãŒã‚りã¾ã™: | ||
| 13 | * 1本ã®ç·šä¸Šã§ãƒ‡ãƒ¼ã‚¿ã¨ä¿¡å·ã‚’æä¾› | ||
| 14 | * シングルマスタã€ã‚·ãƒ³ã‚°ãƒ«ã‚¹ãƒ¬ãƒ¼ãƒ–ã«é™å®š | ||
| 15 | |||
| 16 | ## サãƒãƒ¼ãƒˆã•れるドライãƒã®ç¨®é¡ž | ||
| 17 | |||
| 18 | | | AVR | ARM | | ||
| 19 | |-------------------|--------------------|--------------------| | ||
| 20 | | bit bang | :heavy_check_mark: | :heavy_check_mark: | | ||
| 21 | | USART Half-duplex | | :heavy_check_mark: | | ||
| 22 | |||
| 23 | ## ドライãƒè¨å®š | ||
| 24 | |||
| 25 | ### Bitbang | ||
| 26 | デフォルトã®ãƒ‰ãƒ©ã‚¤ãƒã€‚è¨å®šãŒãªã„å ´åˆã¯ã“ã®ãƒ‰ãƒ©ã‚¤ãƒãŒæƒ³å®šã•れã¾ã™ã€‚è¨å®šã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã‚’ rules.mk ã«è¿½åŠ ã—ã¾ã™: | ||
| 27 | |||
| 28 | ```make | ||
| 29 | SERIAL_DRIVER = bitbang | ||
| 30 | ``` | ||
| 31 | |||
| 32 | config.h を介ã—ã¦ãƒ‰ãƒ©ã‚¤ãƒã‚’è¨å®šã—ã¾ã™: | ||
| 33 | ```c | ||
| 34 | #define SOFT_SERIAL_PIN D0 // ã¾ãŸã¯ D1, D2, D3, E6 | ||
| 35 | #define SELECT_SOFT_SERIAL_SPEED 1 // ã¾ãŸã¯ 0, 2, 3, 4, 5 | ||
| 36 | // 0: ç´„ 189kbps (実験目的ã®ã¿) | ||
| 37 | // 1: 約 137kbps (デフォルト) | ||
| 38 | // 2: ç´„ 75kbps | ||
| 39 | // 3: ç´„ 39kbps | ||
| 40 | // 4: ç´„ 26kbps | ||
| 41 | // 5: ç´„ 20kbps | ||
| 42 | ``` | ||
| 43 | |||
| 44 | #### ARM | ||
| 45 | |||
| 46 | !> bitbang ドライãƒã¯ bitbang WS2812 ドライãƒã¨æŽ¥ç¶šã®å•題ãŒã‚りã¾ã™ | ||
| 47 | |||
| 48 | 上記ã®ä¸€èˆ¬çš„ãªã‚ªãƒ—ションã«åŠ ãˆã¦ã€halconf.h ã§ `PAL_USE_CALLBACKS` 機能もオンã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ | ||
| 49 | |||
| 50 | ### USART Half-duplex | ||
| 51 | 通信㌠USART ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãƒ‡ãƒã‚¤ã‚¹ã«é€ä¿¡ã•れる STM32 ボードãŒå¯¾è±¡ã§ã™ã€‚ã“れã«ã‚ˆã‚Šé«˜é€Ÿã§æ£ç¢ºãªã‚¿ã‚¤ãƒŸãƒ³ã‚°ã‚’æä¾›ã§ãã‚‹ã“ã¨ãŒåˆ©ç‚¹ã§ã™ã€‚ã“ã®ãƒ‰ãƒ©ã‚¤ãƒã® `SOFT_SERIAL_PIN` ã¯ã€è¨å®šã•れ㟠USART TX ピンã§ã™ã€‚**TX ピンã«é©åˆ‡ãªãƒ—ルアップ抵抗ãŒå¿…è¦ã§ã™**。è¨å®šã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã‚’ rules.mk ã«è¿½åŠ ã—ã¾ã™: | ||
| 52 | |||
| 53 | ```make | ||
| 54 | SERIAL_DRIVER = usart | ||
| 55 | ``` | ||
| 56 | |||
| 57 | config.h を介ã—ã¦ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚’è¨å®šã—ã¾ã™: | ||
| 58 | ```c | ||
| 59 | #define SOFT_SERIAL_PIN B6 // USART TX ピン | ||
| 60 | #define SELECT_SOFT_SERIAL_SPEED 1 // ã¾ãŸã¯ 0, 2, 3, 4, 5 | ||
| 61 | // 0: 約 460800 ボー | ||
| 62 | // 1: 約 230400 ボー (デフォルト) | ||
| 63 | // 2: 約 115200 ボー | ||
| 64 | // 3: 約 57600 ボー | ||
| 65 | // 4: 約 38400 ボー | ||
| 66 | // 5: 約 19200 ボー | ||
| 67 | #define SERIAL_USART_DRIVER SD1 // TX ピン㮠USART ドライãƒã€‚デフォルト㯠SD1 | ||
| 68 | #define SERIAL_USART_TX_PAL_MODE 7 // 「代替機能〠ピン。MCU ã®é©åˆ‡ãªå€¤ã«ã¤ã„ã¦ã¯ã€ãれãžã‚Œã®ãƒ‡ãƒ¼ã‚¿ã‚·ãƒ¼ãƒˆã‚’見ã¦ãã ã•ã„。デフォルト㯠7 | ||
| 69 | ``` | ||
| 70 | |||
| 71 | ã¾ãŸã€ChibiOS `SERIAL` 機能を有効ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™: | ||
| 72 | * ã‚ーボード㮠halconf.h: `#define HAL_USE_SERIAL TRUE` | ||
| 73 | * ã‚ーボード㮠mcuconf.h: `#define STM32_SERIAL_USE_USARTn TRUE` (ã“ã“ã§ã€'n' 㯠MCU ã§é¸æŠžã—㟠USART ã®ãƒšãƒªãƒ•ェラル番å·ã¨ä¸€è‡´) | ||
| 74 | |||
| 75 | å¿…è¦ãªæ§‹æˆã¯ã€`UART` 周辺機器ã§ã¯ãªãã€`SERIAL` 周辺機器ã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。 | ||
diff --git a/docs/ja/support.md b/docs/ja/support.md new file mode 100644 index 000000000..01c2d41d1 --- /dev/null +++ b/docs/ja/support.md | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | # 助ã‘ã‚’å¾—ã‚‹ | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.51:docs/support.md | ||
| 5 | git diff 0.9.51 HEAD -- docs/support.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | QMK ã«é–¢ã—ã¦åŠ©ã‘ã‚’å¾—ã‚‹ãŸã‚ã®å¤šãã®ãƒªã‚½ãƒ¼ã‚¹ãŒã‚りã¾ã™ã€‚ | ||
| 9 | |||
| 10 | コミュニティスペースã«å‚åŠ ã™ã‚‹å‰ã«[行動è¦ç¯„](https://qmk.fm/coc/)ã‚’èªã‚“ã§ãã ã•ã„。 | ||
| 11 | |||
| 12 | ## リアルタイムãƒãƒ£ãƒƒãƒˆ | ||
| 13 | |||
| 14 | 何ã‹ã«ã¤ã„ã¦åŠ©ã‘ãŒå¿…è¦ãªå ´åˆã¯ã€è¿…速ãªã‚µãƒãƒ¼ãƒˆã‚’å—ã‘ã‚‹ãŸã‚ã®æœ€è‰¯ã®å ´æ‰€ã¯ã€[Discord Server](https://discord.gg/Uq7gcHh) ã§ã™ã€‚通常ã¯èª°ã‹ãŒã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã§ã€éžå¸¸ã«åŠ©ã‘ã«ãªã‚‹å¤šãã®äººãŒã„ã¾ã™ã€‚ | ||
| 15 | |||
| 16 | ## OLKB Subreddit | ||
| 17 | |||
| 18 | å…¬å¼ã® QMK フォーラム㯠[reddit.com](https://reddit.com) ã® [/r/olkb](https://reddit.com/r/olkb) ã§ã™ã€‚ | ||
| 19 | |||
| 20 | ## GitHub Issues | ||
| 21 | |||
| 22 | [GitHub ã§ issue](https://github.com/qmk/qmk_firmware/issues) ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã™ã€‚issue ã¯é•·æœŸçš„ãªè°è«–ã‚ã‚‹ã„ã¯ãƒ‡ãƒãƒƒã‚°ã‚’å¿…è¦ã¨ã™ã‚‹å ´åˆã¯ã€ç‰¹ã«ä¾¿åˆ©ã§ã™ã€‚ | ||
diff --git a/docs/ja/syllabus.md b/docs/ja/syllabus.md new file mode 100644 index 000000000..14e743ee9 --- /dev/null +++ b/docs/ja/syllabus.md | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | # QMK シラãƒã‚¹ | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.51:docs/syllabus.md | ||
| 5 | git diff 0.9.51 HEAD -- docs/syllabus.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | ã“ã®ãƒšãƒ¼ã‚¸ã¯æœ€åˆã«åŸºæœ¬ã‚’紹介ã—ã€ãã—ã¦ã€QMK ã«ç¿’熟ã™ã‚‹ãŸã‚ã«å¿…è¦ãªå…¨ã¦ã®æ¦‚念をç†è§£ã™ã‚‹ã‚ˆã†ã«å°Žãã“ã¨ã§ã€QMK ã®çŸ¥è˜ã‚’構築ã™ã‚‹ã®ã«å½¹ç«‹ã¡ã¾ã™ã€‚ | ||
| 9 | |||
| 10 | # åˆç´šãƒˆãƒ”ック | ||
| 11 | |||
| 12 | ä»–ã«ä½•ã‚‚èªã‚“ã§ã„ãªã„å ´åˆã¯ã€ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®ãƒ‰ã‚ュメントをèªã‚“ã§ãã ã•ã„。[QMK åˆå¿ƒè€…ガイド](ja/newbs.md)ã‚’èªã¿çµ‚ã‚ã‚‹ã¨ã€åŸºæœ¬çš„ãªã‚ーマップを作æˆã—ã€ãれをコンパイルã—ã€ã‚ãƒ¼ãƒœãƒ¼ãƒ‰ã«æ›¸ãè¾¼ã¿ã§ãるよã†ã«ãªã£ã¦ã„ã‚‹ã¯ãšã§ã™ã€‚残りã®ãƒ‰ã‚ュメントã¯ã“れらã®åŸºæœ¬çš„ãªçŸ¥è˜ã‚’具体的ã«è‚‰ä»˜ã‘ã—ã¾ã™ã€‚ | ||
| 13 | |||
| 14 | * **QMK Tools ã®ä½¿ã„方をå¦ã¶** | ||
| 15 | * [QMK åˆå¿ƒè€…ガイド](ja/newbs.md) | ||
| 16 | * [CLI](ja/cli.md) | ||
| 17 | * [Git](ja/newbs_git_best_practices.md) | ||
| 18 | * **ã‚ーマップã«ã¤ã„ã¦å¦ã¶** | ||
| 19 | * [レイヤー](ja/feature_layers.md) | ||
| 20 | * [ã‚ーコード](ja/keycodes.md) | ||
| 21 | * 使用ã§ãã‚‹ã‚ーコードã®å®Œå…¨ãªãƒªã‚¹ãƒˆã€‚ä¸ç´šã¾ãŸã¯ä¸Šç´šãƒˆãƒ”ックã«ã‚る知è˜ãŒå¿…è¦ãªå ´åˆã‚‚ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。 | ||
| 22 | * **IDE ã®è¨å®š** - オプション | ||
| 23 | * [Eclipse](ja/other_eclipse.md) | ||
| 24 | * [VS Code](ja/other_vscode.md) | ||
| 25 | |||
| 26 | # ä¸ç´šãƒˆãƒ”ック | ||
| 27 | |||
| 28 | ã“れらã®ãƒˆãƒ”ックã§ã¯ã€QMK ãŒã‚µãƒãƒ¼ãƒˆã™ã‚‹å¹¾ã¤ã‹ã®æ©Ÿèƒ½ã«ã¤ã„ã¦æŽ˜ã‚Šä¸‹ã’ã¾ã™ã€‚ã“れらã®ãƒ‰ã‚ュメントを全ã¦èªã‚€å¿…è¦ã¯ã‚りã¾ã›ã‚“ãŒã€ã“れらã®ä¸€éƒ¨ã‚’スã‚ップã™ã‚‹ã¨ã€ä¸Šç´šãƒˆãƒ”ックã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®ä¸€éƒ¨ã®ãƒ‰ã‚ãƒ¥ãƒ¡ãƒ³ãƒˆãŒæ„味をãªã•ãªããªã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。 | ||
| 29 | |||
| 30 | * **機能ã®è¨å®šæ–¹æ³•ã‚’å¦ã¶** | ||
| 31 | <!-- * Configuration Overview FIXME(skullydazed/anyone): write this document --> | ||
| 32 | * [オーディオ](ja/feature_audio.md) | ||
| 33 | * 電飾 | ||
| 34 | * [ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆ](ja/feature_backlight.md) | ||
| 35 | * [LED マトリックス](ja/feature_led_matrix.md) | ||
| 36 | * [RGB ライト](ja/feature_rgblight.md) | ||
| 37 | * [RGB マトリックス](ja/feature_rgb_matrix.md) | ||
| 38 | * [タップホールドè¨å®š](ja/tap_hold.md) | ||
| 39 | * **ã‚ーマップã«ã¤ã„ã¦ã•らã«å¦ã¶** | ||
| 40 | * [ã‚ーマップ](ja/keymap.md) | ||
| 41 | * [カスタム関数ã¨ã‚ーコード](ja/custom_quantum_functions.md) | ||
| 42 | * マクム| ||
| 43 | * [動的マクãƒ](ja/feature_dynamic_macros.md) | ||
| 44 | * [コンパイル済ã¿ã®ãƒžã‚¯ãƒ](ja/feature_macros.md) | ||
| 45 | * [タップダンス](ja/feature_tap_dance.md) | ||
| 46 | * [コンボ](ja/feature_combo.md) | ||
| 47 | * [ユーザスペース](ja/feature_userspace.md) | ||
| 48 | |||
| 49 | # 上級トピック | ||
| 50 | |||
| 51 | 以下ã®å…¨ã¦ã¯å¤šãã®åŸºç¤ŽçŸ¥è˜ã‚’å¿…è¦ã¨ã—ã¾ã™ã€‚é«˜åº¦ãªæ©Ÿèƒ½ã‚’使ã£ã¦ã‚ーマップを作æˆã§ãã‚‹ã“ã¨ã«åŠ ãˆã¦ã€`config.h` 㨠`rules.mk` ã®ä¸¡æ–¹ã‚’使ã£ã¦ã‚ーボードã®ã‚ªãƒ—ションをè¨å®šã™ã‚‹ã“ã¨ã«æ…£ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ | ||
| 52 | |||
| 53 | * **QMK 内ã®ã‚ーボードã®ä¿å®ˆ** | ||
| 54 | * [ã‚ãƒ¼ãƒœãƒ¼ãƒ‰ã®æ‰‹é…ç·š](ja/hand_wire.md) | ||
| 55 | * [ã‚ーボードガイドライン](ja/hardware_keyboard_guidelines.md) | ||
| 56 | * [info.json リファレンス](ja/reference_info_json.md) | ||
| 57 | * [デãƒã‚¦ãƒ³ã‚¹ API](ja/feature_debounce_type.md) | ||
| 58 | * **é«˜åº¦ãªæ©Ÿèƒ½** | ||
| 59 | * [ユニコード](ja/feature_unicode.md) | ||
| 60 | * [API](ja/api_overview.md) | ||
| 61 | * [ブートマジック](ja/feature_bootmagic.md) | ||
| 62 | * **ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢** | ||
| 63 | * [ã‚ーボードãŒã©ã®ã‚ˆã†ã«å‹•作ã™ã‚‹ã‹](ja/how_keyboards_work.md) | ||
| 64 | * [ã‚ーボードマトリックスã®ä»•組ã¿](ja/how_a_matrix_works.md) | ||
| 65 | * [分割ã‚ーボード](ja/feature_split_keyboard.md) | ||
| 66 | * [速記](ja/feature_stenography.md) | ||
| 67 | * [ãƒã‚¤ãƒ³ãƒ†ã‚£ãƒ³ã‚°ãƒ‡ãƒã‚¤ã‚¹](ja/feature_pointing_device.md) | ||
| 68 | * **コア開発** | ||
| 69 | * [コーディングè¦ç´„](ja/coding_conventions_c.md) | ||
| 70 | * [äº’æ›æ€§ã®ã‚るマイクãƒã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ©](ja/compatible_microcontrollers.md) | ||
| 71 | * [カスタムマトリックス](ja/custom_matrix.md) | ||
| 72 | * [QMK ã‚’ç†è§£ã™ã‚‹](ja/understanding_qmk.md) | ||
| 73 | * **CLI 開発** | ||
| 74 | * [コーディングè¦ç´„](ja/coding_conventions_python.md) | ||
| 75 | * [CLI é–‹ç™ºã®æ¦‚è¦](ja/cli_development.md) | ||
diff --git a/docs/ja/translating.md b/docs/ja/translating.md new file mode 100644 index 000000000..f7a273308 --- /dev/null +++ b/docs/ja/translating.md | |||
| @@ -0,0 +1,60 @@ | |||
| 1 | # QMK ドã‚ュメントを翻訳ã™ã‚‹ | ||
| 2 | |||
| 3 | <!--- | ||
| 4 | original document: 0.9.51:docs/translating.md | ||
| 5 | git diff 0.9.51 HEAD -- docs/translating.md | cat | ||
| 6 | --> | ||
| 7 | |||
| 8 | ルートフォルダ (`docs/`) ã«ã‚ã‚‹å…¨ã¦ã®ãƒ•ァイルã¯è‹±èªžã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“ - ä»–ã®å…¨ã¦ã®è¨€èªžã¯ã€ISO 639-1 言語コードã¨ã€ãれã«ç¶šã`-`ã¨é–¢é€£ã™ã‚‹å›½ã‚³ãƒ¼ãƒ‰ã®ã‚µãƒ–フォルダã«ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚[一般的ãªã‚‚ã®ã®ãƒªã‚¹ãƒˆã¯ã“ã“ã§è¦‹ã¤ã‹ã‚Šã¾ã™](https://www.andiamo.co.uk/resources/iso-language-codes/)。ã“ã®ãƒ•ォルダãŒå˜åœ¨ã—ãªã„å ´åˆã€ä½œæˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚翻訳ã•れãŸå„ファイルã¯è‹±èªžãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¨åŒã˜åå‰ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。ãã†ã™ã‚‹ã“ã¨ã§ã€æ£å¸¸ã«ãƒ•ォールãƒãƒƒã‚¯ã§ãã¾ã™ã€‚ | ||
| 9 | |||
| 10 | `_summary.md` ファイルã¯ã“ã®ãƒ•ォルダã®ä¸ã«å˜åœ¨ã—ã€å„ファイルã¸ã®ãƒªãƒ³ã‚¯ã®ãƒªã‚¹ãƒˆã€ç¿»è¨³ã•れãŸåå‰ã€è¨€èªžãƒ•ォルダã«ç¶šãリンクãŒå«ã¾ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ | ||
| 11 | |||
| 12 | ```markdown | ||
| 13 | * [QMK简介](zh-cn/getting_started_introduction.md) | ||
| 14 | ``` | ||
| 15 | |||
| 16 | ä»–ã® docs ページã¸ã®å…¨ã¦ã®ãƒªãƒ³ã‚¯ã«ã‚‚ã€è¨€èªžã®ãƒ•ォルダãŒå‰ã«ä»˜ã„ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ã‚‚ã—リンクãŒãƒšãƒ¼ã‚¸ã®ç‰¹å®šã®éƒ¨åˆ†(例ãˆã°ã€ç‰¹å®šã®è¦‹å‡ºã—)ã¸ã®å ´åˆã€ä»¥ä¸‹ã®ã‚ˆã†ã«è¦‹å‡ºã—ã«è‹±èªžã® ID を使ã†å¿…è¦ãŒã‚りã¾ã™: | ||
| 17 | |||
| 18 | ```markdown | ||
| 19 | [å»ºç«‹ä½ çš„çŽ¯å¢ƒ](zh-cn/newbs-getting-started.md#set-up-your-environment) | ||
| 20 | |||
| 21 | ## å»ºç«‹ä½ çš„çŽ¯å¢ƒ :id=set-up-your-environment | ||
| 22 | ``` | ||
| 23 | |||
| 24 | æ–°ã—ã„言語ã®ç¿»è¨³ãŒå®Œäº†ã—ãŸã‚‰ã€ä»¥ä¸‹ã®ãƒ•ァイルも修æ£ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™: | ||
| 25 | |||
| 26 | * [`docs/_langs.md`](https://github.com/qmk/qmk_firmware/blob/master/docs/_langs.md) | ||
| 27 | å„行ã¯ã€[GitHub emoji shortcode](https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md#country-flag) ã®å½¢å¼ã§å›½ãƒ•ラグã¨ã€ãれã«ç¶šã言語ã§è¡¨ã•れるåå‰ã‚’å«ã‚€å¿…è¦ãŒã‚りã¾ã™ã€‚ | ||
| 28 | |||
| 29 | ```markdown | ||
| 30 | - [:cn: 䏿–‡](/zh-cn/) | ||
| 31 | ``` | ||
| 32 | |||
| 33 | * [`docs/index.html`](https://github.com/qmk/qmk_firmware/blob/master/docs/index.html) | ||
| 34 | `placeholder` 㨠`noData` ã®ä¸¡æ–¹ã®ã‚ªãƒ–ジェクトã¯ã€æ–‡å—列ã§è¨€èªžãƒ•ォルダã®è¾žæ›¸ã‚¨ãƒ³ãƒˆãƒªãŒå¿…è¦ã§ã™: | ||
| 35 | |||
| 36 | ```js | ||
| 37 | '/zh-cn/': '没有结果!', | ||
| 38 | ``` | ||
| 39 | |||
| 40 | サイドãƒãƒ¼ã®ã€ŒQMK ファームウェアã€ã®è¦‹å‡ºã—リンクをè¨å®šã™ã‚‹ãŸã‚ã«ã€`nameLink` オブジェクトも以下ã®ã‚ˆã†ã«è¿½åŠ ã•れる必è¦ãŒã‚りã¾ã™: | ||
| 41 | |||
| 42 | ```js | ||
| 43 | '/zh-cn/': '/#/zh-cn/', | ||
| 44 | ``` | ||
| 45 | |||
| 46 | ã¾ãŸã€`fallbackLanguages` リストã«è¨€èªžãƒ•ã‚©ãƒ«ãƒ€ã‚’è¿½åŠ ã—ã¦ã€404 ã§ã¯ãªã英語ã«é©åˆ‡ã«ãƒ•ォールãƒãƒƒã‚¯ã™ã‚‹ã‚ˆã†ã«ã—ã¦ãã ã•ã„: | ||
| 47 | |||
| 48 | ```js | ||
| 49 | fallbackLanguages: [ | ||
| 50 | // ... | ||
| 51 | 'zh-cn', | ||
| 52 | // ... | ||
| 53 | ], | ||
| 54 | ``` | ||
| 55 | |||
| 56 | ## 翻訳ã®ãƒ—レビュー | ||
| 57 | |||
| 58 | ドã‚ュメントã®ãƒãƒ¼ã‚«ãƒ«ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’セットアップã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€[ドã‚ュメントã®ãƒ—レビュー](ja/contributing.md#previewing-the-documentation)を見ã¦ãã ã•ã„ - å³ä¸Šã® "Translations" メニューã‹ã‚‰æ–°ã—ã„è¨€èªžã‚’é¸æŠžã™ã‚‹ã“ã¨ãŒã§ãã‚‹ã¯ãšã§ã™ã€‚ | ||
| 59 | |||
| 60 | 作æ¥ã«æº€è¶³ã—ãŸã‚‰ã€é æ…®ãªãプルリクエストを開ã„ã¦ãã ã•ã„ï¼ | ||
diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 8755552b9..22e8a3fe1 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md | |||
| @@ -1,39 +1,42 @@ | |||
| 1 | # PR checklists | 1 | # PR checklists |
| 2 | 2 | ||
| 3 | This is a non-exhaustive checklist of what the QMK collaborators will be checking when reviewing submitted PRs. | 3 | This is a non-exhaustive checklist of what the QMK Collaborators will be checking when reviewing submitted PRs. |
| 4 | 4 | ||
| 5 | If there are any inconsistencies with these recommendations, you're best off [creating an issue](https://github.com/qmk/qmk_firmware/issues/new) against this document, or getting in touch with a QMK Collaborator on Discord. | 5 | If there are any inconsistencies with these recommendations, you're best off [creating an issue](https://github.com/qmk/qmk_firmware/issues/new) against this document, or getting in touch with a QMK Collaborator on [Discord](https://discord.gg/Uq7gcHh). |
| 6 | 6 | ||
| 7 | ## General PRs | 7 | ## General PRs |
| 8 | 8 | ||
| 9 | - PR should be submitted using a non-`master` branch on the source repository | 9 | - PR should be submitted using a non-`master` branch on the source repository |
| 10 | - This does not mean you target a different branch for your PR, rather that you're not working out of your own master branch | 10 | - this does not mean you target a different branch for your PR, rather that you're not working out of your own master branch |
| 11 | - If submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](https://docs.qmk.fm/#/newbs_git_using_your_master_branch) page after merging -- (end of this document will contain the contents of the message) | 11 | - if submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](https://docs.qmk.fm/#/newbs_git_using_your_master_branch) page after merging -- (end of this document will contain the contents of the message) |
| 12 | - Newly-added directories and filenames must be lowercase | 12 | - newly-added directories and filenames must be lowercase |
| 13 | - This rule may be relaxed if upstream sources originally had uppercase characters (e.g. ChibiOS, or imported files from other repositories etc.) | 13 | - this rule may be relaxed if upstream sources originally had uppercase characters (e.g. ChibiOS, or imported files from other repositories etc.) |
| 14 | - If there is enough justification (i.e. consistency with existing core files etc.) this can be relaxed | 14 | - if there is enough justification (i.e. consistency with existing core files etc.) this can be relaxed |
| 15 | - a board designer naming their keyboard with uppercase letters is not enough justification | 15 | - a board designer naming their keyboard with uppercase letters is not enough justification |
| 16 | - Valid license headers on all `*.c` and `*.h` source files | 16 | - valid license headers on all `*.c` and `*.h` source files |
| 17 | - GPL2/GPL3 recommended for consistency | 17 | - GPL2/GPL3 recommended for consistency |
| 18 | - Other licenses are permitted, however they must be GPL-compatible and must allow for redistribution. Using a different license will almost certainly delay a PR getting merged. | 18 | - other licenses are permitted, however they must be GPL-compatible and must allow for redistribution. Using a different license will almost certainly delay a PR getting merged. |
| 19 | - QMK codebase "best practices" followed | 19 | - QMK Codebase "best practices" followed |
| 20 | - This is not an exhaustive list, and will likely get amended as time goes by | 20 | - this is not an exhaustive list, and will likely get amended as time goes by |
| 21 | - `#pragma once` instead of `#ifndef` include guards in header files | 21 | - `#pragma once` instead of `#ifndef` include guards in header files |
| 22 | - No "old-school" GPIO/I2C/SPI functions used -- must use QMK abstractions unless justifiable (and laziness is not valid justification) | 22 | - no "old-school" GPIO/I2C/SPI functions used -- must use QMK abstractions unless justifiable (and laziness is not valid justification) |
| 23 | - Timing abstractions should be followed too: | 23 | - timing abstractions should be followed too: |
| 24 | - `wait_ms()` instead of `_delay_ms()` (remove `#include <util/delay.h>` too) | 24 | - `wait_ms()` instead of `_delay_ms()` (remove `#include <util/delay.h>` too) |
| 25 | - `timer_read()` and `timer_read32()` etc. -- see [timer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/timer.h) for the timing APIs | 25 | - `timer_read()` and `timer_read32()` etc. -- see [timer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/timer.h) for the timing APIs |
| 26 | - If you think a new abstraction is useful, you're encouraged to: | 26 | - if you think a new abstraction is useful, you're encouraged to: |
| 27 | - prototype it in your own keyboard until it's feature-complete | 27 | - prototype it in your own keyboard until it's feature-complete |
| 28 | - discuss it with QMK Collaborators on Discord | 28 | - discuss it with QMK Collaborators on Discord |
| 29 | - refactor it as a separate core change | 29 | - refactor it as a separate core change |
| 30 | - remove your specific copy in your board | 30 | - remove your specific copy in your board |
| 31 | - rebase and fix all merge conflicts before opening the PR (in case you need help or advice, reach out to QMK Collaborators on Discord) | ||
| 31 | 32 | ||
| 32 | ## Core PRs | 33 | ## Keymap PRs |
| 33 | 34 | ||
| 34 | - Must now target `develop` branch, which will subsequently be merged back to `master` on the breaking changes timeline | 35 | - `#include QMK_KEYBOARD_H` preferred to including specific board files |
| 35 | - Other notes TBD | 36 | - prefer layer `enum`s to `#define`s |
| 36 | - Core is a lot more subjective given the breadth of posted changes | 37 | - require custom keycode `enum`s to `#define`s, first entry must have ` = SAFE_RANGE` |
| 38 | - terminating backslash (`\`) in lines of LAYOUT macro parameters is superfluous | ||
| 39 | - some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap | ||
| 37 | 40 | ||
| 38 | ## Keyboard PRs | 41 | ## Keyboard PRs |
| 39 | 42 | ||
| @@ -48,12 +51,14 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard | |||
| 48 | - standard template should be present | 51 | - standard template should be present |
| 49 | - flash command has `:flash` at end | 52 | - flash command has `:flash` at end |
| 50 | - valid hardware availability link (unless handwired) -- private groupbuys are okay, but one-off prototypes will be questioned. If open-source, a link to files should be provided. | 53 | - valid hardware availability link (unless handwired) -- private groupbuys are okay, but one-off prototypes will be questioned. If open-source, a link to files should be provided. |
| 54 | - clear instructions on how to reset the board into bootloader mode | ||
| 55 | - a picture about the keyboard and preferably about the PCB, too | ||
| 51 | - `rules.mk` | 56 | - `rules.mk` |
| 52 | - removed `MIDI_ENABLE`, `FAUXCLICKY_ENABLE` and `HD44780_ENABLE` | 57 | - removed `MIDI_ENABLE`, `FAUXCLICKY_ENABLE` and `HD44780_ENABLE` |
| 53 | - modified `# Enable Bluetooth with the Adafruit EZ-Key HID` -> `# Enable Bluetooth` | 58 | - modified `# Enable Bluetooth with the Adafruit EZ-Key HID` -> `# Enable Bluetooth` |
| 54 | - No `(-/+size)` comments related to enabling features | 59 | - no `(-/+size)` comments related to enabling features |
| 55 | - Remove the list of alternate bootloaders if one has been specified | 60 | - remove the list of alternate bootloaders if one has been specified |
| 56 | - No re-definitions of the default MCU parameters if same value, when compared to the equivalent MCU in [mcu_selection.mk](https://github.com/qmk/qmk_firmware/blob/master/quantum/mcu_selection.mk) | 61 | - no re-definitions of the default MCU parameters if same value, when compared to the equivalent MCU in [mcu_selection.mk](https://github.com/qmk/qmk_firmware/blob/master/quantum/mcu_selection.mk) |
| 57 | - keyboard `config.h` | 62 | - keyboard `config.h` |
| 58 | - don't repeat `MANUFACTURER` in the `PRODUCT` value | 63 | - don't repeat `MANUFACTURER` in the `PRODUCT` value |
| 59 | - no `#define DESCRIPTION` | 64 | - no `#define DESCRIPTION` |
| @@ -71,12 +76,12 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard | |||
| 71 | - `keyboard.h` | 76 | - `keyboard.h` |
| 72 | - `#include "quantum.h"` appears at the top | 77 | - `#include "quantum.h"` appears at the top |
| 73 | - `LAYOUT` macros should use standard definitions if applicable | 78 | - `LAYOUT` macros should use standard definitions if applicable |
| 74 | - Use the Community Layout macro names where they apply (preferred above `LAYOUT`/`LAYOUT_all`) | 79 | - use the Community Layout macro names where they apply (preferred above `LAYOUT`/`LAYOUT_all`) |
| 75 | - keymap `config.h` | 80 | - keymap `config.h` |
| 76 | - no duplication of `rules.mk` or `config.h` from keyboard | 81 | - no duplication of `rules.mk` or `config.h` from keyboard |
| 77 | - `keymaps/default/keymap.c` | 82 | - `keymaps/default/keymap.c` |
| 78 | - `QMKBEST`/`QMKURL` removed (sheesh) | 83 | - `QMKBEST`/`QMKURL` removed (sheesh) |
| 79 | - If using `MO(_LOWER)` and `MO(_RAISE)` keycodes or equivalent, and the keymap has an adjust layer when holding both keys -- if the keymap has no "direct-to-adjust" keycode (such as `MO(_ADJUST)`) then you should prefer to write... | 84 | - if using `MO(_LOWER)` and `MO(_RAISE)` keycodes or equivalent, and the keymap has an adjust layer when holding both keys -- if the keymap has no "direct-to-adjust" keycode (such as `MO(_ADJUST)`) then you should prefer to write... |
| 80 | ``` | 85 | ``` |
| 81 | layer_state_t layer_state_set_user(layer_state_t state) { | 86 | layer_state_t layer_state_set_user(layer_state_t state) { |
| 82 | return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); | 87 | return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); |
| @@ -90,22 +95,20 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard | |||
| 90 | - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board | 95 | - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board |
| 91 | 96 | ||
| 92 | Also, specific to ChibiOS: | 97 | Also, specific to ChibiOS: |
| 93 | - **Strong** preference to using existing ChibiOS board definitions. | 98 | - **strong** preference to using existing ChibiOS board definitions. |
| 94 | - A lot of the time, an equivalent Nucleo board can be used with a different flash size or slightly different model in the same family | 99 | - a lot of the time, an equivalent Nucleo board can be used with a different flash size or slightly different model in the same family |
| 95 | - Example: For an STM32L082KZ, given the similarity to an STM32L073RZ, you can use `BOARD = ST_NUCLEO64_L073RZ` in rules.mk | 100 | - example: For an STM32L082KZ, given the similarity to an STM32L073RZ, you can use `BOARD = ST_NUCLEO64_L073RZ` in rules.mk |
| 96 | - QMK is migrating to not having custom board definitions if at all possible, due to the ongoing maintenance burden when upgrading ChibiOS | 101 | - QMK is migrating to not having custom board definitions if at all possible, due to the ongoing maintenance burden when upgrading ChibiOS |
| 97 | - If a board definition is unavoidable, `board.c` must have a standard `__early_init()` (as per normal ChibiOS board defs) and an empty `boardInit()`: | 102 | - if a board definition is unavoidable, `board.c` must have a standard `__early_init()` (as per normal ChibiOS board defs) and an empty `boardInit()`: |
| 98 | - see Arm/ChibiOS [early initialization](https://docs.qmk.fm/#/platformdev_chibios_earlyinit?id=board-init) | 103 | - see Arm/ChibiOS [early initialization](https://docs.qmk.fm/#/platformdev_chibios_earlyinit?id=board-init) |
| 99 | - `__early_init()` should be replaced by either `early_hardware_init_pre()` or `early_hardware_init_post()` as appropriate | 104 | - `__early_init()` should be replaced by either `early_hardware_init_pre()` or `early_hardware_init_post()` as appropriate |
| 100 | - `boardInit()` should be migrated to `board_init()` | 105 | - `boardInit()` should be migrated to `board_init()` |
| 101 | 106 | ||
| 102 | ## Keymap PRs | 107 | ## Core PRs |
| 103 | 108 | ||
| 104 | - `#include QMK_KEYBOARD_H` preferred to including specific board files | 109 | - must now target `develop` branch, which will subsequently be merged back to `master` on the breaking changes timeline |
| 105 | - Prefer layer `enum`s to `#define`s | 110 | - other notes TBD |
| 106 | - Require custom keycode `enum`s to `#define`s, first entry must have ` = SAFE_RANGE` | 111 | - core is a lot more subjective given the breadth of posted changes |
| 107 | - Terminating backslash (`\`) in lines of LAYOUT macro parameters is superfluous | ||
| 108 | - Some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap | ||
| 109 | 112 | ||
| 110 | --- | 113 | --- |
| 111 | 114 | ||
diff --git a/keyboards/boardsource/4x12/keymaps/via/keymap.c b/keyboards/boardsource/4x12/keymaps/via/keymap.c new file mode 100644 index 000000000..d9a0c47a6 --- /dev/null +++ b/keyboards/boardsource/4x12/keymaps/via/keymap.c | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | enum layers { | ||
| 4 | _MAIN, | ||
| 5 | _RAISE, | ||
| 6 | _LOWER, | ||
| 7 | }; | ||
| 8 | |||
| 9 | // Readability keycodes | ||
| 10 | #define LOWER MO(_LOWER) | ||
| 11 | #define RAISE MO(_RAISE) | ||
| 12 | |||
| 13 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 14 | |||
| 15 | [_MAIN] = LAYOUT_ortho_4x12( | ||
| 16 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | ||
| 17 | KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | ||
| 18 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , | ||
| 19 | KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT | ||
| 20 | ), | ||
| 21 | |||
| 22 | [_RAISE] = LAYOUT_ortho_4x12( | ||
| 23 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, | ||
| 24 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | ||
| 25 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, | ||
| 26 | RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 27 | ), | ||
| 28 | |||
| 29 | [_LOWER] = LAYOUT_ortho_4x12( | ||
| 30 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | ||
| 31 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
| 32 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, | ||
| 33 | _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 34 | ) | ||
| 35 | |||
| 36 | }; | ||
diff --git a/keyboards/boardsource/4x12/keymaps/via/readme.md b/keyboards/boardsource/4x12/keymaps/via/readme.md new file mode 100644 index 000000000..534633d45 --- /dev/null +++ b/keyboards/boardsource/4x12/keymaps/via/readme.md | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | # The via keymap for boardsource 4x12 ortholinear keybaoard | ||
| 2 | |||
| 3 | This folder contains the [VIA](https://caniusevia.com/) configuration for the boardsource 4x12 ortholinear keybaoard | ||
| 4 | |||
| 5 | Maintained by: [gwillad](https://github.com/gwillad) | ||
diff --git a/keyboards/boardsource/4x12/keymaps/via/rules.mk b/keyboards/boardsource/4x12/keymaps/via/rules.mk new file mode 100644 index 000000000..036bd6d1c --- /dev/null +++ b/keyboards/boardsource/4x12/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes \ No newline at end of file | |||
diff --git a/keyboards/converter/adb_usb/adb_usb.h b/keyboards/converter/adb_usb/adb_usb.h index 8691adcc6..3db303b03 100644 --- a/keyboards/converter/adb_usb/adb_usb.h +++ b/keyboards/converter/adb_usb/adb_usb.h | |||
| @@ -56,7 +56,7 @@ Ported to QMK by Peter Roe <pete@13bit.me> | |||
| 56 | { K38, K39, K3A, K3B, K3C, K3D, K3E, KC_NO, }, \ | 56 | { K38, K39, K3A, K3B, K3C, K3D, K3E, KC_NO, }, \ |
| 57 | { KC_NO, K41, KC_NO, K43, KC_NO, K45, KC_NO, K47 }, \ | 57 | { KC_NO, K41, KC_NO, K43, KC_NO, K45, KC_NO, K47 }, \ |
| 58 | { KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, K4E, KC_NO, }, \ | 58 | { KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, K4E, KC_NO, }, \ |
| 59 | { KC_NO, KC_NO, K52, K53, K54, K55, K56, K57 }, \ | 59 | { KC_NO, K51, K52, K53, K54, K55, K56, K57 }, \ |
| 60 | { K58, K59, KC_NO, K5B, K5C, KC_NO, KC_NO, KC_NO, }, \ | 60 | { K58, K59, KC_NO, K5B, K5C, KC_NO, KC_NO, KC_NO, }, \ |
| 61 | { K60, K61, K62, K63, K64, K65, KC_NO, K67 }, \ | 61 | { K60, K61, K62, K63, K64, K65, KC_NO, K67 }, \ |
| 62 | { KC_NO, K69, KC_NO, K6B, KC_NO, K6D, KC_NO, K6F }, \ | 62 | { KC_NO, K69, KC_NO, K6B, KC_NO, K6D, KC_NO, K6F }, \ |
diff --git a/keyboards/ergodox_ez/keymaps/nathanvercaemert/config.h b/keyboards/ergodox_ez/keymaps/nathanvercaemert/config.h index 6d69b0011..06c50e0a9 100644 --- a/keyboards/ergodox_ez/keymaps/nathanvercaemert/config.h +++ b/keyboards/ergodox_ez/keymaps/nathanvercaemert/config.h | |||
| @@ -18,6 +18,9 @@ | |||
| 18 | #undef MOUSEKEY_WHEEL_INTERVAL | 18 | #undef MOUSEKEY_WHEEL_INTERVAL |
| 19 | #define MOUSEKEY_WHEEL_INTERVAL 50 | 19 | #define MOUSEKEY_WHEEL_INTERVAL 50 |
| 20 | 20 | ||
| 21 | #undef MK_COMBINED | ||
| 22 | #define MK_COMBINED | ||
| 23 | |||
| 21 | // /* Temporarily defining a tapping term that is ridiculous to see if i can tell if lt is working. */ | 24 | // /* Temporarily defining a tapping term that is ridiculous to see if i can tell if lt is working. */ |
| 22 | // #undef TAPPING_TERM | 25 | // #undef TAPPING_TERM |
| 23 | // #define TAPPING_TERM 499 | 26 | // #define TAPPING_TERM 499 |
diff --git a/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c b/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c index c2960cfa1..e06d0b769 100644 --- a/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c +++ b/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c | |||
| @@ -28,13 +28,17 @@ | |||
| 28 | 28 | ||
| 29 | enum custom_keycodes { | 29 | enum custom_keycodes { |
| 30 | RGB_SLD = EZ_SAFE_RANGE, | 30 | RGB_SLD = EZ_SAFE_RANGE, |
| 31 | MS_WH_UP, | ||
| 32 | MS_WH_DOWN, | ||
| 33 | MS_WH_RIGHT, | ||
| 34 | MS_WH_LEFT, | ||
| 31 | }; | 35 | }; |
| 32 | 36 | ||
| 33 | // tapdance keycodes | 37 | // tapdance keycodes |
| 34 | enum td_keycodes { | 38 | enum td_keycodes { |
| 35 | CTRL_TO12, | 39 | CTRL_TO12, |
| 36 | SHIFT_TO13, | 40 | SHIFT_TO13, |
| 37 | ALT_TO11 | 41 | ALT_TO11, |
| 38 | }; | 42 | }; |
| 39 | 43 | ||
| 40 | // define a type containing as many tapdance states as you need | 44 | // define a type containing as many tapdance states as you need |
| @@ -59,6 +63,7 @@ void altto11_reset (qk_tap_dance_state_t *state, void *user_data); | |||
| 59 | void shiftto13_finished (qk_tap_dance_state_t *state, void *user_data); | 63 | void shiftto13_finished (qk_tap_dance_state_t *state, void *user_data); |
| 60 | void shiftto13_reset (qk_tap_dance_state_t *state, void *user_data); | 64 | void shiftto13_reset (qk_tap_dance_state_t *state, void *user_data); |
| 61 | 65 | ||
| 66 | |||
| 62 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 67 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 63 | [0] = LAYOUT_ergodox_pretty( | 68 | [0] = LAYOUT_ergodox_pretty( |
| 64 | 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, KC_NO, | 69 | 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, KC_NO, |
| @@ -162,9 +167,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 162 | ), | 167 | ), |
| 163 | [10] = LAYOUT_ergodox_pretty( | 168 | [10] = LAYOUT_ergodox_pretty( |
| 164 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | 169 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, |
| 165 | KC_TRANSPARENT, KC_NO, KC_LGUI, KC_MS_BTN2, KC_NO, KC_NO, KC_TRANSPARENT, MT(MOD_RCTL, KC_A), KC_NO, KC_NO, KC_MS_UP, KC_NO, KC_NO, KC_TRANSPARENT, | 170 | KC_TRANSPARENT, KC_NO, KC_LGUI, KC_MS_BTN2, KC_ACL2, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_MS_UP, KC_NO, KC_NO, KC_TRANSPARENT, |
| 166 | KC_TRANSPARENT, TD(SHIFT_TO13), TD(CTRL_TO12), TD(ALT_TO11), KC_MS_BTN1, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_TRANSPARENT, | 171 | KC_TRANSPARENT, TD(SHIFT_TO13), TD(CTRL_TO12), TD(ALT_TO11), KC_MS_BTN1, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_TRANSPARENT, |
| 167 | KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, | 172 | KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_ACL0, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, |
| 168 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | 173 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, |
| 169 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | 174 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, |
| 170 | KC_TRANSPARENT, KC_TRANSPARENT, | 175 | KC_TRANSPARENT, KC_TRANSPARENT, |
| @@ -182,9 +187,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 182 | ), | 187 | ), |
| 183 | [12] = LAYOUT_ergodox_pretty( | 188 | [12] = LAYOUT_ergodox_pretty( |
| 184 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | 189 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, |
| 185 | KC_TRANSPARENT, KC_NO, KC_LGUI, KC_HYPR, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_MS_WH_UP, KC_NO, KC_NO, KC_TRANSPARENT, | 190 | KC_TRANSPARENT, KC_NO, KC_LGUI, KC_HYPR, KC_ACL2, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_MS_WH_UP, KC_NO, KC_NO, KC_TRANSPARENT, |
| 186 | KC_TRANSPARENT, KC_LSHIFT, KC_LCTRL, KC_LALT, KC_NO, KC_NO, KC_NO, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_NO, KC_TRANSPARENT, | 191 | KC_TRANSPARENT, KC_LSHIFT, KC_LCTRL, KC_LALT, KC_NO, KC_NO, KC_NO, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_NO, KC_TRANSPARENT, |
| 187 | KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, | 192 | KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), MO(14), KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, |
| 188 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | 193 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, |
| 189 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | 194 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, |
| 190 | KC_TRANSPARENT, KC_TRANSPARENT, | 195 | KC_TRANSPARENT, KC_TRANSPARENT, |
| @@ -200,16 +205,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 200 | KC_TRANSPARENT, KC_TRANSPARENT, | 205 | KC_TRANSPARENT, KC_TRANSPARENT, |
| 201 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TO(0) | 206 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TO(0) |
| 202 | ), | 207 | ), |
| 208 | [14] = LAYOUT_ergodox_pretty( | ||
| 209 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | ||
| 210 | KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, MS_WH_UP, KC_NO, KC_NO, KC_TRANSPARENT, | ||
| 211 | KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MS_WH_LEFT, MS_WH_DOWN, MS_WH_RIGHT, KC_NO, KC_TRANSPARENT, | ||
| 212 | KC_TRANSPARENT, KC_NO, KC_NO, KC_TRANSPARENT, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, | ||
| 213 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | ||
| 214 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | ||
| 215 | KC_TRANSPARENT, KC_TRANSPARENT, | ||
| 216 | KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT | ||
| 217 | ), | ||
| 203 | }; | 218 | }; |
| 204 | 219 | ||
| 205 | |||
| 206 | /* Commenting out for debug purposes */ | ||
| 207 | // bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 208 | // switch (keycode) { | ||
| 209 | // } | ||
| 210 | // return true; | ||
| 211 | // } | ||
| 212 | |||
| 213 | uint32_t layer_state_set_user(uint32_t state) { | 220 | uint32_t layer_state_set_user(uint32_t state) { |
| 214 | uint8_t layer = biton32(state); | 221 | uint8_t layer = biton32(state); |
| 215 | ergodox_board_led_off(); | 222 | ergodox_board_led_off(); |
| @@ -252,11 +259,31 @@ uint32_t layer_state_set_user(uint32_t state) { | |||
| 252 | // determine the tapdance state to return | 259 | // determine the tapdance state to return |
| 253 | int cur_dance (qk_tap_dance_state_t *state) { | 260 | int cur_dance (qk_tap_dance_state_t *state) { |
| 254 | if (state->count == 1) { | 261 | if (state->count == 1) { |
| 255 | if (state->interrupted || !state->pressed) { return SINGLE_TAP; } | 262 | if (state->interrupted && state->pressed && state->interrupting_keycode == KC_MS_BTN1) {return SINGLE_HOLD;} |
| 263 | if (state->interrupted && state->pressed && state->interrupting_keycode == 22273) {return SINGLE_HOLD;} | ||
| 264 | if (state->interrupted && state->pressed && state->interrupting_keycode == 22272) {return SINGLE_HOLD;} | ||
| 265 | if (state->interrupted && state->pressed && state->interrupting_keycode == KC_TAB) {return SINGLE_HOLD;} | ||
| 266 | else if (state->interrupted || !state->pressed) { | ||
| 267 | // if (state->interrupted) { | ||
| 268 | // print("interrupted\n"); | ||
| 269 | // uprintf("Shift: %u\n", KC_LSHIFT); | ||
| 270 | // uprintf("Control: %u\n", KC_LCTRL); | ||
| 271 | // uprintf("%u\n",state->interrupting_keycode); | ||
| 272 | // } | ||
| 273 | return SINGLE_TAP; | ||
| 274 | } | ||
| 256 | else { return SINGLE_HOLD; } | 275 | else { return SINGLE_HOLD; } |
| 257 | } | 276 | } |
| 258 | else { return 2; } // any number higher than the maximum state value you return above | 277 | else { return 2; } // any number higher than the maximum state value you return above |
| 259 | } | 278 | } |
| 279 | // /* Backup in case previous code is hard to piece together. */ | ||
| 280 | // int cur_dance (qk_tap_dance_state_t *state) { | ||
| 281 | // if (state->count == 1) { | ||
| 282 | // if (state->interrupted || !state->pressed) { return SINGLE_TAP; } | ||
| 283 | // else { return SINGLE_HOLD; } | ||
| 284 | // } | ||
| 285 | // else { return 2; } // any number higher than the maximum state value you return above | ||
| 286 | // } | ||
| 260 | 287 | ||
| 261 | void ctrlto12_finished (qk_tap_dance_state_t *state, void *user_data) { | 288 | void ctrlto12_finished (qk_tap_dance_state_t *state, void *user_data) { |
| 262 | td_state = cur_dance(state); | 289 | td_state = cur_dance(state); |
| @@ -265,7 +292,14 @@ void ctrlto12_finished (qk_tap_dance_state_t *state, void *user_data) { | |||
| 265 | layer_on(12); | 292 | layer_on(12); |
| 266 | break; | 293 | break; |
| 267 | case SINGLE_HOLD: | 294 | case SINGLE_HOLD: |
| 295 | if (state->interrupted && (state->interrupting_keycode == 22273 || state->interrupting_keycode == 43)) { | ||
| 296 | register_mods(MOD_BIT(KC_LCTRL)); | ||
| 297 | break; | ||
| 298 | } | ||
| 268 | register_mods(MOD_BIT(KC_LCTRL)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here | 299 | register_mods(MOD_BIT(KC_LCTRL)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here |
| 300 | if (state->interrupted && state->interrupting_keycode == KC_MS_BTN1) { | ||
| 301 | register_code16(LCTL(KC_MS_BTN1)); | ||
| 302 | } | ||
| 269 | break; | 303 | break; |
| 270 | } | 304 | } |
| 271 | } | 305 | } |
| @@ -275,7 +309,14 @@ void ctrlto12_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
| 275 | case SINGLE_TAP: | 309 | case SINGLE_TAP: |
| 276 | break; | 310 | break; |
| 277 | case SINGLE_HOLD: | 311 | case SINGLE_HOLD: |
| 312 | if (state->interrupted && (state->interrupting_keycode == 22273 || state->interrupting_keycode == 43) ) { | ||
| 313 | unregister_mods(MOD_BIT(KC_LCTRL)); | ||
| 314 | break; | ||
| 315 | } | ||
| 278 | unregister_mods(MOD_BIT(KC_LCTRL)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here | 316 | unregister_mods(MOD_BIT(KC_LCTRL)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here |
| 317 | if (state->interrupted && state->interrupting_keycode == KC_MS_BTN1) { | ||
| 318 | unregister_code16(LCTL(KC_MS_BTN1)); | ||
| 319 | } | ||
| 279 | break; | 320 | break; |
| 280 | } | 321 | } |
| 281 | } | 322 | } |
| @@ -287,7 +328,14 @@ void shiftto13_finished (qk_tap_dance_state_t *state, void *user_data) { | |||
| 287 | layer_on(13); | 328 | layer_on(13); |
| 288 | break; | 329 | break; |
| 289 | case SINGLE_HOLD: | 330 | case SINGLE_HOLD: |
| 331 | if (state->interrupted && (state->interrupting_keycode == 22272 || state->interrupting_keycode == 43) ) { | ||
| 332 | register_mods(MOD_BIT(KC_LSHIFT)); | ||
| 333 | break; | ||
| 334 | } | ||
| 290 | register_mods(MOD_BIT(KC_LSHIFT)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here | 335 | register_mods(MOD_BIT(KC_LSHIFT)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here |
| 336 | if (state->interrupted && state->interrupting_keycode == KC_MS_BTN1) { | ||
| 337 | register_code16(LSFT(KC_MS_BTN1)); | ||
| 338 | } | ||
| 291 | break; | 339 | break; |
| 292 | } | 340 | } |
| 293 | } | 341 | } |
| @@ -297,7 +345,14 @@ void shiftto13_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
| 297 | case SINGLE_TAP: | 345 | case SINGLE_TAP: |
| 298 | break; | 346 | break; |
| 299 | case SINGLE_HOLD: | 347 | case SINGLE_HOLD: |
| 348 | if (state->interrupted && (state->interrupting_keycode == 22272 || state->interrupting_keycode == 43) ) { | ||
| 349 | unregister_mods(MOD_BIT(KC_LSHIFT)); | ||
| 350 | break; | ||
| 351 | } | ||
| 300 | unregister_mods(MOD_BIT(KC_LSHIFT)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here | 352 | unregister_mods(MOD_BIT(KC_LSHIFT)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here |
| 353 | if (state->interrupted && state->interrupting_keycode == KC_MS_BTN1) { | ||
| 354 | unregister_code16(LSFT(KC_MS_BTN1)); | ||
| 355 | } | ||
| 301 | break; | 356 | break; |
| 302 | } | 357 | } |
| 303 | } | 358 | } |
| @@ -310,6 +365,9 @@ void altto11_finished (qk_tap_dance_state_t *state, void *user_data) { | |||
| 310 | break; | 365 | break; |
| 311 | case SINGLE_HOLD: | 366 | case SINGLE_HOLD: |
| 312 | register_mods(MOD_BIT(KC_LALT)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here | 367 | register_mods(MOD_BIT(KC_LALT)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here |
| 368 | if (state->interrupted && state->interrupting_keycode == KC_MS_BTN1) { | ||
| 369 | register_code16(LALT(KC_MS_BTN1)); | ||
| 370 | } | ||
| 313 | break; | 371 | break; |
| 314 | } | 372 | } |
| 315 | } | 373 | } |
| @@ -320,6 +378,9 @@ void altto11_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
| 320 | break; | 378 | break; |
| 321 | case SINGLE_HOLD: | 379 | case SINGLE_HOLD: |
| 322 | unregister_mods(MOD_BIT(KC_LALT)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here | 380 | unregister_mods(MOD_BIT(KC_LALT)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here |
| 381 | if (state->interrupted && state->interrupting_keycode == KC_MS_BTN1) { | ||
| 382 | unregister_code16(LALT(KC_MS_BTN1)); | ||
| 383 | } | ||
| 323 | break; | 384 | break; |
| 324 | } | 385 | } |
| 325 | } | 386 | } |
| @@ -328,7 +389,7 @@ void altto11_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
| 328 | qk_tap_dance_action_t tap_dance_actions[] = { | 389 | qk_tap_dance_action_t tap_dance_actions[] = { |
| 329 | [CTRL_TO12] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctrlto12_finished, ctrlto12_reset), | 390 | [CTRL_TO12] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctrlto12_finished, ctrlto12_reset), |
| 330 | [SHIFT_TO13] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shiftto13_finished, shiftto13_reset), | 391 | [SHIFT_TO13] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shiftto13_finished, shiftto13_reset), |
| 331 | [ALT_TO11] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altto11_finished, altto11_reset) | 392 | [ALT_TO11] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altto11_finished, altto11_reset), |
| 332 | }; | 393 | }; |
| 333 | 394 | ||
| 334 | /* Debugging functions */ | 395 | /* Debugging functions */ |
| @@ -342,10 +403,32 @@ void keyboard_post_init_user(void) { | |||
| 342 | } | 403 | } |
| 343 | 404 | ||
| 344 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 405 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 345 | // If console is enabled, it will print the matrix position and status of each key pressed | 406 | // If console is enabled, it will print the matrix position and status of each key pressed |
| 346 | // #ifdef CONSOLE_ENABLE | 407 | // #ifdef CONSOLE_ENABLE |
| 347 | // uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); | 408 | // uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); |
| 348 | // #endif | 409 | // #endif |
| 349 | return true; | 410 | switch (keycode) { |
| 411 | case MS_WH_DOWN: | ||
| 412 | if (record->event.pressed) { | ||
| 413 | SEND_STRING(SS_TAP(X_MS_WH_DOWN)); | ||
| 414 | } | ||
| 415 | break; | ||
| 416 | case MS_WH_UP: | ||
| 417 | if (record->event.pressed) { | ||
| 418 | SEND_STRING(SS_TAP(X_MS_WH_UP)); | ||
| 419 | } | ||
| 420 | break; | ||
| 421 | case MS_WH_LEFT: | ||
| 422 | if (record->event.pressed) { | ||
| 423 | SEND_STRING(SS_TAP(X_MS_WH_LEFT)); | ||
| 424 | } | ||
| 425 | break; | ||
| 426 | case MS_WH_RIGHT: | ||
| 427 | if (record->event.pressed) { | ||
| 428 | SEND_STRING(SS_TAP(X_MS_WH_RIGHT)); | ||
| 429 | } | ||
| 430 | break; | ||
| 431 | } | ||
| 432 | return true; | ||
| 350 | } | 433 | } |
| 351 | 434 | ||
diff --git a/keyboards/ergodox_ez/keymaps/nathanvercaemert/readme.md b/keyboards/ergodox_ez/keymaps/nathanvercaemert/readme.md index 5570d9881..ff3c8d142 100644 --- a/keyboards/ergodox_ez/keymaps/nathanvercaemert/readme.md +++ b/keyboards/ergodox_ez/keymaps/nathanvercaemert/readme.md | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | # The nathanvercaemert ErgoDox EZ configuration | 1 | # The nathanvercaemert ErgoDox EZ configuration |
| 2 | 2 | ||
| 3 | Centered around the home row and the use of mouse keys, this configuration focuses | 3 | Centered around the home row and the use of mouse keys, this configuration focuses on minimal finger movement. No key is more than one unit away from the home row. |
| 4 | on minimal finger movement. No key is more than one unit away from a finger on the home row. | ||
| 5 | 4 | ||
| 6 | ## Layers | 5 | ## Layers |
| 7 | 6 | ||
| @@ -20,7 +19,9 @@ on minimal finger movement. No key is more than one unit away from a finger on t | |||
| 20 | navigation layers. | 19 | navigation layers. |
| 21 | * Navigation Layers | 20 | * Navigation Layers |
| 22 | * From the Mouse Layer, taps to the left home row navigate to scroll keys, arrow keys, and page keys. | 21 | * From the Mouse Layer, taps to the left home row navigate to scroll keys, arrow keys, and page keys. |
| 22 | * Notes on Acceleration | ||
| 23 | * Designated as "Slow" and "Fast" on the mouse layers (movement and scroll,) these keys can be held to allow for slow/precise or fast/efficient control. | ||
| 23 | 24 | ||
| 24 | Here is the image of my keymap: | 25 | Here is the image of my keymap: |
| 25 | 26 | ||
| 26 |  \ No newline at end of file | 27 |  \ No newline at end of file |
diff --git a/keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk b/keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk index 31c3fe3c7..0dadd4371 100644 --- a/keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk +++ b/keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk | |||
| @@ -5,6 +5,5 @@ COMMAND_ENABLE = no | |||
| 5 | RGBLIGHT_ENABLE = no | 5 | RGBLIGHT_ENABLE = no |
| 6 | TAP_DANCE_ENABLE=yes | 6 | TAP_DANCE_ENABLE=yes |
| 7 | 7 | ||
| 8 | 8 | # Debugging | |
| 9 | #Beginning debugging process for LT() and permissive hold | ||
| 10 | CONSOLE_ENABLE = yes | 9 | CONSOLE_ENABLE = yes |
diff --git a/keyboards/handwired/swiftrax/pandamic/config.h b/keyboards/handwired/swiftrax/pandamic/config.h new file mode 100644 index 000000000..0916bbf1c --- /dev/null +++ b/keyboards/handwired/swiftrax/pandamic/config.h | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 Swiftrax <swiftrax@gmail.com> | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #pragma once | ||
| 19 | |||
| 20 | #include "config_common.h" | ||
| 21 | |||
| 22 | /* USB Device descriptor parameter */ | ||
| 23 | #define VENDOR_ID 0x04D8 | ||
| 24 | #define PRODUCT_ID 0xEB0E | ||
| 25 | #define DEVICE_VER 0x0001 | ||
| 26 | #define MANUFACTURER Swiftrax | ||
| 27 | #define PRODUCT Pandamic | ||
| 28 | |||
| 29 | /* key matrix size */ | ||
| 30 | #define MATRIX_ROWS 10 | ||
| 31 | #define MATRIX_COLS 10 | ||
| 32 | |||
| 33 | // ROWS: Top to bottom, COLS: Left to right | ||
| 34 | |||
| 35 | #define MATRIX_ROW_PINS { D1, D2, B5, B7, D3, D5, D6, D4, D7, B4 } | ||
| 36 | #define MATRIX_COL_PINS { B6, C6, C7, F7, F6, F5, F4, F1, F0, D0 } | ||
| 37 | |||
| 38 | #define ENCODERS_PAD_A { E6 } | ||
| 39 | #define ENCODERS_PAD_B { B0 } | ||
| 40 | |||
| 41 | |||
| 42 | /* COL2ROW or ROW2COL */ | ||
| 43 | #define DIODE_DIRECTION ROW2COL | ||
| 44 | |||
| 45 | /* define if matrix has ghost */ | ||
| 46 | //#define MATRIX_HAS_GHOST | ||
| 47 | |||
| 48 | /* Set 0 if debouncing isn't needed */ | ||
| 49 | #define DEBOUNCE 5 | ||
| 50 | |||
| 51 | /*EEPROM for via*/ | ||
| 52 | #define DYNAMIC_KEYMAP_LAYER_COUNT 3 | ||
diff --git a/keyboards/handwired/swiftrax/pandamic/info.json b/keyboards/handwired/swiftrax/pandamic/info.json new file mode 100644 index 000000000..4446a041d --- /dev/null +++ b/keyboards/handwired/swiftrax/pandamic/info.json | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "Pandamic", | ||
| 3 | "url": "https://github.com/swiftrax", | ||
| 4 | "maintainer": "swiftrax", | ||
| 5 | "width": 20.75, | ||
| 6 | "height": 5.25, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT": { | ||
| 9 | "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":18.25, "y":0}, {"x":19.75, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1, "h":2}, {"x":4.25, "y":1, "w":1.5}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1}, {"x":16.75, "y":1}, {"x":17.75, "y":1, "w":1.5}, {"x":19.75, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":4.25, "y":2, "w":1.75}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":17, "y":2, "w":2.25}, {"x":19.75, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3, "h":2}, {"x":4.25, "y":3, "w":1.25}, {"x":5.5, "y":3}, {"x":6.5, "y":3}, {"x":7.5, "y":3}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3}, {"x":16.5, "y":3, "w":1.75}, {"x":18.5, "y":3.25}, {"x":19.75, "y":3}, {"x":0, "y":4, "w":2}, {"x":2, "y":4}, {"x":4.25, "y":4, "w":1.25}, {"x":5.5, "y":4, "w":1.25}, {"x":6.75, "y":4, "w":1.25}, {"x":8, "y":4, "w":6.25}, {"x":14.25, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}, {"x":17.5, "y":4.25}, {"x":18.5, "y":4.25}, {"x":19.5, "y":4.25}] | ||
| 10 | } | ||
| 11 | } | ||
| 12 | } | ||
diff --git a/keyboards/handwired/swiftrax/pandamic/keymaps/default/keymap.c b/keyboards/handwired/swiftrax/pandamic/keymaps/default/keymap.c new file mode 100644 index 000000000..11e770921 --- /dev/null +++ b/keyboards/handwired/swiftrax/pandamic/keymaps/default/keymap.c | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | /* Copyright 2020 swiftrax | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | ||
| 19 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | ||
| 20 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | ||
| 21 | // entirely and just use numbers. | ||
| 22 | enum _layer { | ||
| 23 | _MA, | ||
| 24 | _FN | ||
| 25 | }; | ||
| 26 | |||
| 27 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 28 | |||
| 29 | [_MA] = LAYOUT( | ||
| 30 | KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 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, KC_DEL, KC_MUTE, | ||
| 31 | KC_P7, KC_P8, KC_P9, KC_PPLS, 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, KC_DEL, | ||
| 32 | KC_P4, KC_P5, KC_P6, KC_CAPS, 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_END, | ||
| 33 | KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, MO(_FN), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_HOME, | ||
| 34 | KC_P0, KC_PDOT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), | ||
| 35 | [_FN] = LAYOUT( | ||
| 36 | _______, _______, _______, _______, 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, _______, _______, _______, | ||
| 37 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, | ||
| 38 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 39 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 40 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), | ||
| 41 | }; | ||
| 42 | |||
| 43 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 44 | if (clockwise) { | ||
| 45 | tap_code(KC_VOLU); | ||
| 46 | } else { | ||
| 47 | tap_code(KC_VOLD); | ||
| 48 | } | ||
| 49 | } \ No newline at end of file | ||
diff --git a/keyboards/handwired/swiftrax/pandamic/keymaps/via/keymap.c b/keyboards/handwired/swiftrax/pandamic/keymaps/via/keymap.c new file mode 100644 index 000000000..38e455bec --- /dev/null +++ b/keyboards/handwired/swiftrax/pandamic/keymaps/via/keymap.c | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | /* Copyright 2020 swiftrax | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | |||
| 20 | [0] = LAYOUT( | ||
| 21 | KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 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, KC_DEL, KC_MUTE, | ||
| 22 | KC_P7, KC_P8, KC_P9, KC_PPLS, 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, KC_DEL, | ||
| 23 | KC_P4, KC_P5, KC_P6, KC_CAPS, 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_END, | ||
| 24 | KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, MO(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_HOME, | ||
| 25 | KC_P0, KC_PDOT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), | ||
| 26 | [1] = LAYOUT( | ||
| 27 | _______, _______, _______, _______, 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, _______, _______, _______, | ||
| 28 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, | ||
| 29 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 30 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 31 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), | ||
| 32 | [2] = LAYOUT( | ||
| 33 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 34 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 35 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 36 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 37 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), | ||
| 38 | }; | ||
| 39 | |||
| 40 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 41 | if (clockwise) { | ||
| 42 | tap_code(KC_VOLU); | ||
| 43 | } else { | ||
| 44 | tap_code(KC_VOLD); | ||
| 45 | } | ||
| 46 | } \ No newline at end of file | ||
diff --git a/keyboards/handwired/swiftrax/pandamic/keymaps/via/rules.mk b/keyboards/handwired/swiftrax/pandamic/keymaps/via/rules.mk new file mode 100644 index 000000000..036bd6d1c --- /dev/null +++ b/keyboards/handwired/swiftrax/pandamic/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes \ No newline at end of file | |||
diff --git a/keyboards/handwired/swiftrax/pandamic/pandamic.c b/keyboards/handwired/swiftrax/pandamic/pandamic.c new file mode 100644 index 000000000..c718a3373 --- /dev/null +++ b/keyboards/handwired/swiftrax/pandamic/pandamic.c | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | /* Copyright 2020 swiftrax | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "pandamic.h" | ||
diff --git a/keyboards/handwired/swiftrax/pandamic/pandamic.h b/keyboards/handwired/swiftrax/pandamic/pandamic.h new file mode 100644 index 000000000..9fbb78427 --- /dev/null +++ b/keyboards/handwired/swiftrax/pandamic/pandamic.h | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | /* Copyright 2020 swiftrax | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "quantum.h" | ||
| 19 | |||
| 20 | // readability | ||
| 21 | #define XXX KC_NO | ||
| 22 | |||
| 23 | #define LAYOUT( \ | ||
| 24 | K000, K100, K001, K101, K002, K102, K003, K103, K004, K104, K005, K105, K006, K106, K007, K107, K008, K108, K009, K109,\ | ||
| 25 | K200, K300, K201, K301, K202, K302, K203, K303, K204, K304, K205, K305, K206, K306, K207, K307, K208, K308, K309,\ | ||
| 26 | K400, K500, K401, K402, K502, K403, K503, K404, K504, K405, K505, K406, K506, K407, K507, K508, K509,\ | ||
| 27 | K600, K700, K601, K701, K602, K702, K603, K703, K604, K704, K605, K705, K606, K706, K607, K707, K608, K609, K709,\ | ||
| 28 | K800, K801, K802, K902, K803, K805, K807, K907, K808, K908, K809, K909 \ | ||
| 29 | ) { \ | ||
| 30 | {K000, K001, K002, K003, K004, K005, K006, K007, K008, K009},\ | ||
| 31 | {K100, K101, K102, K103, K104, K105, K106, K107, K108, K109},\ | ||
| 32 | {K200, K201, K202, K203, K204, K205, K206, K207, K208, XXX},\ | ||
| 33 | {K300, K301, K302, K303, K304, K305, K306, K307, K308, K309},\ | ||
| 34 | {K400, K401, K402, K403, K404, K405, K406, K407, XXX, XXX},\ | ||
| 35 | {K500, XXX, K502, K503, K504, K505, K506, K507, K508, K509},\ | ||
| 36 | {K600, K601, K602, K603, K604, K605, K606, K607, K608, K609},\ | ||
| 37 | {K700, K701, K702, K703, K704, K705, K706, K707, XXX, K709},\ | ||
| 38 | {K800, K801, K802, K803, XXX, K805, XXX, K807, K808, K809},\ | ||
| 39 | { XXX, XXX, K902, XXX, XXX, XXX, XXX, K907, K908, K909} \ | ||
| 40 | } | ||
diff --git a/keyboards/handwired/swiftrax/pandamic/readme.md b/keyboards/handwired/swiftrax/pandamic/readme.md new file mode 100644 index 000000000..227c2ebe1 --- /dev/null +++ b/keyboards/handwired/swiftrax/pandamic/readme.md | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | # Pandamic | ||
| 2 | |||
| 3 | A southpaw 65% mechanical keyboard with rotary encoder support | ||
| 4 | |||
| 5 | * Keyboard Maintainer: [Swiftrax](https://github.com/swiftrax) | ||
| 6 | * Hardware Supported: Pandamic | ||
| 7 | * Hardware Availability: [GitHub.com](https://github.com/swiftrax/Pandamic) | ||
| 8 | |||
| 9 | Make example for this keyboard (after setting up your build environment): | ||
| 10 | |||
| 11 | make handwired/swiftrax/pandamic:default | ||
| 12 | |||
| 13 | 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). | ||
diff --git a/keyboards/handwired/swiftrax/pandamic/rules.mk b/keyboards/handwired/swiftrax/pandamic/rules.mk new file mode 100644 index 000000000..f83e0a1fd --- /dev/null +++ b/keyboards/handwired/swiftrax/pandamic/rules.mk | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = atmel-dfu | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = no # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
| 23 | ENCODER_ENABLE = yes # Rotary Encoder | ||
diff --git a/keyboards/jj40/config.h b/keyboards/jj40/config.h index 9a1eadb78..0d168f2c0 100644 --- a/keyboards/jj40/config.h +++ b/keyboards/jj40/config.h | |||
| @@ -16,8 +16,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 16 | 16 | ||
| 17 | #include "config_common.h" | 17 | #include "config_common.h" |
| 18 | 18 | ||
| 19 | #define VENDOR_ID 0x20A0 | 19 | #define VENDOR_ID 0x4B50 // "KP" |
| 20 | #define PRODUCT_ID 0x422D | 20 | #define PRODUCT_ID 0x0040 |
| 21 | #define DEVICE_VER 0x0200 | 21 | #define DEVICE_VER 0x0200 |
| 22 | #define MANUFACTURER KPrepublic | 22 | #define MANUFACTURER KPrepublic |
| 23 | #define PRODUCT JJ40 | 23 | #define PRODUCT JJ40 |
diff --git a/keyboards/kbdfans/maja_soldered/config.h b/keyboards/kbdfans/maja_soldered/config.h new file mode 100755 index 000000000..bc284893d --- /dev/null +++ b/keyboards/kbdfans/maja_soldered/config.h | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | /* Copyright 2020 dztech kbdfans | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "config_common.h" | ||
| 19 | |||
| 20 | #define VENDOR_ID 0x4B42 | ||
| 21 | #define PRODUCT_ID 0x6069 | ||
| 22 | #define DEVICE_VER 0x0001 | ||
| 23 | #define MANUFACTURER KBDFANS | ||
| 24 | #define PRODUCT MAJA_SOLDERED | ||
| 25 | |||
| 26 | #define MATRIX_ROWS 5 | ||
| 27 | #define MATRIX_COLS 15 | ||
| 28 | #define MATRIX_ROW_PINS { F0, B6, D6, B4, D7 } | ||
| 29 | #define MATRIX_COL_PINS { C6, C7, F7, F6, F5, F4, F1, B0, B1, B2, B3, B7, D2, D3, D5 } | ||
| 30 | #define DIODE_DIRECTION COL2ROW | ||
| 31 | |||
| 32 | #define DEBOUNCE 3 | ||
| 33 | |||
| 34 | /* number of backlight levels */ | ||
| 35 | #define BACKLIGHT_PIN B5 | ||
| 36 | #ifdef BACKLIGHT_PIN | ||
| 37 | #define BACKLIGHT_LEVELS 3 | ||
| 38 | #endif | ||
| 39 | |||
| 40 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 41 | #define LOCKING_SUPPORT_ENABLE | ||
| 42 | |||
| 43 | /* Locking resynchronize hack */ | ||
| 44 | #define LOCKING_RESYNC_ENABLE | ||
diff --git a/keyboards/kbdfans/maja_soldered/info.json b/keyboards/kbdfans/maja_soldered/info.json new file mode 100644 index 000000000..b583282a9 --- /dev/null +++ b/keyboards/kbdfans/maja_soldered/info.json | |||
| @@ -0,0 +1,81 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "MAJA_SOLDERED", | ||
| 3 | "url": "", | ||
| 4 | "maintainer": "DZTECH", | ||
| 5 | "width": 18.75, | ||
| 6 | "height": 5.5, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT": { | ||
| 9 | "layout": [ | ||
| 10 | {"x": 0.75, "y": 0.25}, | ||
| 11 | {"x": 1.75, "y": 0.25}, | ||
| 12 | {"x": 2.75, "y": 0}, | ||
| 13 | {"x": 3.75, "y": 0.25}, | ||
| 14 | {"x": 4.75, "y": 0.25}, | ||
| 15 | {"x": 5.75, "y": 0.25}, | ||
| 16 | {"x": 6.75, "y": 0.25}, | ||
| 17 | {"x": 8.75, "y": 0.25}, | ||
| 18 | {"x": 9.75, "y": 0.25}, | ||
| 19 | {"x": 10.75, "y": 0.25}, | ||
| 20 | {"x": 11.75, "y": 0.25}, | ||
| 21 | {"x": 12.75, "y": 0}, | ||
| 22 | {"x": 13.75, "y": 0.25}, | ||
| 23 | {"x": 14.75, "y": 0.25}, | ||
| 24 | {"x": 15.75, "y": 0.25}, | ||
| 25 | {"x": 17.75, "y": 0.25}, | ||
| 26 | {"x": 0.5, "y": 1.25, "w": 1.5}, | ||
| 27 | {"x": 2, "y": 1.25}, | ||
| 28 | {"x": 3, "y": 1.25}, | ||
| 29 | {"x": 4, "y": 1.25}, | ||
| 30 | {"x": 5, "y": 1.25}, | ||
| 31 | {"x": 6, "y": 1.25}, | ||
| 32 | {"x": 8.5, "y": 1.25}, | ||
| 33 | {"x": 9.5, "y": 1.25}, | ||
| 34 | {"x": 10.5, "y": 1.25}, | ||
| 35 | {"x": 11.5, "y": 1.25}, | ||
| 36 | {"x": 12.5, "y": 1.25}, | ||
| 37 | {"x": 13.5, "y": 1.25}, | ||
| 38 | {"x": 14.5, "y": 1.25}, | ||
| 39 | {"x": 15.5, "y": 1.25, "w": 1.5}, | ||
| 40 | {"x": 17.75, "y": 1.25}, | ||
| 41 | {"x": 0.25, "y": 2.25, "w": 1.75}, | ||
| 42 | {"x": 2, "y": 2.25}, | ||
| 43 | {"x": 3, "y": 2.25}, | ||
| 44 | {"x": 4, "y": 2.25}, | ||
| 45 | {"x": 5, "y": 2.25}, | ||
| 46 | {"x": 6, "y": 2.25}, | ||
| 47 | {"x": 9, "y": 2.25}, | ||
| 48 | {"x": 10, "y": 2.25}, | ||
| 49 | {"x": 11, "y": 2.25}, | ||
| 50 | {"x": 12, "y": 2.25}, | ||
| 51 | {"x": 13, "y": 2.25}, | ||
| 52 | {"x": 14, "y": 2.25}, | ||
| 53 | {"x": 15, "y": 2.25, "w": 2.25}, | ||
| 54 | {"x": 17.75, "y": 2.25}, | ||
| 55 | {"x": 0, "y": 3.25, "w": 2.25}, | ||
| 56 | {"x": 2.25, "y": 3.25}, | ||
| 57 | {"x": 3.25, "y": 3.25}, | ||
| 58 | {"x": 4.25, "y": 3.25}, | ||
| 59 | {"x": 5.25, "y": 3.25}, | ||
| 60 | {"x": 6.25, "y": 3.25}, | ||
| 61 | {"x": 8.25, "y": 3.25}, | ||
| 62 | {"x": 9.25, "y": 3.25}, | ||
| 63 | {"x": 10.25, "y": 3.25}, | ||
| 64 | {"x": 11.25, "y": 3.25}, | ||
| 65 | {"x": 12.25, "y": 3.25}, | ||
| 66 | {"x": 13.25, "y": 3.25}, | ||
| 67 | {"x": 14.25, "y": 3.25, "w": 2.25}, | ||
| 68 | {"x": 16.75, "y": 3.5}, | ||
| 69 | {"x": 0, "y": 4.25, "w": 1.5}, | ||
| 70 | {"x": 3, "y": 4.25, "w": 1.5}, | ||
| 71 | {"x": 4.5, "y": 4.25, "w": 2}, | ||
| 72 | {"x": 6.5, "y": 4.25, "w": 1.25}, | ||
| 73 | {"x": 8.25, "y": 4.25, "w": 2.75}, | ||
| 74 | {"x": 11, "y": 4.25, "w": 1.5}, | ||
| 75 | {"x": 15.75, "y": 4.5}, | ||
| 76 | {"x": 16.75, "y": 4.5}, | ||
| 77 | {"x": 17.75, "y": 4.5} | ||
| 78 | ] | ||
| 79 | } | ||
| 80 | } | ||
| 81 | } | ||
diff --git a/keyboards/kbdfans/maja_soldered/keymaps/default/keymap.c b/keyboards/kbdfans/maja_soldered/keymaps/default/keymap.c new file mode 100755 index 000000000..a86004ef7 --- /dev/null +++ b/keyboards/kbdfans/maja_soldered/keymaps/default/keymap.c | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | /* Copyright 2020 dztech kbdfans | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | [0] = LAYOUT( /* Base */ | ||
| 20 | KC_GESC, 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,KC_DEL, KC_HOME, | ||
| 21 | 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_BSLASH, KC_PGUP, | ||
| 22 | CTL_T(KC_CAPS),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_PGDN, | ||
| 23 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, | ||
| 24 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), | ||
| 25 | [1] = LAYOUT( /* FN */ | ||
| 26 | KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET,KC_TRNS,KC_HOME, | ||
| 27 | KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, | ||
| 28 | CTL_T(KC_CAPS),RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, KC_PGDN, | ||
| 29 | KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, | ||
| 30 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), | ||
| 31 | [2] = LAYOUT( /* FN */ | ||
| 32 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, | ||
| 33 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 34 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 35 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 36 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 37 | [3] = LAYOUT( /* FN */ | ||
| 38 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, | ||
| 39 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 40 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 41 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 42 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 43 | }; | ||
diff --git a/keyboards/kbdfans/maja_soldered/keymaps/via/keymap.c b/keyboards/kbdfans/maja_soldered/keymaps/via/keymap.c new file mode 100755 index 000000000..cf64bec4c --- /dev/null +++ b/keyboards/kbdfans/maja_soldered/keymaps/via/keymap.c | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | /* Copyright 2020 dztech kbdfans | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | [0] = LAYOUT( /* Base */ | ||
| 20 | KC_GESC, 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,KC_DEL, KC_HOME, | ||
| 21 | 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_BSLASH, KC_PGUP, | ||
| 22 | CTL_T(KC_CAPS),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_PGDN, | ||
| 23 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, | ||
| 24 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), | ||
| 25 | [1] = LAYOUT( /* FN */ | ||
| 26 | KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET,KC_TRNS,KC_HOME, | ||
| 27 | KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, | ||
| 28 | CTL_T(KC_CAPS),RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, KC_PGDN, | ||
| 29 | KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, | ||
| 30 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), | ||
| 31 | [2] = LAYOUT( | ||
| 32 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, | ||
| 33 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 34 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 35 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 36 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 37 | [3] = LAYOUT( | ||
| 38 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, | ||
| 39 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 40 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 41 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 42 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 43 | }; | ||
diff --git a/keyboards/kbdfans/maja_soldered/keymaps/via/rules.mk b/keyboards/kbdfans/maja_soldered/keymaps/via/rules.mk new file mode 100755 index 000000000..36b7ba9cb --- /dev/null +++ b/keyboards/kbdfans/maja_soldered/keymaps/via/rules.mk | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | VIA_ENABLE = yes | ||
| 2 | LTO_ENABLE = yes | ||
diff --git a/keyboards/kbdfans/maja_soldered/maja_soldered.c b/keyboards/kbdfans/maja_soldered/maja_soldered.c new file mode 100755 index 000000000..1f0f48c4c --- /dev/null +++ b/keyboards/kbdfans/maja_soldered/maja_soldered.c | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | /* Copyright 2020 dztech kbdfans | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "maja_soldered.h" | ||
| 17 | |||
| 18 | void matrix_init_kb(void) { | ||
| 19 | setPinOutput(D4); | ||
| 20 | matrix_init_user(); | ||
| 21 | } | ||
| 22 | |||
| 23 | bool led_update_kb(led_t led_state) { | ||
| 24 | bool res = led_update_user(led_state); | ||
| 25 | if(res) { | ||
| 26 | writePin(D4, !led_state.caps_lock); | ||
| 27 | } | ||
| 28 | return res; | ||
| 29 | } | ||
diff --git a/keyboards/kbdfans/maja_soldered/maja_soldered.h b/keyboards/kbdfans/maja_soldered/maja_soldered.h new file mode 100755 index 000000000..4834c2b74 --- /dev/null +++ b/keyboards/kbdfans/maja_soldered/maja_soldered.h | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "quantum.h" | ||
| 4 | |||
| 5 | #define XXX KC_NO | ||
| 6 | |||
| 7 | #define LAYOUT( \ | ||
| 8 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K3E, K0E, \ | ||
| 9 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ | ||
| 10 | K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ | ||
| 11 | K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ | ||
| 12 | K40, K42, K43, K45, K47, K49, K4C, K4D, K4E \ | ||
| 13 | ) { \ | ||
| 14 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ | ||
| 15 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ | ||
| 16 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ | ||
| 17 | { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ | ||
| 18 | { K40, XXX, K42, K43, XXX, K45, XXX, K47, XXX, K49, XXX, XXX, K4C, K4D, K4E } \ | ||
| 19 | } | ||
diff --git a/keyboards/kbdfans/maja_soldered/readme.md b/keyboards/kbdfans/maja_soldered/readme.md new file mode 100755 index 000000000..f19c1d740 --- /dev/null +++ b/keyboards/kbdfans/maja_soldered/readme.md | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | # MAJA_SOLDERED | ||
| 2 | |||
| 3 |  | ||
| 4 |  | ||
| 5 | |||
| 6 | * Keyboard Maintainer: [DZTECH](https://github.com/moyi4681) | ||
| 7 | * Hardware Supported: MAJA_SOLDERED | ||
| 8 | * Hardware Availability: [KBDFans](https://kbdfans.cn/) | ||
| 9 | |||
| 10 | Make example for this keyboard (after setting up your build environment): | ||
| 11 | |||
| 12 | make kbdfans/maja_soldered:default | ||
| 13 | |||
| 14 | 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). | ||
diff --git a/keyboards/kbdfans/maja_soldered/rules.mk b/keyboards/kbdfans/maja_soldered/rules.mk new file mode 100755 index 000000000..6cd4d9260 --- /dev/null +++ b/keyboards/kbdfans/maja_soldered/rules.mk | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = atmel-dfu | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = yes # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = yes # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | ||
| 20 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 21 | AUDIO_ENABLE = no # Audio output | ||
| 22 | NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in | ||
diff --git a/keyboards/lazydesigners/bolt/via/keymap.c b/keyboards/lazydesigners/bolt/via/keymap.c new file mode 100644 index 000000000..a977f9c38 --- /dev/null +++ b/keyboards/lazydesigners/bolt/via/keymap.c | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | /* Copyright 2020 LAZYDESIGNERS | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | [0] = LAYOUT( | ||
| 20 | KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | ||
| 21 | KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, | ||
| 22 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, MO(2), | ||
| 23 | KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT | ||
| 24 | ), | ||
| 25 | [1] = LAYOUT( | ||
| 26 | RESET, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, | ||
| 27 | KC_INS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
| 28 | KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 29 | KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO | ||
| 30 | ), | ||
| 31 | [2] = LAYOUT( | ||
| 32 | RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 33 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 34 | 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, | ||
| 35 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO | ||
| 36 | ), | ||
| 37 | [3] = LAYOUT( | ||
| 38 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 39 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 40 | 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, | ||
| 41 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO | ||
| 42 | ), | ||
| 43 | }; | ||
diff --git a/keyboards/lazydesigners/bolt/via/rules.mk b/keyboards/lazydesigners/bolt/via/rules.mk new file mode 100644 index 000000000..36b7ba9cb --- /dev/null +++ b/keyboards/lazydesigners/bolt/via/rules.mk | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | VIA_ENABLE = yes | ||
| 2 | LTO_ENABLE = yes | ||
diff --git a/keyboards/maartenwut/solheim68/config.h b/keyboards/maartenwut/solheim68/config.h new file mode 100644 index 000000000..cb2070e87 --- /dev/null +++ b/keyboards/maartenwut/solheim68/config.h | |||
| @@ -0,0 +1,143 @@ | |||
| 1 | /* Copyright 2020 Dekkers | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #include "config_common.h" | ||
| 20 | |||
| 21 | /* USB Device descriptor parameter */ | ||
| 22 | #define VENDOR_ID 0x4705 | ||
| 23 | #define PRODUCT_ID 0x7BFF | ||
| 24 | #define DEVICE_VER 0x0001 | ||
| 25 | #define MANUFACTURER Maartenwut | ||
| 26 | #define PRODUCT Solheim68 | ||
| 27 | |||
| 28 | /* key matrix size */ | ||
| 29 | #define MATRIX_ROWS 5 | ||
| 30 | #define MATRIX_COLS 16 | ||
| 31 | |||
| 32 | /* | ||
| 33 | * Keyboard Matrix Assignments | ||
| 34 | * | ||
| 35 | * Change this to how you wired your keyboard | ||
| 36 | * COLS: AVR pins used for columns, left to right | ||
| 37 | * ROWS: AVR pins used for rows, top to bottom | ||
| 38 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 39 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 40 | * | ||
| 41 | */ | ||
| 42 | #define MATRIX_ROW_PINS {E6,B0,B1,B2,B3} | ||
| 43 | #define MATRIX_COL_PINS {F0,F1,F4,F5,F6,F7,C7,C6,B6,B5,B4,D7,D6,D4,D5,D3} | ||
| 44 | #define UNUSED_PINS {B7,D0,D1,D2} | ||
| 45 | |||
| 46 | /* COL2ROW, ROW2COL*/ | ||
| 47 | #define DIODE_DIRECTION COL2ROW | ||
| 48 | |||
| 49 | /* | ||
| 50 | * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. | ||
| 51 | */ | ||
| 52 | // #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 | ||
| 53 | |||
| 54 | // #define BACKLIGHT_PIN B7 | ||
| 55 | // #define BACKLIGHT_BREATHING | ||
| 56 | // #define BACKLIGHT_LEVELS 3 | ||
| 57 | |||
| 58 | // #define RGB_DI_PIN E2 | ||
| 59 | // #ifdef RGB_DI_PIN | ||
| 60 | // #define RGBLED_NUM 16 | ||
| 61 | // #define RGBLIGHT_HUE_STEP 8 | ||
| 62 | // #define RGBLIGHT_SAT_STEP 8 | ||
| 63 | // #define RGBLIGHT_VAL_STEP 8 | ||
| 64 | // #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ | ||
| 65 | // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ | ||
| 66 | // /*== all animations enable ==*/ | ||
| 67 | // #define RGBLIGHT_ANIMATIONS | ||
| 68 | // /*== or choose animations ==*/ | ||
| 69 | // #define RGBLIGHT_EFFECT_BREATHING | ||
| 70 | // #define RGBLIGHT_EFFECT_RAINBOW_MOOD | ||
| 71 | // #define RGBLIGHT_EFFECT_RAINBOW_SWIRL | ||
| 72 | // #define RGBLIGHT_EFFECT_SNAKE | ||
| 73 | // #define RGBLIGHT_EFFECT_KNIGHT | ||
| 74 | // #define RGBLIGHT_EFFECT_CHRISTMAS | ||
| 75 | // #define RGBLIGHT_EFFECT_STATIC_GRADIENT | ||
| 76 | // #define RGBLIGHT_EFFECT_RGB_TEST | ||
| 77 | // #define RGBLIGHT_EFFECT_ALTERNATING | ||
| 78 | // /*== customize breathing effect ==*/ | ||
| 79 | // /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ | ||
| 80 | // #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 | ||
| 81 | // /*==== use exp() and sin() ====*/ | ||
| 82 | // #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 | ||
| 83 | // #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 | ||
| 84 | // #endif | ||
| 85 | |||
| 86 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 87 | #define DEBOUNCE 5 | ||
| 88 | |||
| 89 | /* define if matrix has ghost (lacks anti-ghosting diodes) */ | ||
| 90 | //#define MATRIX_HAS_GHOST | ||
| 91 | |||
| 92 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 93 | #define LOCKING_SUPPORT_ENABLE | ||
| 94 | /* Locking resynchronize hack */ | ||
| 95 | #define LOCKING_RESYNC_ENABLE | ||
| 96 | |||
| 97 | /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. | ||
| 98 | * This is userful for the Windows task manager shortcut (ctrl+shift+esc). | ||
| 99 | */ | ||
| 100 | // #define GRAVE_ESC_CTRL_OVERRIDE | ||
| 101 | |||
| 102 | /* | ||
| 103 | * Force NKRO | ||
| 104 | * | ||
| 105 | * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved | ||
| 106 | * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the | ||
| 107 | * makefile for this to work.) | ||
| 108 | * | ||
| 109 | * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) | ||
| 110 | * until the next keyboard reset. | ||
| 111 | * | ||
| 112 | * NKRO may prevent your keystrokes from being detected in the BIOS, but it is | ||
| 113 | * fully operational during normal computer usage. | ||
| 114 | * | ||
| 115 | * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) | ||
| 116 | * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by | ||
| 117 | * bootmagic, NKRO mode will always be enabled until it is toggled again during a | ||
| 118 | * power-up. | ||
| 119 | * | ||
| 120 | */ | ||
| 121 | //#define FORCE_NKRO | ||
| 122 | |||
| 123 | /* | ||
| 124 | * Feature disable options | ||
| 125 | * These options are also useful to firmware size reduction. | ||
| 126 | */ | ||
| 127 | |||
| 128 | /* disable debug print */ | ||
| 129 | //#define NO_DEBUG | ||
| 130 | |||
| 131 | /* disable print */ | ||
| 132 | //#define NO_PRINT | ||
| 133 | |||
| 134 | /* disable action features */ | ||
| 135 | //#define NO_ACTION_LAYER | ||
| 136 | //#define NO_ACTION_TAPPING | ||
| 137 | //#define NO_ACTION_ONESHOT | ||
| 138 | //#define NO_ACTION_MACRO | ||
| 139 | //#define NO_ACTION_FUNCTION | ||
| 140 | |||
| 141 | /* Bootmagic Lite key configuration */ | ||
| 142 | // #define BOOTMAGIC_LITE_ROW 0 | ||
| 143 | // #define BOOTMAGIC_LITE_COLUMN 0 | ||
diff --git a/keyboards/maartenwut/solheim68/info.json b/keyboards/maartenwut/solheim68/info.json new file mode 100644 index 000000000..14a4a36f5 --- /dev/null +++ b/keyboards/maartenwut/solheim68/info.json | |||
| @@ -0,0 +1,397 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "Solheim68", | ||
| 3 | "url": "https://github.com/Maartenwut/solheim68", | ||
| 4 | "maintainer": "maartenwut", | ||
| 5 | "width": 17.25, | ||
| 6 | "height": 5, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT_all": { | ||
| 9 | "layout": [ | ||
| 10 | {"x":0, "y":0}, | ||
| 11 | {"x":1, "y":0}, | ||
| 12 | {"x":2, "y":0}, | ||
| 13 | {"x":3, "y":0}, | ||
| 14 | {"x":4, "y":0}, | ||
| 15 | {"x":5, "y":0}, | ||
| 16 | {"x":6, "y":0}, | ||
| 17 | {"x":7, "y":0}, | ||
| 18 | {"x":8, "y":0}, | ||
| 19 | {"x":9, "y":0}, | ||
| 20 | {"x":10, "y":0}, | ||
| 21 | {"x":11, "y":0}, | ||
| 22 | {"x":12, "y":0}, | ||
| 23 | {"x":13, "y":0}, | ||
| 24 | {"x":14, "y":0}, | ||
| 25 | {"x":15.25, "y":0}, | ||
| 26 | {"x":16.25, "y":0}, | ||
| 27 | |||
| 28 | {"x":0, "y":1, "w":1.5}, | ||
| 29 | {"x":1.5, "y":1}, | ||
| 30 | {"x":2.5, "y":1}, | ||
| 31 | {"x":3.5, "y":1}, | ||
| 32 | {"x":4.5, "y":1}, | ||
| 33 | {"x":5.5, "y":1}, | ||
| 34 | {"x":6.5, "y":1}, | ||
| 35 | {"x":7.5, "y":1}, | ||
| 36 | {"x":8.5, "y":1}, | ||
| 37 | {"x":9.5, "y":1}, | ||
| 38 | {"x":10.5, "y":1}, | ||
| 39 | {"x":11.5, "y":1}, | ||
| 40 | {"x":12.5, "y":1}, | ||
| 41 | {"x":13.5, "y":1, "w":1.5}, | ||
| 42 | {"x":15.25, "y":1}, | ||
| 43 | {"x":16.25, "y":1}, | ||
| 44 | |||
| 45 | {"x":0, "y":2, "w":1.75}, | ||
| 46 | {"x":1.75, "y":2}, | ||
| 47 | {"x":2.75, "y":2}, | ||
| 48 | {"x":3.75, "y":2}, | ||
| 49 | {"x":4.75, "y":2}, | ||
| 50 | {"x":5.75, "y":2}, | ||
| 51 | {"x":6.75, "y":2}, | ||
| 52 | {"x":7.75, "y":2}, | ||
| 53 | {"x":8.75, "y":2}, | ||
| 54 | {"x":9.75, "y":2}, | ||
| 55 | {"x":10.75, "y":2}, | ||
| 56 | {"x":11.75, "y":2}, | ||
| 57 | {"x":12.75, "y":2}, | ||
| 58 | {"x":13.75, "y":2, "w":1.25}, | ||
| 59 | |||
| 60 | {"x":0, "y":3, "w":1.25}, | ||
| 61 | {"x":1.25, "y":3}, | ||
| 62 | {"x":2.25, "y":3}, | ||
| 63 | {"x":3.25, "y":3}, | ||
| 64 | {"x":4.25, "y":3}, | ||
| 65 | {"x":5.25, "y":3}, | ||
| 66 | {"x":6.25, "y":3}, | ||
| 67 | {"x":7.25, "y":3}, | ||
| 68 | {"x":8.25, "y":3}, | ||
| 69 | {"x":9.25, "y":3}, | ||
| 70 | {"x":10.25, "y":3}, | ||
| 71 | {"x":11.25, "y":3}, | ||
| 72 | {"x":12.25, "y":3, "w":1.75}, | ||
| 73 | {"x":14, "y":3}, | ||
| 74 | {"x":15.25, "y":3}, | ||
| 75 | |||
| 76 | {"x":0, "y":4, "w":1.25}, | ||
| 77 | {"x":1.25, "y":4, "w":1.25}, | ||
| 78 | {"x":2.5, "y":4, "w":1.25}, | ||
| 79 | {"x":3.75, "y":4, "w":6.25}, | ||
| 80 | {"x":10, "y":4, "w":1.25}, | ||
| 81 | {"x":11.25, "y":4, "w":1.25}, | ||
| 82 | {"x":12.5, "y":4, "w":1.25}, | ||
| 83 | {"x":14.25, "y":4}, | ||
| 84 | {"x":15.25, "y":4}, | ||
| 85 | {"x":16.25, "y":4} | ||
| 86 | ] | ||
| 87 | }, | ||
| 88 | "LAYOUT_68_ansi": { | ||
| 89 | "layout": [ | ||
| 90 | {"x":0, "y":0}, | ||
| 91 | {"x":1, "y":0}, | ||
| 92 | {"x":2, "y":0}, | ||
| 93 | {"x":3, "y":0}, | ||
| 94 | {"x":4, "y":0}, | ||
| 95 | {"x":5, "y":0}, | ||
| 96 | {"x":6, "y":0}, | ||
| 97 | {"x":7, "y":0}, | ||
| 98 | {"x":8, "y":0}, | ||
| 99 | {"x":9, "y":0}, | ||
| 100 | {"x":10, "y":0}, | ||
| 101 | {"x":11, "y":0}, | ||
| 102 | {"x":12, "y":0}, | ||
| 103 | {"x":13, "y":0, "w":2}, | ||
| 104 | {"x":15.25, "y":0}, | ||
| 105 | {"x":16.25, "y":0}, | ||
| 106 | |||
| 107 | {"x":0, "y":1, "w":1.5}, | ||
| 108 | {"x":1.5, "y":1}, | ||
| 109 | {"x":2.5, "y":1}, | ||
| 110 | {"x":3.5, "y":1}, | ||
| 111 | {"x":4.5, "y":1}, | ||
| 112 | {"x":5.5, "y":1}, | ||
| 113 | {"x":6.5, "y":1}, | ||
| 114 | {"x":7.5, "y":1}, | ||
| 115 | {"x":8.5, "y":1}, | ||
| 116 | {"x":9.5, "y":1}, | ||
| 117 | {"x":10.5, "y":1}, | ||
| 118 | {"x":11.5, "y":1}, | ||
| 119 | {"x":12.5, "y":1}, | ||
| 120 | {"x":13.5, "y":1, "w":1.5}, | ||
| 121 | {"x":15.25, "y":1}, | ||
| 122 | {"x":16.25, "y":1}, | ||
| 123 | |||
| 124 | {"x":0, "y":2, "w":1.75}, | ||
| 125 | {"x":1.75, "y":2}, | ||
| 126 | {"x":2.75, "y":2}, | ||
| 127 | {"x":3.75, "y":2}, | ||
| 128 | {"x":4.75, "y":2}, | ||
| 129 | {"x":5.75, "y":2}, | ||
| 130 | {"x":6.75, "y":2}, | ||
| 131 | {"x":7.75, "y":2}, | ||
| 132 | {"x":8.75, "y":2}, | ||
| 133 | {"x":9.75, "y":2}, | ||
| 134 | {"x":10.75, "y":2}, | ||
| 135 | {"x":11.75, "y":2}, | ||
| 136 | {"x":12.75, "y":2, "w":2.25}, | ||
| 137 | |||
| 138 | {"x":0, "y":3, "w":2.25}, | ||
| 139 | {"x":2.25, "y":3}, | ||
| 140 | {"x":3.25, "y":3}, | ||
| 141 | {"x":4.25, "y":3}, | ||
| 142 | {"x":5.25, "y":3}, | ||
| 143 | {"x":6.25, "y":3}, | ||
| 144 | {"x":7.25, "y":3}, | ||
| 145 | {"x":8.25, "y":3}, | ||
| 146 | {"x":9.25, "y":3}, | ||
| 147 | {"x":10.25, "y":3}, | ||
| 148 | {"x":11.25, "y":3}, | ||
| 149 | {"x":12.25, "y":3, "w":2.75}, | ||
| 150 | {"x":15.25, "y":3}, | ||
| 151 | |||
| 152 | {"x":0, "y":4, "w":1.25}, | ||
| 153 | {"x":1.25, "y":4, "w":1.25}, | ||
| 154 | {"x":2.5, "y":4, "w":1.25}, | ||
| 155 | {"x":3.75, "y":4, "w":6.25}, | ||
| 156 | {"x":10, "y":4, "w":1.25}, | ||
| 157 | {"x":11.25, "y":4, "w":1.25}, | ||
| 158 | {"x":12.5, "y":4, "w":1.25}, | ||
| 159 | {"x":14.25, "y":4}, | ||
| 160 | {"x":15.25, "y":4}, | ||
| 161 | {"x":16.25, "y":4} | ||
| 162 | ] | ||
| 163 | }, | ||
| 164 | "LAYOUT_68_iso": { | ||
| 165 | "layout": [ | ||
| 166 | {"x":0, "y":0}, | ||
| 167 | {"x":1, "y":0}, | ||
| 168 | {"x":2, "y":0}, | ||
| 169 | {"x":3, "y":0}, | ||
| 170 | {"x":4, "y":0}, | ||
| 171 | {"x":5, "y":0}, | ||
| 172 | {"x":6, "y":0}, | ||
| 173 | {"x":7, "y":0}, | ||
| 174 | {"x":8, "y":0}, | ||
| 175 | {"x":9, "y":0}, | ||
| 176 | {"x":10, "y":0}, | ||
| 177 | {"x":11, "y":0}, | ||
| 178 | {"x":12, "y":0}, | ||
| 179 | {"x":13, "y":0, "w":2}, | ||
| 180 | {"x":15.25, "y":0}, | ||
| 181 | {"x":16.25, "y":0}, | ||
| 182 | |||
| 183 | {"x":0, "y":1, "w":1.5}, | ||
| 184 | {"x":1.5, "y":1}, | ||
| 185 | {"x":2.5, "y":1}, | ||
| 186 | {"x":3.5, "y":1}, | ||
| 187 | {"x":4.5, "y":1}, | ||
| 188 | {"x":5.5, "y":1}, | ||
| 189 | {"x":6.5, "y":1}, | ||
| 190 | {"x":7.5, "y":1}, | ||
| 191 | {"x":8.5, "y":1}, | ||
| 192 | {"x":9.5, "y":1}, | ||
| 193 | {"x":10.5, "y":1}, | ||
| 194 | {"x":11.5, "y":1}, | ||
| 195 | {"x":12.5, "y":1}, | ||
| 196 | {"x":15.25, "y":1}, | ||
| 197 | {"x":16.25, "y":1}, | ||
| 198 | |||
| 199 | {"x":0, "y":2, "w":1.75}, | ||
| 200 | {"x":1.75, "y":2}, | ||
| 201 | {"x":2.75, "y":2}, | ||
| 202 | {"x":3.75, "y":2}, | ||
| 203 | {"x":4.75, "y":2}, | ||
| 204 | {"x":5.75, "y":2}, | ||
| 205 | {"x":6.75, "y":2}, | ||
| 206 | {"x":7.75, "y":2}, | ||
| 207 | {"x":8.75, "y":2}, | ||
| 208 | {"x":9.75, "y":2}, | ||
| 209 | {"x":10.75, "y":2}, | ||
| 210 | {"x":11.75, "y":2}, | ||
| 211 | {"x":12.75, "y":2}, | ||
| 212 | {"x":13.75, "y":1, "w":1.25, "h":2}, | ||
| 213 | |||
| 214 | {"x":0, "y":3, "w":1.25}, | ||
| 215 | {"x":1.25, "y":3}, | ||
| 216 | {"x":2.25, "y":3}, | ||
| 217 | {"x":3.25, "y":3}, | ||
| 218 | {"x":4.25, "y":3}, | ||
| 219 | {"x":5.25, "y":3}, | ||
| 220 | {"x":6.25, "y":3}, | ||
| 221 | {"x":7.25, "y":3}, | ||
| 222 | {"x":8.25, "y":3}, | ||
| 223 | {"x":9.25, "y":3}, | ||
| 224 | {"x":10.25, "y":3}, | ||
| 225 | {"x":11.25, "y":3}, | ||
| 226 | {"x":12.25, "y":3, "w":2.75}, | ||
| 227 | {"x":15.25, "y":3}, | ||
| 228 | |||
| 229 | {"x":0, "y":4, "w":1.25}, | ||
| 230 | {"x":1.25, "y":4, "w":1.25}, | ||
| 231 | {"x":2.5, "y":4, "w":1.25}, | ||
| 232 | {"x":3.75, "y":4, "w":6.25}, | ||
| 233 | {"x":10, "y":4, "w":1.25}, | ||
| 234 | {"x":11.25, "y":4, "w":1.25}, | ||
| 235 | {"x":12.5, "y":4, "w":1.25}, | ||
| 236 | {"x":14.25, "y":4}, | ||
| 237 | {"x":15.25, "y":4}, | ||
| 238 | {"x":16.25, "y":4} | ||
| 239 | ] | ||
| 240 | }, | ||
| 241 | "LAYOUT_68_ansi_split_rshift": { | ||
| 242 | "layout": [ | ||
| 243 | {"x":0, "y":0}, | ||
| 244 | {"x":1, "y":0}, | ||
| 245 | {"x":2, "y":0}, | ||
| 246 | {"x":3, "y":0}, | ||
| 247 | {"x":4, "y":0}, | ||
| 248 | {"x":5, "y":0}, | ||
| 249 | {"x":6, "y":0}, | ||
| 250 | {"x":7, "y":0}, | ||
| 251 | {"x":8, "y":0}, | ||
| 252 | {"x":9, "y":0}, | ||
| 253 | {"x":10, "y":0}, | ||
| 254 | {"x":11, "y":0}, | ||
| 255 | {"x":12, "y":0}, | ||
| 256 | {"x":13, "y":0, "w":2}, | ||
| 257 | {"x":15.25, "y":0}, | ||
| 258 | {"x":16.25, "y":0}, | ||
| 259 | |||
| 260 | {"x":0, "y":1, "w":1.5}, | ||
| 261 | {"x":1.5, "y":1}, | ||
| 262 | {"x":2.5, "y":1}, | ||
| 263 | {"x":3.5, "y":1}, | ||
| 264 | {"x":4.5, "y":1}, | ||
| 265 | {"x":5.5, "y":1}, | ||
| 266 | {"x":6.5, "y":1}, | ||
| 267 | {"x":7.5, "y":1}, | ||
| 268 | {"x":8.5, "y":1}, | ||
| 269 | {"x":9.5, "y":1}, | ||
| 270 | {"x":10.5, "y":1}, | ||
| 271 | {"x":11.5, "y":1}, | ||
| 272 | {"x":12.5, "y":1}, | ||
| 273 | {"x":13.5, "y":1, "w":1.5}, | ||
| 274 | {"x":15.25, "y":1}, | ||
| 275 | {"x":16.25, "y":1}, | ||
| 276 | |||
| 277 | {"x":0, "y":2, "w":1.75}, | ||
| 278 | {"x":1.75, "y":2}, | ||
| 279 | {"x":2.75, "y":2}, | ||
| 280 | {"x":3.75, "y":2}, | ||
| 281 | {"x":4.75, "y":2}, | ||
| 282 | {"x":5.75, "y":2}, | ||
| 283 | {"x":6.75, "y":2}, | ||
| 284 | {"x":7.75, "y":2}, | ||
| 285 | {"x":8.75, "y":2}, | ||
| 286 | {"x":9.75, "y":2}, | ||
| 287 | {"x":10.75, "y":2}, | ||
| 288 | {"x":11.75, "y":2}, | ||
| 289 | {"x":12.75, "y":2, "w":2.25}, | ||
| 290 | |||
| 291 | {"x":0, "y":3, "w":2.25}, | ||
| 292 | {"x":2.25, "y":3}, | ||
| 293 | {"x":3.25, "y":3}, | ||
| 294 | {"x":4.25, "y":3}, | ||
| 295 | {"x":5.25, "y":3}, | ||
| 296 | {"x":6.25, "y":3}, | ||
| 297 | {"x":7.25, "y":3}, | ||
| 298 | {"x":8.25, "y":3}, | ||
| 299 | {"x":9.25, "y":3}, | ||
| 300 | {"x":10.25, "y":3}, | ||
| 301 | {"x":11.25, "y":3}, | ||
| 302 | {"x":12.25, "y":3, "w":1.75}, | ||
| 303 | {"x":14, "y":3}, | ||
| 304 | {"x":15.25, "y":3}, | ||
| 305 | |||
| 306 | {"x":0, "y":4, "w":1.25}, | ||
| 307 | {"x":1.25, "y":4, "w":1.25}, | ||
| 308 | {"x":2.5, "y":4, "w":1.25}, | ||
| 309 | {"x":3.75, "y":4, "w":6.25}, | ||
| 310 | {"x":10, "y":4, "w":1.25}, | ||
| 311 | {"x":11.25, "y":4, "w":1.25}, | ||
| 312 | {"x":12.5, "y":4, "w":1.25}, | ||
| 313 | {"x":14.25, "y":4}, | ||
| 314 | {"x":15.25, "y":4}, | ||
| 315 | {"x":16.25, "y":4} | ||
| 316 | ] | ||
| 317 | }, | ||
| 318 | "LAYOUT_68_iso_split_rshift": { | ||
| 319 | "layout": [ | ||
| 320 | {"x":0, "y":0}, | ||
| 321 | {"x":1, "y":0}, | ||
| 322 | {"x":2, "y":0}, | ||
| 323 | {"x":3, "y":0}, | ||
| 324 | {"x":4, "y":0}, | ||
| 325 | {"x":5, "y":0}, | ||
| 326 | {"x":6, "y":0}, | ||
| 327 | {"x":7, "y":0}, | ||
| 328 | {"x":8, "y":0}, | ||
| 329 | {"x":9, "y":0}, | ||
| 330 | {"x":10, "y":0}, | ||
| 331 | {"x":11, "y":0}, | ||
| 332 | {"x":12, "y":0}, | ||
| 333 | {"x":13, "y":0, "w":2}, | ||
| 334 | {"x":15.25, "y":0}, | ||
| 335 | {"x":16.25, "y":0}, | ||
| 336 | |||
| 337 | {"x":0, "y":1, "w":1.5}, | ||
| 338 | {"x":1.5, "y":1}, | ||
| 339 | {"x":2.5, "y":1}, | ||
| 340 | {"x":3.5, "y":1}, | ||
| 341 | {"x":4.5, "y":1}, | ||
| 342 | {"x":5.5, "y":1}, | ||
| 343 | {"x":6.5, "y":1}, | ||
| 344 | {"x":7.5, "y":1}, | ||
| 345 | {"x":8.5, "y":1}, | ||
| 346 | {"x":9.5, "y":1}, | ||
| 347 | {"x":10.5, "y":1}, | ||
| 348 | {"x":11.5, "y":1}, | ||
| 349 | {"x":12.5, "y":1}, | ||
| 350 | {"x":15.25, "y":1}, | ||
| 351 | {"x":16.25, "y":1}, | ||
| 352 | |||
| 353 | {"x":0, "y":2, "w":1.75}, | ||
| 354 | {"x":1.75, "y":2}, | ||
| 355 | {"x":2.75, "y":2}, | ||
| 356 | {"x":3.75, "y":2}, | ||
| 357 | {"x":4.75, "y":2}, | ||
| 358 | {"x":5.75, "y":2}, | ||
| 359 | {"x":6.75, "y":2}, | ||
| 360 | {"x":7.75, "y":2}, | ||
| 361 | {"x":8.75, "y":2}, | ||
| 362 | {"x":9.75, "y":2}, | ||
| 363 | {"x":10.75, "y":2}, | ||
| 364 | {"x":11.75, "y":2}, | ||
| 365 | {"x":12.75, "y":2}, | ||
| 366 | {"x":13.75, "y":1, "w":1.25, "h":2}, | ||
| 367 | |||
| 368 | {"x":0, "y":3, "w":1.25}, | ||
| 369 | {"x":1.25, "y":3}, | ||
| 370 | {"x":2.25, "y":3}, | ||
| 371 | {"x":3.25, "y":3}, | ||
| 372 | {"x":4.25, "y":3}, | ||
| 373 | {"x":5.25, "y":3}, | ||
| 374 | {"x":6.25, "y":3}, | ||
| 375 | {"x":7.25, "y":3}, | ||
| 376 | {"x":8.25, "y":3}, | ||
| 377 | {"x":9.25, "y":3}, | ||
| 378 | {"x":10.25, "y":3}, | ||
| 379 | {"x":11.25, "y":3}, | ||
| 380 | {"x":12.25, "y":3, "w":1.75}, | ||
| 381 | {"x":14, "y":3}, | ||
| 382 | {"x":15.25, "y":3}, | ||
| 383 | |||
| 384 | {"x":0, "y":4, "w":1.25}, | ||
| 385 | {"x":1.25, "y":4, "w":1.25}, | ||
| 386 | {"x":2.5, "y":4, "w":1.25}, | ||
| 387 | {"x":3.75, "y":4, "w":6.25}, | ||
| 388 | {"x":10, "y":4, "w":1.25}, | ||
| 389 | {"x":11.25, "y":4, "w":1.25}, | ||
| 390 | {"x":12.5, "y":4, "w":1.25}, | ||
| 391 | {"x":14.25, "y":4}, | ||
| 392 | {"x":15.25, "y":4}, | ||
| 393 | {"x":16.25, "y":4} | ||
| 394 | ] | ||
| 395 | } | ||
| 396 | } | ||
| 397 | } \ No newline at end of file | ||
diff --git a/keyboards/maartenwut/solheim68/keymaps/default/keymap.c b/keyboards/maartenwut/solheim68/keymaps/default/keymap.c new file mode 100644 index 000000000..728e8019a --- /dev/null +++ b/keyboards/maartenwut/solheim68/keymaps/default/keymap.c | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* Copyright 2020 Dekkers | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | [0] = LAYOUT_all( | ||
| 20 | KC_GESC, 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_BSPC, KC_MPLY, KC_HOME, | ||
| 21 | 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, KC_DEL, KC_END, | ||
| 22 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, | ||
| 23 | KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, | ||
| 24 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), | ||
| 25 | [1] = LAYOUT_all( | ||
| 26 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_PSCR, KC_PGUP, | ||
| 27 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, | ||
| 28 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 29 | _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, | ||
| 30 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), | ||
| 31 | }; | ||
diff --git a/keyboards/maartenwut/solheim68/keymaps/default/readme.md b/keyboards/maartenwut/solheim68/keymaps/default/readme.md new file mode 100644 index 000000000..6e9745403 --- /dev/null +++ b/keyboards/maartenwut/solheim68/keymaps/default/readme.md | |||
| @@ -0,0 +1 @@ | |||
| This is the default keymap for the Solheim68. \ No newline at end of file | |||
diff --git a/keyboards/maartenwut/solheim68/readme.md b/keyboards/maartenwut/solheim68/readme.md new file mode 100644 index 000000000..1cf0ee946 --- /dev/null +++ b/keyboards/maartenwut/solheim68/readme.md | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | # Solheim68 | ||
| 2 | |||
| 3 | A replacement PCB for the VA68M (v2) with Mini-USB. | ||
| 4 | |||
| 5 | * Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut) | ||
| 6 | * Hardware Supported: Solheim68 PCB | ||
| 7 | * Hardware Availability: [Open source on GitHub](https://github.com/Maartenwut/solheim68) | ||
| 8 | |||
| 9 | Make example for this keyboard (after setting up your build environment): | ||
| 10 | |||
| 11 | make maartenwut/solheim68:default | ||
| 12 | |||
| 13 | Flashing example for this keyboard: | ||
| 14 | |||
| 15 | make maartenwut/solheim68:default:flash | ||
| 16 | |||
| 17 | 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). | ||
diff --git a/keyboards/maartenwut/solheim68/rules.mk b/keyboards/maartenwut/solheim68/rules.mk new file mode 100644 index 000000000..a90eef1fc --- /dev/null +++ b/keyboards/maartenwut/solheim68/rules.mk | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = atmel-dfu | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = no # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
diff --git a/keyboards/maartenwut/solheim68/solheim68.c b/keyboards/maartenwut/solheim68/solheim68.c new file mode 100644 index 000000000..27f90f4e8 --- /dev/null +++ b/keyboards/maartenwut/solheim68/solheim68.c | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | /* Copyright 2020 Dekkers | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "solheim68.h" | ||
diff --git a/keyboards/maartenwut/solheim68/solheim68.h b/keyboards/maartenwut/solheim68/solheim68.h new file mode 100644 index 000000000..2f6339bd1 --- /dev/null +++ b/keyboards/maartenwut/solheim68/solheim68.h | |||
| @@ -0,0 +1,102 @@ | |||
| 1 | /* Copyright 2020 Dekkers | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "quantum.h" | ||
| 19 | #define XXX KC_NO | ||
| 20 | |||
| 21 | /* This a shortcut to help you visually see your layout. | ||
| 22 | * | ||
| 23 | * The first section contains all of the arguments representing the physical | ||
| 24 | * layout of the board and position of the keys. | ||
| 25 | * | ||
| 26 | * The second converts the arguments into a two-dimensional array which | ||
| 27 | * represents the switch matrix. | ||
| 28 | */ | ||
| 29 | #define LAYOUT_all( \ | ||
| 30 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k2e, k0d, k0e, k0f, \ | ||
| 31 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, \ | ||
| 32 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ | ||
| 33 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ | ||
| 34 | k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e, k4f \ | ||
| 35 | ) \ | ||
| 36 | { \ | ||
| 37 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ | ||
| 38 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \ | ||
| 39 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, XXX }, \ | ||
| 40 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, XXX }, \ | ||
| 41 | { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \ | ||
| 42 | } | ||
| 43 | |||
| 44 | #define LAYOUT_68_ansi( \ | ||
| 45 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \ | ||
| 46 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, \ | ||
| 47 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ | ||
| 48 | k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3e, \ | ||
| 49 | k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e, k4f \ | ||
| 50 | ) \ | ||
| 51 | { \ | ||
| 52 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ | ||
| 53 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \ | ||
| 54 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX, XXX }, \ | ||
| 55 | { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, k3e, XXX }, \ | ||
| 56 | { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \ | ||
| 57 | } | ||
| 58 | |||
| 59 | #define LAYOUT_68_iso( \ | ||
| 60 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \ | ||
| 61 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, \ | ||
| 62 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ | ||
| 63 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3e, \ | ||
| 64 | k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e, k4f \ | ||
| 65 | ) \ | ||
| 66 | { \ | ||
| 67 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ | ||
| 68 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e, k1f }, \ | ||
| 69 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX, XXX }, \ | ||
| 70 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, k3e, XXX }, \ | ||
| 71 | { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \ | ||
| 72 | } | ||
| 73 | |||
| 74 | #define LAYOUT_68_ansi_split_rshift( \ | ||
| 75 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \ | ||
| 76 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, \ | ||
| 77 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ | ||
| 78 | k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ | ||
| 79 | k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e, k4f \ | ||
| 80 | ) \ | ||
| 81 | { \ | ||
| 82 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ | ||
| 83 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \ | ||
| 84 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX, XXX }, \ | ||
| 85 | { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, XXX }, \ | ||
| 86 | { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \ | ||
| 87 | } | ||
| 88 | |||
| 89 | #define LAYOUT_68_iso_split_rshift( \ | ||
| 90 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \ | ||
| 91 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, \ | ||
| 92 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ | ||
| 93 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ | ||
| 94 | k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e, k4f \ | ||
| 95 | ) \ | ||
| 96 | { \ | ||
| 97 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \ | ||
| 98 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e, k1f }, \ | ||
| 99 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX, XXX }, \ | ||
| 100 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, XXX }, \ | ||
| 101 | { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f } \ | ||
| 102 | } | ||
diff --git a/keyboards/marksard/leftover30/config.h b/keyboards/marksard/leftover30/config.h new file mode 100644 index 000000000..42c6c6287 --- /dev/null +++ b/keyboards/marksard/leftover30/config.h | |||
| @@ -0,0 +1,138 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 marksard | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #pragma once | ||
| 19 | |||
| 20 | #include "config_common.h" | ||
| 21 | |||
| 22 | /* USB Device descriptor parameter */ | ||
| 23 | #define VENDOR_ID 0xFEED | ||
| 24 | #define PRODUCT_ID 0xDFA8 | ||
| 25 | #define DEVICE_VER 0x0001 | ||
| 26 | #define MANUFACTURER marksard | ||
| 27 | #define PRODUCT leftover30 | ||
| 28 | |||
| 29 | /* Encoder */ | ||
| 30 | #define ENCODERS_PAD_A { F4 } | ||
| 31 | #define ENCODERS_PAD_B { F5 } | ||
| 32 | // #define ENCODER_DIRECTION_FLIP | ||
| 33 | |||
| 34 | /* key matrix size */ | ||
| 35 | #define MATRIX_ROWS 8 | ||
| 36 | #define MATRIX_COLS 5 | ||
| 37 | |||
| 38 | /* | ||
| 39 | * Keyboard Matrix Assignments | ||
| 40 | * | ||
| 41 | * Change this to how you wired your keyboard | ||
| 42 | * COLS: AVR pins used for columns, left to right | ||
| 43 | * ROWS: AVR pins used for rows, top to bottom | ||
| 44 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 45 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 46 | * | ||
| 47 | */ | ||
| 48 | #define MATRIX_ROW_PINS { B6, B2, F7, F6, B3, B1, D4, D0 } | ||
| 49 | #define MATRIX_COL_PINS { B5, B4, E6, D7, C6 } | ||
| 50 | #define UNUSED_PINS | ||
| 51 | |||
| 52 | /* COL2ROW, ROW2COL*/ | ||
| 53 | #define DIODE_DIRECTION COL2ROW | ||
| 54 | |||
| 55 | #define RGB_DI_PIN D3 | ||
| 56 | #ifdef RGB_DI_PIN | ||
| 57 | #define RGBLED_NUM 6 | ||
| 58 | #define RGBLIGHT_HUE_STEP 8 | ||
| 59 | #define RGBLIGHT_SAT_STEP 8 | ||
| 60 | #define RGBLIGHT_VAL_STEP 8 | ||
| 61 | #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ | ||
| 62 | #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ | ||
| 63 | /*== all animations enable ==*/ | ||
| 64 | #define RGBLIGHT_ANIMATIONS | ||
| 65 | /*== or choose animations ==*/ | ||
| 66 | // #define RGBLIGHT_EFFECT_BREATHING | ||
| 67 | // #define RGBLIGHT_EFFECT_RAINBOW_MOOD | ||
| 68 | // #define RGBLIGHT_EFFECT_RAINBOW_SWIRL | ||
| 69 | // #define RGBLIGHT_EFFECT_SNAKE | ||
| 70 | // #define RGBLIGHT_EFFECT_KNIGHT | ||
| 71 | // #define RGBLIGHT_EFFECT_CHRISTMAS | ||
| 72 | // #define RGBLIGHT_EFFECT_STATIC_GRADIENT | ||
| 73 | // #define RGBLIGHT_EFFECT_RGB_TEST | ||
| 74 | // #define RGBLIGHT_EFFECT_ALTERNATING | ||
| 75 | /*== customize breathing effect ==*/ | ||
| 76 | /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ | ||
| 77 | #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 | ||
| 78 | /*==== use exp() and sin() ====*/ | ||
| 79 | #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 | ||
| 80 | #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 | ||
| 81 | #endif | ||
| 82 | |||
| 83 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 84 | #define DEBOUNCE 5 | ||
| 85 | |||
| 86 | /* define if matrix has ghost (lacks anti-ghosting diodes) */ | ||
| 87 | //#define MATRIX_HAS_GHOST | ||
| 88 | |||
| 89 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 90 | #define LOCKING_SUPPORT_ENABLE | ||
| 91 | /* Locking resynchronize hack */ | ||
| 92 | #define LOCKING_RESYNC_ENABLE | ||
| 93 | |||
| 94 | /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. | ||
| 95 | * This is userful for the Windows task manager shortcut (ctrl+shift+esc). | ||
| 96 | */ | ||
| 97 | // #define GRAVE_ESC_CTRL_OVERRIDE | ||
| 98 | |||
| 99 | /* | ||
| 100 | * Force NKRO | ||
| 101 | * | ||
| 102 | * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved | ||
| 103 | * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the | ||
| 104 | * makefile for this to work.) | ||
| 105 | * | ||
| 106 | * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) | ||
| 107 | * until the next keyboard reset. | ||
| 108 | * | ||
| 109 | * NKRO may prevent your keystrokes from being detected in the BIOS, but it is | ||
| 110 | * fully operational during normal computer usage. | ||
| 111 | * | ||
| 112 | * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) | ||
| 113 | * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by | ||
| 114 | * bootmagic, NKRO mode will always be enabled until it is toggled again during a | ||
| 115 | * power-up. | ||
| 116 | * | ||
| 117 | */ | ||
| 118 | //#define FORCE_NKRO | ||
| 119 | |||
| 120 | /* | ||
| 121 | * Feature disable options | ||
| 122 | * These options are also useful to firmware size reduction. | ||
| 123 | */ | ||
| 124 | |||
| 125 | /* disable debug print */ | ||
| 126 | //#define NO_DEBUG | ||
| 127 | |||
| 128 | /* disable print */ | ||
| 129 | //#define NO_PRINT | ||
| 130 | |||
| 131 | /* disable action features */ | ||
| 132 | //#define NO_ACTION_LAYER | ||
| 133 | //#define NO_ACTION_TAPPING | ||
| 134 | //#define NO_ACTION_ONESHOT | ||
| 135 | |||
| 136 | /* disable these deprecated features by default */ | ||
| 137 | #define NO_ACTION_MACRO | ||
| 138 | #define NO_ACTION_FUNCTION | ||
diff --git a/keyboards/marksard/leftover30/info.json b/keyboards/marksard/leftover30/info.json new file mode 100644 index 000000000..700d08d9d --- /dev/null +++ b/keyboards/marksard/leftover30/info.json | |||
| @@ -0,0 +1,198 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "Leftover30", | ||
| 3 | "url": "https://github.com/marksard/Keyboards", | ||
| 4 | "maintainer": "marksard", | ||
| 5 | "width": 11.5, | ||
| 6 | "height": 4, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT": { | ||
| 9 | "layout": [ | ||
| 10 | { | ||
| 11 | "label": "Q", | ||
| 12 | "x": 0.5, | ||
| 13 | "y": 0 | ||
| 14 | }, | ||
| 15 | { | ||
| 16 | "label": "W", | ||
| 17 | "x": 1.5, | ||
| 18 | "y": 0 | ||
| 19 | }, | ||
| 20 | { | ||
| 21 | "label": "E", | ||
| 22 | "x": 2.5, | ||
| 23 | "y": 0 | ||
| 24 | }, | ||
| 25 | { | ||
| 26 | "label": "R", | ||
| 27 | "x": 3.5, | ||
| 28 | "y": 0 | ||
| 29 | }, | ||
| 30 | { | ||
| 31 | "label": "T", | ||
| 32 | "x": 4.5, | ||
| 33 | "y": 0 | ||
| 34 | }, | ||
| 35 | { | ||
| 36 | "label": "Y", | ||
| 37 | "x": 5.5, | ||
| 38 | "y": 0 | ||
| 39 | }, | ||
| 40 | { | ||
| 41 | "label": "U", | ||
| 42 | "x": 6.5, | ||
| 43 | "y": 0 | ||
| 44 | }, | ||
| 45 | { | ||
| 46 | "label": "I", | ||
| 47 | "x": 7.5, | ||
| 48 | "y": 0 | ||
| 49 | }, | ||
| 50 | { | ||
| 51 | "label": "O", | ||
| 52 | "x": 8.5, | ||
| 53 | "y": 0 | ||
| 54 | }, | ||
| 55 | { | ||
| 56 | "label": "P", | ||
| 57 | "x": 9.5, | ||
| 58 | "y": 0 | ||
| 59 | }, | ||
| 60 | { | ||
| 61 | "label": "BS", | ||
| 62 | "x": 10.5, | ||
| 63 | "y": 0 | ||
| 64 | }, | ||
| 65 | { | ||
| 66 | "label": "A", | ||
| 67 | "x": 0.75, | ||
| 68 | "y": 1 | ||
| 69 | }, | ||
| 70 | { | ||
| 71 | "label": "S", | ||
| 72 | "x": 1.75, | ||
| 73 | "y": 1 | ||
| 74 | }, | ||
| 75 | { | ||
| 76 | "label": "D", | ||
| 77 | "x": 2.75, | ||
| 78 | "y": 1 | ||
| 79 | }, | ||
| 80 | { | ||
| 81 | "label": "F", | ||
| 82 | "x": 3.75, | ||
| 83 | "y": 1 | ||
| 84 | }, | ||
| 85 | { | ||
| 86 | "label": "G", | ||
| 87 | "x": 4.75, | ||
| 88 | "y": 1 | ||
| 89 | }, | ||
| 90 | { | ||
| 91 | "label": "H", | ||
| 92 | "x": 5.75, | ||
| 93 | "y": 1 | ||
| 94 | }, | ||
| 95 | { | ||
| 96 | "label": "J", | ||
| 97 | "x": 6.75, | ||
| 98 | "y": 1 | ||
| 99 | }, | ||
| 100 | { | ||
| 101 | "label": "K", | ||
| 102 | "x": 7.75, | ||
| 103 | "y": 1 | ||
| 104 | }, | ||
| 105 | { | ||
| 106 | "label": "L", | ||
| 107 | "x": 8.75, | ||
| 108 | "y": 1 | ||
| 109 | }, | ||
| 110 | { | ||
| 111 | "label": "Enter", | ||
| 112 | "x": 9.75, | ||
| 113 | "y": 1, | ||
| 114 | "w": 1.75 | ||
| 115 | }, | ||
| 116 | { | ||
| 117 | "label": "Z", | ||
| 118 | "x": 1.25, | ||
| 119 | "y": 2 | ||
| 120 | }, | ||
| 121 | { | ||
| 122 | "label": "X", | ||
| 123 | "x": 2.25, | ||
| 124 | "y": 2 | ||
| 125 | }, | ||
| 126 | { | ||
| 127 | "label": "C", | ||
| 128 | "x": 3.25, | ||
| 129 | "y": 2 | ||
| 130 | }, | ||
| 131 | { | ||
| 132 | "label": "V", | ||
| 133 | "x": 4.25, | ||
| 134 | "y": 2 | ||
| 135 | }, | ||
| 136 | { | ||
| 137 | "label": "B", | ||
| 138 | "x": 5.25, | ||
| 139 | "y": 2 | ||
| 140 | }, | ||
| 141 | { | ||
| 142 | "label": "N", | ||
| 143 | "x": 6.25, | ||
| 144 | "y": 2 | ||
| 145 | }, | ||
| 146 | { | ||
| 147 | "label": "M", | ||
| 148 | "x": 7.25, | ||
| 149 | "y": 2 | ||
| 150 | }, | ||
| 151 | { | ||
| 152 | "label": "<", | ||
| 153 | "x": 8.25, | ||
| 154 | "y": 2 | ||
| 155 | }, | ||
| 156 | { | ||
| 157 | "label": ">", | ||
| 158 | "x": 9.25, | ||
| 159 | "y": 2 | ||
| 160 | }, | ||
| 161 | { | ||
| 162 | "label": "?", | ||
| 163 | "x": 10.25, | ||
| 164 | "y": 2, | ||
| 165 | "w": 1.25 | ||
| 166 | }, | ||
| 167 | { | ||
| 168 | "label": "", | ||
| 169 | "x": 0, | ||
| 170 | "y": 3 | ||
| 171 | }, | ||
| 172 | { | ||
| 173 | "label": "Alt", | ||
| 174 | "x": 1.5, | ||
| 175 | "y": 3, | ||
| 176 | "w": 1.25 | ||
| 177 | }, | ||
| 178 | { | ||
| 179 | "label": "", | ||
| 180 | "x": 2.75, | ||
| 181 | "y": 3, | ||
| 182 | "w": 6.25 | ||
| 183 | }, | ||
| 184 | { | ||
| 185 | "label": "Fn1", | ||
| 186 | "x": 9, | ||
| 187 | "y": 3 | ||
| 188 | }, | ||
| 189 | { | ||
| 190 | "label": "Ctrl", | ||
| 191 | "x": 10, | ||
| 192 | "y": 3, | ||
| 193 | "w": 1.5 | ||
| 194 | } | ||
| 195 | ] | ||
| 196 | } | ||
| 197 | } | ||
| 198 | } | ||
diff --git a/keyboards/marksard/leftover30/keymaps/default/config.h b/keyboards/marksard/leftover30/keymaps/default/config.h new file mode 100644 index 000000000..8bffbbb3b --- /dev/null +++ b/keyboards/marksard/leftover30/keymaps/default/config.h | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | /* Copyright 2020 marksard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | // place overrides here | ||
| 20 | #define TAPPING_TERM 200 | ||
| 21 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 22 | |||
| 23 | #define TAPPING_LAYER_TERM 150 // Custom LT Tapping term | ||
| 24 | #define TAPPING_TERM_PER_KEY | ||
diff --git a/keyboards/marksard/leftover30/keymaps/default/keymap.c b/keyboards/marksard/leftover30/keymaps/default/keymap.c new file mode 100644 index 000000000..60751cd1c --- /dev/null +++ b/keyboards/marksard/leftover30/keymaps/default/keymap.c | |||
| @@ -0,0 +1,162 @@ | |||
| 1 | /* Copyright 2020 marksard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | enum layer_number { | ||
| 19 | _BASE, | ||
| 20 | _LOWER, | ||
| 21 | _RAISE, | ||
| 22 | _ADJUST, | ||
| 23 | }; | ||
| 24 | |||
| 25 | enum custom_keycodes { | ||
| 26 | RGBRST = SAFE_RANGE, | ||
| 27 | LOWER, | ||
| 28 | RAISE, | ||
| 29 | KANJI, | ||
| 30 | }; | ||
| 31 | |||
| 32 | // #define KC_ESAD LT(_ADJUST, KC_ESC) | ||
| 33 | // #define KC_BSLO LT(_LOWER, KC_BSPC) | ||
| 34 | #define KC_LOWR MO(_LOWER) | ||
| 35 | #define KC_SPRA LT(_RAISE, KC_SPC) | ||
| 36 | #define KC_AJST MO(_ADJUST) | ||
| 37 | |||
| 38 | #define KC_Q_AL LALT_T(KC_Q) | ||
| 39 | #define KC_A_CT LCTL_T(KC_A) | ||
| 40 | #define KC_Z_SF LSFT_T(KC_Z) | ||
| 41 | #define KC_X_AL LALT_T(KC_X) | ||
| 42 | #define KC_ENSF RSFT_T(KC_ENT) | ||
| 43 | #define KC_SLSF RSFT_T(KC_SLSH) | ||
| 44 | |||
| 45 | #define KC_F1AL LALT_T(KC_F1) | ||
| 46 | #define KC_F6CT LCTL_T(KC_F6) | ||
| 47 | #define KC_11SF LSFT_T(KC_F11) | ||
| 48 | #define KC_12AL LALT_T(KC_F12) | ||
| 49 | #define KC_QUSF RCTL_T(KC_QUOT) | ||
| 50 | #define KC_ROSF RSFT_T(KC_RO) | ||
| 51 | |||
| 52 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 53 | [_BASE] = LAYOUT_all( | ||
| 54 | //,-----------------------------------------------------------------------------------------------------------. | ||
| 55 | KC_Q_AL, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | ||
| 56 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 57 | KC_A_CT, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENSF, | ||
| 58 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 59 | KC_Z_SF, KC_X_AL, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSF, | ||
| 60 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 61 | KC_LCTL, KC_LGUI, KC_SPRA, KC_LOWR, KC_RCTL | ||
| 62 | //`-----------------------------------------------------------------------------------------------------------' | ||
| 63 | ), | ||
| 64 | |||
| 65 | [_LOWER] = LAYOUT_all( | ||
| 66 | //,-----------------------------------------------------------------------------------------------------------. | ||
| 67 | KC_F1AL, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC, KC_BSLS, | ||
| 68 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 69 | KC_F6CT, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUSF, | ||
| 70 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 71 | KC_11SF, KC_12AL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_GRV, KC_RO, KC_SLSH, KC_ROSF, | ||
| 72 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 73 | _______, _______, KC_AJST, _______, _______ | ||
| 74 | //`-----------------------------------------------------------------------------------------------------------' | ||
| 75 | ), | ||
| 76 | |||
| 77 | [_RAISE] = LAYOUT_all( | ||
| 78 | //,-----------------------------------------------------------------------------------------------------------. | ||
| 79 | KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, | ||
| 80 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 81 | KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, | ||
| 82 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 83 | KC_LSFT, XXXXXXX, KC_ESC, KC_TAB, KANJI, KC_DEL, KC_COMM, KC_DOT, KC_BSLS, KC_ROSF, | ||
| 84 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 85 | _______, _______, _______, KC_AJST, _______ | ||
| 86 | //`-----------------------------------------------------------------------------------------------------------' | ||
| 87 | ), | ||
| 88 | |||
| 89 | [_ADJUST] = LAYOUT_all( | ||
| 90 | //,-----------------------------------------------------------------------------------------------------------. | ||
| 91 | RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_PSCR, | ||
| 92 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 93 | RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NLCK, | ||
| 94 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 95 | RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, KC_CAPS, | ||
| 96 | //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------| | ||
| 97 | _______, _______, _______, _______, KC_CAPS | ||
| 98 | //`-----------------------------------------------------------------------------------------------------------' | ||
| 99 | ) | ||
| 100 | }; | ||
| 101 | |||
| 102 | uint16_t get_tapping_term(uint16_t keycode) { | ||
| 103 | switch (keycode) { | ||
| 104 | case KC_SPRA: | ||
| 105 | return TAPPING_LAYER_TERM; | ||
| 106 | default: | ||
| 107 | return TAPPING_TERM; | ||
| 108 | } | ||
| 109 | } | ||
| 110 | |||
| 111 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 112 | |||
| 113 | bool result = false; | ||
| 114 | switch (keycode) { | ||
| 115 | case KANJI: | ||
| 116 | if (record->event.pressed) { | ||
| 117 | register_code16(keymap_config.swap_lalt_lgui ? A(KC_GRV) : KC_LANG2); | ||
| 118 | } else { | ||
| 119 | unregister_code16(keymap_config.swap_lalt_lgui ? A(KC_GRV) : KC_LANG2); | ||
| 120 | } | ||
| 121 | break; | ||
| 122 | #ifdef RGBLIGHT_ENABLE | ||
| 123 | case RGBRST: | ||
| 124 | if (record->event.pressed) { | ||
| 125 | eeconfig_update_rgblight_default(); | ||
| 126 | rgblight_enable(); | ||
| 127 | } | ||
| 128 | break; | ||
| 129 | #endif | ||
| 130 | default: | ||
| 131 | result = true; | ||
| 132 | break; | ||
| 133 | } | ||
| 134 | |||
| 135 | return result; | ||
| 136 | } | ||
| 137 | |||
| 138 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 139 | if (index == 0) { | ||
| 140 | if (IS_LAYER_ON(_ADJUST)) { | ||
| 141 | if (clockwise) { | ||
| 142 | rgblight_increase_hue_noeeprom(); | ||
| 143 | } else { | ||
| 144 | rgblight_decrease_hue_noeeprom(); | ||
| 145 | } | ||
| 146 | } else if (IS_LAYER_ON(_LOWER)) { | ||
| 147 | tap_code16((clockwise == true) ? LCTL(KC_Y) : LCTL(KC_Z)); | ||
| 148 | } else if (IS_LAYER_ON(_RAISE)) { | ||
| 149 | tap_code16((clockwise == true) ? S(KC_DOWN) : S(KC_UP)); | ||
| 150 | } else { | ||
| 151 | tap_code((clockwise == true) ? KC_WH_D : KC_WH_U); | ||
| 152 | } | ||
| 153 | |||
| 154 | } | ||
| 155 | } | ||
| 156 | |||
| 157 | // for exsample customize of LED inducator | ||
| 158 | // bool led_update_user(led_t led_state) { | ||
| 159 | // writePin(D2, IS_LAYER_ON(_LOWER)); | ||
| 160 | // writePin(D1, IS_LAYER_ON(_RAISE)); | ||
| 161 | // return false; | ||
| 162 | // } | ||
diff --git a/keyboards/marksard/leftover30/keymaps/default/readme.md b/keyboards/marksard/leftover30/keymaps/default/readme.md new file mode 100644 index 000000000..05dcdc3d1 --- /dev/null +++ b/keyboards/marksard/leftover30/keymaps/default/readme.md | |||
| @@ -0,0 +1 @@ | |||
| # The default keymap for leftover30 | |||
diff --git a/keyboards/marksard/leftover30/keymaps/default/rules.mk b/keyboards/marksard/leftover30/keymaps/default/rules.mk new file mode 100644 index 000000000..5af1ba853 --- /dev/null +++ b/keyboards/marksard/leftover30/keymaps/default/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| ENCODER_ENABLE = yes | |||
diff --git a/keyboards/marksard/leftover30/leftover30.c b/keyboards/marksard/leftover30/leftover30.c new file mode 100644 index 000000000..df8152144 --- /dev/null +++ b/keyboards/marksard/leftover30/leftover30.c | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | /* Copyright 2020 marksard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include "leftover30.h" | ||
| 18 | |||
| 19 | // Optional override functions below. | ||
| 20 | // You can leave any or all of these undefined. | ||
| 21 | // These are only required if you want to perform custom actions. | ||
| 22 | |||
| 23 | void keyboard_pre_init_user(void) { | ||
| 24 | /* Set CAPSLOCK indicator pin as output */ | ||
| 25 | setPinOutput(D1); | ||
| 26 | /* Set NUMLOCK indicator pin as output */ | ||
| 27 | setPinOutput(D2); | ||
| 28 | } | ||
| 29 | |||
| 30 | bool led_update_kb(led_t led_state) { | ||
| 31 | bool res = led_update_user(led_state); | ||
| 32 | if(res) { | ||
| 33 | writePin(D2, led_state.num_lock); | ||
| 34 | writePin(D1, led_state.caps_lock); | ||
| 35 | } | ||
| 36 | return res; | ||
| 37 | } | ||
diff --git a/keyboards/marksard/leftover30/leftover30.h b/keyboards/marksard/leftover30/leftover30.h new file mode 100644 index 000000000..901b9b570 --- /dev/null +++ b/keyboards/marksard/leftover30/leftover30.h | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | /* Copyright 2020 marksard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #include "quantum.h" | ||
| 20 | |||
| 21 | /* This is a shortcut to help you visually see your layout. | ||
| 22 | * | ||
| 23 | * The first section contains all of the arguments representing the physical | ||
| 24 | * layout of the board and position of the keys. | ||
| 25 | * | ||
| 26 | * The second converts the arguments into a two-dimensional array which | ||
| 27 | * represents the switch matrix. | ||
| 28 | */ | ||
| 29 | #define LAYOUT_all( \ | ||
| 30 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a,\ | ||
| 31 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,\ | ||
| 32 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29,\ | ||
| 33 | k30, k31, k32, k33, k34\ | ||
| 34 | ) \ | ||
| 35 | { \ | ||
| 36 | { k09, k08, k07, k06, k05 }, \ | ||
| 37 | { k19, k18, k17, k16, k15 }, \ | ||
| 38 | { k29, k28, k27, k26, k25 }, \ | ||
| 39 | { k0a, k34, k33, k32, k31 }, \ | ||
| 40 | \ | ||
| 41 | { k04, k03, k02, k01, k00 }, \ | ||
| 42 | { k14, k13, k12, k11, k10 }, \ | ||
| 43 | { k24, k23, k22, k21, k20 }, \ | ||
| 44 | { KC_NO, KC_NO, KC_NO, KC_NO, k30 } \ | ||
| 45 | } | ||
diff --git a/keyboards/marksard/leftover30/readme.md b/keyboards/marksard/leftover30/readme.md new file mode 100644 index 000000000..6fefb057f --- /dev/null +++ b/keyboards/marksard/leftover30/readme.md | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | # leftover30 | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | A 30% mini keyboard. | ||
| 6 | |||
| 7 | * Keyboard Maintainer: [marksard](https://github.com/marksard) | ||
| 8 | * Hardware Supported: LEFTOVER30 PCB (with Pro Micro) | ||
| 9 | * Hardware Availability: [Mark's Garage](https://marksard.booth.pm/) | ||
| 10 | |||
| 11 | Make example for this keyboard (after setting up your build environment): | ||
| 12 | |||
| 13 | make marksard/leftover30:default | ||
| 14 | |||
| 15 | 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). | ||
| 16 | |||
| 17 | [Build guide](https://github.com/marksard/Keyboards/blob/master/leftover30/documents/leftover30_buildguide.md) | ||
diff --git a/keyboards/marksard/leftover30/rules.mk b/keyboards/marksard/leftover30/rules.mk new file mode 100644 index 000000000..dd52fe113 --- /dev/null +++ b/keyboards/marksard/leftover30/rules.mk | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = caterina | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = yes # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = no # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
diff --git a/keyboards/marksard/rhymestone/common/glcdfont.c b/keyboards/marksard/rhymestone/common/glcdfont.c new file mode 100644 index 000000000..d9438aa5a --- /dev/null +++ b/keyboards/marksard/rhymestone/common/glcdfont.c | |||
| @@ -0,0 +1,233 @@ | |||
| 1 | // This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. | ||
| 2 | // See gfxfont.h for newer custom bitmap font info. | ||
| 3 | |||
| 4 | #include "progmem.h" | ||
| 5 | |||
| 6 | // Standard ASCII 5x7 font | ||
| 7 | |||
| 8 | static const unsigned char font[] PROGMEM = { | ||
| 9 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 10 | 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, | ||
| 11 | 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, | ||
| 12 | 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, | ||
| 13 | 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, | ||
| 14 | 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, | ||
| 15 | 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, | ||
| 16 | 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, | ||
| 17 | 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, | ||
| 18 | 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, | ||
| 19 | 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, | ||
| 20 | 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, | ||
| 21 | 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, | ||
| 22 | 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, | ||
| 23 | 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, | ||
| 24 | 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, | ||
| 25 | 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, | ||
| 26 | 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, | ||
| 27 | 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, | ||
| 28 | 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, | ||
| 29 | 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, | ||
| 30 | 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, | ||
| 31 | 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, | ||
| 32 | 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, | ||
| 33 | 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, | ||
| 34 | 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, | ||
| 35 | 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, | ||
| 36 | 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, | ||
| 37 | 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, | ||
| 38 | 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, | ||
| 39 | 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, | ||
| 40 | 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, | ||
| 41 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 42 | 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, | ||
| 43 | 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, | ||
| 44 | 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, | ||
| 45 | 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, | ||
| 46 | 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, | ||
| 47 | 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, | ||
| 48 | 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, | ||
| 49 | 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, | ||
| 50 | 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, | ||
| 51 | 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, | ||
| 52 | 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, | ||
| 53 | 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, | ||
| 54 | 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, | ||
| 55 | 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, | ||
| 56 | 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, | ||
| 57 | 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, | ||
| 58 | 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, | ||
| 59 | 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, | ||
| 60 | 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, | ||
| 61 | 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, | ||
| 62 | 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, | ||
| 63 | 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, | ||
| 64 | 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, | ||
| 65 | 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, | ||
| 66 | 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, | ||
| 67 | 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, | ||
| 68 | 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, | ||
| 69 | 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, | ||
| 70 | 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, | ||
| 71 | 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, | ||
| 72 | 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, | ||
| 73 | 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, | ||
| 74 | 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, | ||
| 75 | 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, | ||
| 76 | 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, | ||
| 77 | 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, | ||
| 78 | 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, | ||
| 79 | 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, | ||
| 80 | 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, | ||
| 81 | 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, | ||
| 82 | 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, | ||
| 83 | 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, | ||
| 84 | 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, | ||
| 85 | 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, | ||
| 86 | 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, | ||
| 87 | 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, | ||
| 88 | 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, | ||
| 89 | 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, | ||
| 90 | 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, | ||
| 91 | 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, | ||
| 92 | 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, | ||
| 93 | 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, | ||
| 94 | 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, | ||
| 95 | 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, | ||
| 96 | 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, | ||
| 97 | 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, | ||
| 98 | 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, | ||
| 99 | 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, | ||
| 100 | 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, | ||
| 101 | 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, | ||
| 102 | 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, | ||
| 103 | 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, | ||
| 104 | 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, | ||
| 105 | 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, | ||
| 106 | 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, | ||
| 107 | 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, | ||
| 108 | 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, | ||
| 109 | 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, | ||
| 110 | 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, | ||
| 111 | 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, | ||
| 112 | 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, | ||
| 113 | 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, | ||
| 114 | 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, | ||
| 115 | 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, | ||
| 116 | 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, | ||
| 117 | 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, | ||
| 118 | 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, | ||
| 119 | 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, | ||
| 120 | 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, | ||
| 121 | 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, | ||
| 122 | 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, | ||
| 123 | 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, | ||
| 124 | 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, | ||
| 125 | 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, | ||
| 126 | 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, | ||
| 127 | 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, | ||
| 128 | 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, | ||
| 129 | 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, | ||
| 130 | 0x4C, 0x10, 0x10, 0x10, 0x7C, 0x00, | ||
| 131 | 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, | ||
| 132 | 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, | ||
| 133 | 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, | ||
| 134 | 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, | ||
| 135 | 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, | ||
| 136 | 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, | ||
| 137 | 0x00, 0x00, 0xD8, 0xDE, 0xDE, 0xDE, | ||
| 138 | 0x1E, 0x1E, 0x1E, 0x1E, 0xFE, 0xFE, | ||
| 139 | 0xFE, 0xFE, 0x00, 0xF0, 0xFF, 0xFF, | ||
| 140 | 0xFF, 0xE3, 0xE0, 0xE0, 0xE0, 0xE0, | ||
| 141 | 0xE0, 0xE0, 0x00, 0x80, 0xE0, 0xE0, | ||
| 142 | 0xE0, 0x00, 0x00, 0x00, 0x00, 0xE0, | ||
| 143 | 0xE0, 0xE0, 0xE0, 0x00, 0xE0, 0xE0, | ||
| 144 | 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, | ||
| 145 | 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, | ||
| 146 | 0xE0, 0xE0, 0xE0, 0x00, 0xC0, 0xE0, | ||
| 147 | 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, | ||
| 148 | 0xE0, 0xE0, 0xE0, 0x00, 0x80, 0xE0, | ||
| 149 | 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, | ||
| 150 | 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0xFC, | ||
| 151 | 0xFC, 0xFC, 0xFC, 0xE0, 0xE0, 0x80, | ||
| 152 | 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, | ||
| 153 | 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x00, | ||
| 154 | 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, | ||
| 155 | 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x80, | ||
| 156 | 0x00, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, | ||
| 157 | 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, | ||
| 158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 168 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 169 | 0x80, 0xFE, 0xFF, 0xFF, 0x7F, 0x0F, | ||
| 170 | 0x0E, 0x0E, 0xCE, 0xFF, 0xFF, 0xFF, | ||
| 171 | 0x7F, 0x80, 0xFE, 0xFF, 0xFF, 0x3F, | ||
| 172 | 0x01, 0x01, 0x01, 0x81, 0xFF, 0xFF, | ||
| 173 | 0xFF, 0x3F, 0xE0, 0xFF, 0xFF, 0xFF, | ||
| 174 | 0x8F, 0x80, 0x80, 0x80, 0xF8, 0xFF, | ||
| 175 | 0xFF, 0x7F, 0xC1, 0xFE, 0xFF, 0xFF, | ||
| 176 | 0x1F, 0x01, 0x01, 0xE1, 0xFF, 0xFF, | ||
| 177 | 0xFF, 0x0F, 0x01, 0x01, 0xF1, 0xFF, | ||
| 178 | 0xFF, 0xFF, 0x07, 0xFC, 0xFF, 0xFF, | ||
| 179 | 0xFF, 0x9D, 0x9D, 0x9D, 0x9D, 0x9F, | ||
| 180 | 0x9F, 0x9F, 0x1F, 0x80, 0x9F, 0x9F, | ||
| 181 | 0x9F, 0x9F, 0x9D, 0x9D, 0xDD, 0xFD, | ||
| 182 | 0xFD, 0xFD, 0x39, 0xC0, 0xFF, 0xFF, | ||
| 183 | 0xFF, 0x9F, 0x81, 0x01, 0xF1, 0xFF, | ||
| 184 | 0xFF, 0xFF, 0x87, 0x81, 0x81, 0x81, | ||
| 185 | 0xF9, 0xFF, 0xFF, 0xFF, 0x03, 0xFC, | ||
| 186 | 0xFF, 0xFF, 0x3F, 0x01, 0x01, 0x01, | ||
| 187 | 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0xC0, | ||
| 188 | 0xFF, 0xFF, 0xFF, 0x9F, 0x9D, 0x9D, | ||
| 189 | 0x9D, 0x9D, 0x9F, 0x9F, 0x1F, 0x00, | ||
| 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 193 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 194 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 195 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 196 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 197 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 198 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 199 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 200 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 201 | 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, | ||
| 202 | 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, | ||
| 203 | 0x00, 0x07, 0x07, 0x07, 0x07, 0x00, | ||
| 204 | 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, | ||
| 205 | 0x07, 0x60, 0x73, 0x77, 0x77, 0x77, | ||
| 206 | 0x77, 0x77, 0x77, 0x7F, 0x7F, 0x7F, | ||
| 207 | 0x1F, 0x00, 0x07, 0x07, 0x07, 0x07, | ||
| 208 | 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, | ||
| 209 | 0x03, 0x00, 0x00, 0x00, 0x07, 0x07, | ||
| 210 | 0x07, 0x01, 0x00, 0x07, 0x07, 0x07, | ||
| 211 | 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, | ||
| 212 | 0x07, 0x00, 0x00, 0x07, 0x07, 0x07, | ||
| 213 | 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, | ||
| 214 | 0x07, 0x03, 0x00, 0x03, 0x07, 0x07, | ||
| 215 | 0x07, 0x07, 0x07, 0x00, 0x03, 0x07, | ||
| 216 | 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, | ||
| 217 | 0x07, 0x07, 0x03, 0x00, 0x07, 0x07, | ||
| 218 | 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
| 219 | 0x07, 0x07, 0x07, 0x07, 0x00, 0x03, | ||
| 220 | 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, | ||
| 221 | 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, | ||
| 222 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 225 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 226 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 227 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 228 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 231 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 232 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 233 | }; | ||
diff --git a/keyboards/marksard/rhymestone/common/oled_helper.c b/keyboards/marksard/rhymestone/common/oled_helper.c new file mode 100644 index 000000000..537650025 --- /dev/null +++ b/keyboards/marksard/rhymestone/common/oled_helper.c | |||
| @@ -0,0 +1,87 @@ | |||
| 1 | #ifdef OLED_DRIVER_ENABLE | ||
| 2 | #include QMK_KEYBOARD_H | ||
| 3 | #include <stdio.h> | ||
| 4 | #include <string.h> | ||
| 5 | |||
| 6 | void render_logo(void) { | ||
| 7 | |||
| 8 | static const char PROGMEM logo_buf[]={ | ||
| 9 | 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, | ||
| 10 | 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, | ||
| 11 | 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, | ||
| 12 | 0}; | ||
| 13 | |||
| 14 | oled_write_P(logo_buf, false); | ||
| 15 | } | ||
| 16 | |||
| 17 | void render_lock_status(void) { | ||
| 18 | |||
| 19 | // Host Keyboard LED Status | ||
| 20 | led_t led_state = host_keyboard_led_state(); | ||
| 21 | |||
| 22 | oled_write_P(PSTR("Lock:"), false); | ||
| 23 | if (led_state.num_lock) { | ||
| 24 | oled_write_P(PSTR("Num "), false); | ||
| 25 | } | ||
| 26 | if (led_state.caps_lock) { | ||
| 27 | oled_write_P(PSTR("Caps "), false); | ||
| 28 | } | ||
| 29 | if (led_state.scroll_lock) { | ||
| 30 | oled_write_P(PSTR("Scrl"), false); | ||
| 31 | } | ||
| 32 | |||
| 33 | oled_write_P(PSTR("\n"), false); | ||
| 34 | } | ||
| 35 | |||
| 36 | static char keylog_buf[24] = "Key state ready.\n"; | ||
| 37 | const char code_to_name[60] = { | ||
| 38 | ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', | ||
| 39 | 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', | ||
| 40 | 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', | ||
| 41 | '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', | ||
| 42 | 'R', 'E', 'B', 'T', ' ', '-', ' ', '@', ' ', ' ', | ||
| 43 | ' ', ';', ':', ' ', ',', '.', '/', ' ', ' ', ' '}; | ||
| 44 | |||
| 45 | void update_key_status(uint16_t keycode, keyrecord_t *record) { | ||
| 46 | |||
| 47 | if (!record->event.pressed) return; | ||
| 48 | |||
| 49 | char name = (keycode < 60) ? code_to_name[keycode] : ' '; | ||
| 50 | snprintf(keylog_buf, sizeof(keylog_buf) - 1, "Key:%dx%d %2x %c\n", | ||
| 51 | record->event.key.row, record->event.key.col, | ||
| 52 | (uint16_t)keycode, name); | ||
| 53 | } | ||
| 54 | |||
| 55 | void render_key_status(void) { | ||
| 56 | |||
| 57 | oled_write(keylog_buf, false); | ||
| 58 | } | ||
| 59 | |||
| 60 | #ifdef RGBLIGHT_ENABLE | ||
| 61 | extern rgblight_config_t rgblight_config; | ||
| 62 | |||
| 63 | static char led_buf[24] = "LED state ready.\n"; | ||
| 64 | rgblight_config_t rgblight_config_bak; | ||
| 65 | void update_led_status(void) { | ||
| 66 | |||
| 67 | if (rgblight_config_bak.enable != rgblight_config.enable || | ||
| 68 | rgblight_config_bak.mode != rgblight_config.mode || | ||
| 69 | rgblight_config_bak.hue != rgblight_config.hue || | ||
| 70 | rgblight_config_bak.sat != rgblight_config.sat || | ||
| 71 | rgblight_config_bak.val != rgblight_config.val | ||
| 72 | ) { | ||
| 73 | snprintf(led_buf, sizeof(led_buf) - 1, "LED%c:%2d hsv:%2d %2d %2d\n", | ||
| 74 | rgblight_config.enable ? '*' : '.', (uint8_t)rgblight_config.mode, | ||
| 75 | (uint8_t)(rgblight_config.hue / RGBLIGHT_HUE_STEP), | ||
| 76 | (uint8_t)(rgblight_config.sat / RGBLIGHT_SAT_STEP), | ||
| 77 | (uint8_t)(rgblight_config.val / RGBLIGHT_VAL_STEP)); | ||
| 78 | rgblight_config_bak = rgblight_config; | ||
| 79 | } | ||
| 80 | } | ||
| 81 | |||
| 82 | void render_led_status(void) { | ||
| 83 | |||
| 84 | oled_write(led_buf, false); | ||
| 85 | } | ||
| 86 | #endif | ||
| 87 | #endif | ||
diff --git a/keyboards/marksard/rhymestone/common/oled_helper.h b/keyboards/marksard/rhymestone/common/oled_helper.h new file mode 100644 index 000000000..02f7b94fa --- /dev/null +++ b/keyboards/marksard/rhymestone/common/oled_helper.h | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | #ifdef OLED_DRIVER_ENABLE | ||
| 2 | |||
| 3 | void render_logo(void); | ||
| 4 | void render_lock_status(void); | ||
| 5 | void update_key_status(uint16_t keycode, keyrecord_t *record); | ||
| 6 | void render_key_status(void); | ||
| 7 | |||
| 8 | #define RENDER_LOGO() render_logo() | ||
| 9 | #define RENDER_LOCK_STATUS() render_lock_status() | ||
| 10 | #define UPDATE_KEY_STATUS(a, b) update_key_status(a, b) | ||
| 11 | #define RENDER_KEY_STATUS() render_key_status() | ||
| 12 | |||
| 13 | #ifdef RGBLIGHT_ENABLE | ||
| 14 | void update_led_status(void); | ||
| 15 | void render_led_status(void); | ||
| 16 | #define UPDATE_LED_STATUS() update_led_status() | ||
| 17 | #define RENDER_LED_STATUS() render_led_status() | ||
| 18 | #else | ||
| 19 | #define UPDATE_LED_STATUS() | ||
| 20 | #define RENDER_LED_STATUS() | ||
| 21 | #endif | ||
| 22 | |||
| 23 | #else | ||
| 24 | |||
| 25 | #define RENDER_LOGO() | ||
| 26 | #define RENDER_LOCK_STATUS() | ||
| 27 | #define UPDATE_KEY_STATUS(a, b) | ||
| 28 | #define RENDER_KEY_STATUS() | ||
| 29 | #define UPDATE_LED_STATUS() | ||
| 30 | #define RENDER_LED_STATUS() | ||
| 31 | |||
| 32 | #endif | ||
diff --git a/keyboards/marksard/rhymestone/info.json b/keyboards/marksard/rhymestone/info.json new file mode 100644 index 000000000..2c1ba9b37 --- /dev/null +++ b/keyboards/marksard/rhymestone/info.json | |||
| @@ -0,0 +1,213 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "Rhymestone", | ||
| 3 | "url": "https://github.com/marksard/Keyboards", | ||
| 4 | "maintainer": "marksard", | ||
| 5 | "width": 11, | ||
| 6 | "height": 4, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT_ortho_4x10": { | ||
| 9 | "layout": [ | ||
| 10 | { | ||
| 11 | "label": "Q", | ||
| 12 | "x": 0, | ||
| 13 | "y": 0 | ||
| 14 | }, | ||
| 15 | { | ||
| 16 | "label": "W", | ||
| 17 | "x": 1, | ||
| 18 | "y": 0 | ||
| 19 | }, | ||
| 20 | { | ||
| 21 | "label": "E", | ||
| 22 | "x": 2, | ||
| 23 | "y": 0 | ||
| 24 | }, | ||
| 25 | { | ||
| 26 | "label": "R", | ||
| 27 | "x": 3, | ||
| 28 | "y": 0 | ||
| 29 | }, | ||
| 30 | { | ||
| 31 | "label": "T", | ||
| 32 | "x": 4, | ||
| 33 | "y": 0 | ||
| 34 | }, | ||
| 35 | { | ||
| 36 | "label": "Y", | ||
| 37 | "x": 6, | ||
| 38 | "y": 0 | ||
| 39 | }, | ||
| 40 | { | ||
| 41 | "label": "U", | ||
| 42 | "x": 7, | ||
| 43 | "y": 0 | ||
| 44 | }, | ||
| 45 | { | ||
| 46 | "label": "I", | ||
| 47 | "x": 8, | ||
| 48 | "y": 0 | ||
| 49 | }, | ||
| 50 | { | ||
| 51 | "label": "O", | ||
| 52 | "x": 9, | ||
| 53 | "y": 0 | ||
| 54 | }, | ||
| 55 | { | ||
| 56 | "label": "P", | ||
| 57 | "x": 10, | ||
| 58 | "y": 0 | ||
| 59 | }, | ||
| 60 | { | ||
| 61 | "label": "A", | ||
| 62 | "x": 0, | ||
| 63 | "y": 1 | ||
| 64 | }, | ||
| 65 | { | ||
| 66 | "label": "S", | ||
| 67 | "x": 1, | ||
| 68 | "y": 1 | ||
| 69 | }, | ||
| 70 | { | ||
| 71 | "label": "D", | ||
| 72 | "x": 2, | ||
| 73 | "y": 1 | ||
| 74 | }, | ||
| 75 | { | ||
| 76 | "label": "F", | ||
| 77 | "x": 3, | ||
| 78 | "y": 1 | ||
| 79 | }, | ||
| 80 | { | ||
| 81 | "label": "G", | ||
| 82 | "x": 4, | ||
| 83 | "y": 1 | ||
| 84 | }, | ||
| 85 | { | ||
| 86 | "label": "H", | ||
| 87 | "x": 6, | ||
| 88 | "y": 1 | ||
| 89 | }, | ||
| 90 | { | ||
| 91 | "label": "J", | ||
| 92 | "x": 7, | ||
| 93 | "y": 1 | ||
| 94 | }, | ||
| 95 | { | ||
| 96 | "label": "K", | ||
| 97 | "x": 8, | ||
| 98 | "y": 1 | ||
| 99 | }, | ||
| 100 | { | ||
| 101 | "label": "L", | ||
| 102 | "x": 9, | ||
| 103 | "y": 1 | ||
| 104 | }, | ||
| 105 | { | ||
| 106 | "label": "Enter", | ||
| 107 | "x": 10, | ||
| 108 | "y": 1 | ||
| 109 | }, | ||
| 110 | { | ||
| 111 | "label": "Z", | ||
| 112 | "x": 0, | ||
| 113 | "y": 2 | ||
| 114 | }, | ||
| 115 | { | ||
| 116 | "label": "X", | ||
| 117 | "x": 1, | ||
| 118 | "y": 2 | ||
| 119 | }, | ||
| 120 | { | ||
| 121 | "label": "C", | ||
| 122 | "x": 2, | ||
| 123 | "y": 2 | ||
| 124 | }, | ||
| 125 | { | ||
| 126 | "label": "V", | ||
| 127 | "x": 3, | ||
| 128 | "y": 2 | ||
| 129 | }, | ||
| 130 | { | ||
| 131 | "label": "B", | ||
| 132 | "x": 4, | ||
| 133 | "y": 2 | ||
| 134 | }, | ||
| 135 | { | ||
| 136 | "label": "N", | ||
| 137 | "x": 6, | ||
| 138 | "y": 2 | ||
| 139 | }, | ||
| 140 | { | ||
| 141 | "label": "M", | ||
| 142 | "x": 7, | ||
| 143 | "y": 2 | ||
| 144 | }, | ||
| 145 | { | ||
| 146 | "label": ",", | ||
| 147 | "x": 8, | ||
| 148 | "y": 2 | ||
| 149 | }, | ||
| 150 | { | ||
| 151 | "label": ".", | ||
| 152 | "x": 9, | ||
| 153 | "y": 2 | ||
| 154 | }, | ||
| 155 | { | ||
| 156 | "label": "/", | ||
| 157 | "x": 10, | ||
| 158 | "y": 2 | ||
| 159 | }, | ||
| 160 | { | ||
| 161 | "label": "Ctrl", | ||
| 162 | "x": 0, | ||
| 163 | "y": 3 | ||
| 164 | }, | ||
| 165 | { | ||
| 166 | "label": "Win", | ||
| 167 | "x": 1, | ||
| 168 | "y": 3 | ||
| 169 | }, | ||
| 170 | { | ||
| 171 | "label": "Alt", | ||
| 172 | "x": 2, | ||
| 173 | "y": 3 | ||
| 174 | }, | ||
| 175 | { | ||
| 176 | "label": "Lower", | ||
| 177 | "x": 3, | ||
| 178 | "y": 3 | ||
| 179 | }, | ||
| 180 | { | ||
| 181 | "label": "backspace", | ||
| 182 | "x": 4, | ||
| 183 | "y": 3 | ||
| 184 | }, | ||
| 185 | { | ||
| 186 | "label": "space", | ||
| 187 | "x": 6, | ||
| 188 | "y": 3 | ||
| 189 | }, | ||
| 190 | { | ||
| 191 | "label": "Upper", | ||
| 192 | "x": 7, | ||
| 193 | "y": 3 | ||
| 194 | }, | ||
| 195 | { | ||
| 196 | "label": "Alt", | ||
| 197 | "x": 8, | ||
| 198 | "y": 3 | ||
| 199 | }, | ||
| 200 | { | ||
| 201 | "label": "App", | ||
| 202 | "x": 9, | ||
| 203 | "y": 3 | ||
| 204 | }, | ||
| 205 | { | ||
| 206 | "label": "Ctrl", | ||
| 207 | "x": 10, | ||
| 208 | "y": 3 | ||
| 209 | } | ||
| 210 | ] | ||
| 211 | } | ||
| 212 | } | ||
| 213 | } | ||
diff --git a/keyboards/marksard/rhymestone/keymaps/default/config.h b/keyboards/marksard/rhymestone/keymaps/default/config.h new file mode 100644 index 000000000..95f2d039b --- /dev/null +++ b/keyboards/marksard/rhymestone/keymaps/default/config.h | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | /* Copyright 2020 marksard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | // place overrides here | ||
| 20 | |||
| 21 | // If you use the HashTwenty(alpha), please enable USE_HASHTWENTY | ||
| 22 | // #define USE_HASHTWENTY | ||
| 23 | |||
| 24 | // If you plug in the USB on the right side, please enable MASTER_RIGHT | ||
| 25 | // #define MASTER_RIGHT | ||
| 26 | |||
| 27 | #define OLED_FONT_H "keyboards/rhymestone/common/glcdfont.c" | ||
diff --git a/keyboards/marksard/rhymestone/keymaps/default/keymap.c b/keyboards/marksard/rhymestone/keymaps/default/keymap.c new file mode 100644 index 000000000..2d695f76b --- /dev/null +++ b/keyboards/marksard/rhymestone/keymaps/default/keymap.c | |||
| @@ -0,0 +1,226 @@ | |||
| 1 | /* Copyright 2020 marksard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | #include "./common/oled_helper.h" | ||
| 18 | |||
| 19 | enum layer_number { | ||
| 20 | _BASE, | ||
| 21 | _LOWER, | ||
| 22 | _RAISE, | ||
| 23 | _ADJUST, | ||
| 24 | }; | ||
| 25 | |||
| 26 | enum custom_keycodes { | ||
| 27 | LOWER = SAFE_RANGE, | ||
| 28 | RAISE, | ||
| 29 | ADJUST, | ||
| 30 | KANJI, | ||
| 31 | RGBRST | ||
| 32 | }; | ||
| 33 | |||
| 34 | // Base layer mod tap | ||
| 35 | #define KC_Z_SF LSFT_T(KC_Z) | ||
| 36 | #define KC_SLSF RSFT_T(KC_SLSH) | ||
| 37 | |||
| 38 | // Lower layer mod tap | ||
| 39 | #define KC_11SF LSFT_T(KC_F11) | ||
| 40 | #define KC_GRSF RSFT_T(KC_GRV) | ||
| 41 | |||
| 42 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 43 | [_BASE] = LAYOUT_ortho_4x10( | ||
| 44 | //,---------------------------------------------------------------------------------------------------. | ||
| 45 | KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, | ||
| 46 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 47 | KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, | ||
| 48 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 49 | KC_Z_SF, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSF, | ||
| 50 | //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | ||
| 51 | KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RGUI, KC_APP, KC_RCTL | ||
| 52 | //,---------------------------------------------------------------------------------------------------. | ||
| 53 | ), | ||
| 54 | |||
| 55 | [_LOWER] = LAYOUT_ortho_4x10( | ||
| 56 | //,---------------------------------------------------------------------------------------------------. | ||
| 57 | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
| 58 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 59 | KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, | ||
| 60 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 61 | KC_11SF, KC_F12, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, KC_RO, KC_GRSF, | ||
| 62 | //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | ||
| 63 | _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______ | ||
| 64 | //,---------------------------------------------------------------------------------------------------. | ||
| 65 | ), | ||
| 66 | |||
| 67 | [_RAISE] = LAYOUT_ortho_4x10( | ||
| 68 | //,---------------------------------------------------------------------------------------------------. | ||
| 69 | KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, | ||
| 70 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 71 | KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RSFT, | ||
| 72 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 73 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_RO, KC_COMM, KC_DOT, KC_SLSF, | ||
| 74 | //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | ||
| 75 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 76 | //,---------------------------------------------------------------------------------------------------. | ||
| 77 | ), | ||
| 78 | |||
| 79 | [_ADJUST] = LAYOUT_ortho_4x10( | ||
| 80 | //,---------------------------------------------------------------------------------------------------. | ||
| 81 | RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR, | ||
| 82 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 83 | RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NLCK, | ||
| 84 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 85 | RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 86 | //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | ||
| 87 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 88 | //,---------------------------------------------------------------------------------------------------. | ||
| 89 | ) | ||
| 90 | }; | ||
| 91 | |||
| 92 | #define L_BASE _BASE | ||
| 93 | #define L_LOWER (1<<_LOWER) | ||
| 94 | #define L_RAISE (1<<_RAISE) | ||
| 95 | #define L_ADJUST (1<<_ADJUST) | ||
| 96 | #define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) | ||
| 97 | |||
| 98 | #ifdef OLED_DRIVER_ENABLE | ||
| 99 | #include <stdio.h> | ||
| 100 | #include <string.h> | ||
| 101 | |||
| 102 | typedef struct { | ||
| 103 | uint8_t state; | ||
| 104 | char name[8]; | ||
| 105 | }LAYER_DISPLAY_NAME; | ||
| 106 | |||
| 107 | #define LAYER_DISPLAY_MAX 5 | ||
| 108 | const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = { | ||
| 109 | {L_BASE, "Base"}, | ||
| 110 | {L_BASE + 1, "Base"}, | ||
| 111 | {L_LOWER, "Lower"}, | ||
| 112 | {L_RAISE, "Raise"}, | ||
| 113 | {L_ADJUST_TRI, "Adjust"} | ||
| 114 | }; | ||
| 115 | |||
| 116 | static inline const char* get_leyer_status(void) { | ||
| 117 | |||
| 118 | for (uint8_t i = 0; i < LAYER_DISPLAY_MAX; ++i) { | ||
| 119 | if (layer_state == 0 && layer_display_name[i].state == default_layer_state) { | ||
| 120 | |||
| 121 | return layer_display_name[i].name; | ||
| 122 | } else if (layer_state != 0 && layer_display_name[i].state == layer_state) { | ||
| 123 | |||
| 124 | return layer_display_name[i].name; | ||
| 125 | } | ||
| 126 | } | ||
| 127 | |||
| 128 | return "?"; | ||
| 129 | } | ||
| 130 | |||
| 131 | static char layer_status_buf[24] = "Layer state ready.\n"; | ||
| 132 | static inline void update_keymap_status(void) { | ||
| 133 | |||
| 134 | snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "OS:%s Layer:%s\n", | ||
| 135 | keymap_config.swap_lalt_lgui? "win" : "mac", get_leyer_status()); | ||
| 136 | } | ||
| 137 | |||
| 138 | static inline void render_keymap_status(void) { | ||
| 139 | |||
| 140 | oled_write(layer_status_buf, false); | ||
| 141 | } | ||
| 142 | |||
| 143 | #define UPDATE_KEYMAP_STATUS() update_keymap_status() | ||
| 144 | |||
| 145 | static inline void render_status(void) { | ||
| 146 | |||
| 147 | UPDATE_LED_STATUS(); | ||
| 148 | RENDER_LED_STATUS(); | ||
| 149 | render_keymap_status(); | ||
| 150 | RENDER_LOCK_STATUS(); | ||
| 151 | RENDER_KEY_STATUS(); | ||
| 152 | } | ||
| 153 | |||
| 154 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
| 155 | |||
| 156 | if (is_keyboard_master()) | ||
| 157 | return OLED_ROTATION_180; // flips the display 180 degrees if offhand | ||
| 158 | return rotation; | ||
| 159 | } | ||
| 160 | |||
| 161 | void oled_task_user(void) { | ||
| 162 | |||
| 163 | if (is_keyboard_master()) { | ||
| 164 | render_status(); | ||
| 165 | } else { | ||
| 166 | render_logo(); | ||
| 167 | } | ||
| 168 | } | ||
| 169 | |||
| 170 | #else | ||
| 171 | |||
| 172 | #define UPDATE_KEYMAP_STATUS() | ||
| 173 | |||
| 174 | #endif | ||
| 175 | |||
| 176 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 177 | |||
| 178 | UPDATE_KEY_STATUS(keycode, record); | ||
| 179 | |||
| 180 | bool result = false; | ||
| 181 | switch (keycode) { | ||
| 182 | case LOWER: | ||
| 183 | if (record->event.pressed) { | ||
| 184 | layer_on(_LOWER); | ||
| 185 | } else { | ||
| 186 | layer_off(_LOWER); | ||
| 187 | } | ||
| 188 | |||
| 189 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 190 | break; | ||
| 191 | case RAISE: | ||
| 192 | if (record->event.pressed) { | ||
| 193 | layer_on(_RAISE); | ||
| 194 | } else { | ||
| 195 | layer_off(_RAISE); | ||
| 196 | } | ||
| 197 | |||
| 198 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 199 | break; | ||
| 200 | case KANJI: | ||
| 201 | if (record->event.pressed) { | ||
| 202 | if (keymap_config.swap_lalt_lgui == false) { | ||
| 203 | register_code(KC_LANG2); | ||
| 204 | } else { | ||
| 205 | register_code16(A(KC_GRV)); | ||
| 206 | } | ||
| 207 | } else { | ||
| 208 | unregister_code(KC_LANG2); | ||
| 209 | } | ||
| 210 | break; | ||
| 211 | #ifdef RGBLIGHT_ENABLE | ||
| 212 | case RGBRST: | ||
| 213 | if (record->event.pressed) { | ||
| 214 | eeconfig_update_rgblight_default(); | ||
| 215 | rgblight_enable(); | ||
| 216 | } | ||
| 217 | break; | ||
| 218 | #endif | ||
| 219 | default: | ||
| 220 | result = true; | ||
| 221 | break; | ||
| 222 | } | ||
| 223 | |||
| 224 | UPDATE_KEYMAP_STATUS(); | ||
| 225 | return result; | ||
| 226 | } | ||
diff --git a/keyboards/marksard/rhymestone/keymaps/default/rules.mk b/keyboards/marksard/rhymestone/keymaps/default/rules.mk new file mode 100644 index 000000000..c86cab8cc --- /dev/null +++ b/keyboards/marksard/rhymestone/keymaps/default/rules.mk | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | MOUSEKEY_ENABLE = yes # Mouse keys | ||
| 2 | TAP_DANCE_ENABLE = no | ||
| 3 | |||
| 4 | RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow | ||
| 5 | OLED_DRIVER_ENABLE = no | ||
| 6 | LTO_ENABLE = yes | ||
| 7 | |||
| 8 | # If you want to change the display of OLED, you need to change here | ||
| 9 | SRC += ./common/oled_helper.c \ | ||
diff --git a/keyboards/marksard/rhymestone/keymaps/switch_tester/keymap.c b/keyboards/marksard/rhymestone/keymaps/switch_tester/keymap.c new file mode 100644 index 000000000..1d4e78af8 --- /dev/null +++ b/keyboards/marksard/rhymestone/keymaps/switch_tester/keymap.c | |||
| @@ -0,0 +1,76 @@ | |||
| 1 | /* Copyright 2020 marksard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | enum layer_number { | ||
| 19 | _BASE, | ||
| 20 | _ADJUST, | ||
| 21 | }; | ||
| 22 | |||
| 23 | enum custom_keycodes { | ||
| 24 | LOWER = SAFE_RANGE, | ||
| 25 | ADJUST, | ||
| 26 | RGBRST | ||
| 27 | }; | ||
| 28 | |||
| 29 | // Layer Mode aliases | ||
| 30 | #define KC_LTAD LT(_ADJUST, KC_NO) | ||
| 31 | |||
| 32 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 33 | [_BASE] = LAYOUT_ortho_4x10( | ||
| 34 | //,---------------------------------------------------------------------------------------------------. | ||
| 35 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 36 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 37 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 38 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 39 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 40 | //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | ||
| 41 | KC_LTAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX | ||
| 42 | //,---------------------------------------------------------------------------------------------------. | ||
| 43 | ), | ||
| 44 | |||
| 45 | [_ADJUST] = LAYOUT_ortho_4x10( | ||
| 46 | //,---------------------------------------------------------------------------------------------------. | ||
| 47 | RESET, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 48 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 49 | RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 50 | //|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------| | ||
| 51 | RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 52 | //`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------' | ||
| 53 | _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX | ||
| 54 | //,---------------------------------------------------------------------------------------------------. | ||
| 55 | ) | ||
| 56 | }; | ||
| 57 | |||
| 58 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 59 | |||
| 60 | bool result = false; | ||
| 61 | switch (keycode) { | ||
| 62 | #ifdef RGBLIGHT_ENABLE | ||
| 63 | case RGBRST: | ||
| 64 | if (record->event.pressed) { | ||
| 65 | eeconfig_update_rgblight_default(); | ||
| 66 | rgblight_enable(); | ||
| 67 | } | ||
| 68 | break; | ||
| 69 | #endif | ||
| 70 | default: | ||
| 71 | result = true; | ||
| 72 | break; | ||
| 73 | } | ||
| 74 | |||
| 75 | return result; | ||
| 76 | } | ||
diff --git a/keyboards/marksard/rhymestone/keymaps/switch_tester/readme.md b/keyboards/marksard/rhymestone/keymaps/switch_tester/readme.md new file mode 100644 index 000000000..f85906a83 --- /dev/null +++ b/keyboards/marksard/rhymestone/keymaps/switch_tester/readme.md | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | # The switch tester keymap for Rhymestone | ||
| 2 | |||
| 3 | This keymap is Switch Tester and RGB_MATRIX Light demo. | ||
diff --git a/keyboards/marksard/rhymestone/keymaps/switch_tester/rules.mk b/keyboards/marksard/rhymestone/keymaps/switch_tester/rules.mk new file mode 100644 index 000000000..78824da30 --- /dev/null +++ b/keyboards/marksard/rhymestone/keymaps/switch_tester/rules.mk | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 2 | TAP_DANCE_ENABLE = no | ||
| 3 | |||
| 4 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 5 | OLED_DRIVER_ENABLE = no | ||
| 6 | LTO_ENABLE = yes | ||
| 7 | RGB_MATRIX_ENABLE = WS2812 | ||
diff --git a/keyboards/marksard/rhymestone/readme.md b/keyboards/marksard/rhymestone/readme.md new file mode 100644 index 000000000..721e8beb3 --- /dev/null +++ b/keyboards/marksard/rhymestone/readme.md | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | # Rhymestone | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | This is 40 keys split Ortholinear keyboard. | ||
| 6 | |||
| 7 | * Keyboard Maintainer: [marksard](https://github.com/marksard) | ||
| 8 | * Hardware Supported: Rhymestone PCB (with Pro Micro) | ||
| 9 | * Hardware Availability: [marksard keyboards](https://github.com/marksard/Keyboards/blob/master/rhymestone/) | ||
| 10 | |||
| 11 | Make example for this keyboard (after setting up your build environment): | ||
| 12 | |||
| 13 | make marksard/rhymestone:default | ||
| 14 | |||
| 15 | 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). | ||
| 16 | |||
| 17 | [Build guide](https://github.com/marksard/Keyboards/blob/master/rhymestone/documents/rhymestone_buildguide.md) | ||
| 18 | [Firmware](https://github.com/marksard/qmk_firmware/tree/my_customize/keyboards/rhymestone) | ||
diff --git a/keyboards/marksard/rhymestone/rev1/config.h b/keyboards/marksard/rhymestone/rev1/config.h new file mode 100644 index 000000000..9a1bf0a1d --- /dev/null +++ b/keyboards/marksard/rhymestone/rev1/config.h | |||
| @@ -0,0 +1,152 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 marksard | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #pragma once | ||
| 19 | |||
| 20 | #include "config_common.h" | ||
| 21 | |||
| 22 | /* USB Device descriptor parameter */ | ||
| 23 | #define VENDOR_ID 0xFEED | ||
| 24 | #define PRODUCT_ID 0xDFA1 | ||
| 25 | #define DEVICE_VER 0x0020 | ||
| 26 | #define MANUFACTURER marksard | ||
| 27 | #define PRODUCT Rhymestone | ||
| 28 | |||
| 29 | /* key matrix size */ | ||
| 30 | #define MATRIX_ROWS 8 | ||
| 31 | #define MATRIX_COLS 5 | ||
| 32 | |||
| 33 | /* | ||
| 34 | * Keyboard Matrix Assignments | ||
| 35 | * | ||
| 36 | * Change this to how you wired your keyboard | ||
| 37 | * COLS: AVR pins used for columns, left to right | ||
| 38 | * ROWS: AVR pins used for rows, top to bottom | ||
| 39 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 40 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 41 | * | ||
| 42 | */ | ||
| 43 | #define MATRIX_ROW_PINS { F4, F5, F6, F7 } | ||
| 44 | #define MATRIX_COL_PINS { D4, C6, D7, E6, B4 } | ||
| 45 | #define UNUSED_PINS | ||
| 46 | |||
| 47 | /* COL2ROW, ROW2COL*/ | ||
| 48 | #define DIODE_DIRECTION COL2ROW | ||
| 49 | |||
| 50 | /* | ||
| 51 | * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. | ||
| 52 | */ | ||
| 53 | #define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6 | ||
| 54 | |||
| 55 | // #define BACKLIGHT_PIN B7 | ||
| 56 | // #define BACKLIGHT_BREATHING | ||
| 57 | // #define BACKLIGHT_LEVELS 3 | ||
| 58 | |||
| 59 | #define RGB_DI_PIN D3 | ||
| 60 | |||
| 61 | #ifdef RGBLIGHT_ENABLE | ||
| 62 | // #ifdef RGB_DI_PIN | ||
| 63 | #define RGBLED_NUM 40 | ||
| 64 | #define RGBLED_SPLIT {20, 20} | ||
| 65 | #define RGBLIGHT_HUE_STEP 8 | ||
| 66 | #define RGBLIGHT_SAT_STEP 8 | ||
| 67 | #define RGBLIGHT_VAL_STEP 8 | ||
| 68 | #define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level */ | ||
| 69 | #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ | ||
| 70 | /*== all animations enable ==*/ | ||
| 71 | // #define RGBLIGHT_ANIMATIONS | ||
| 72 | /*== or choose animations ==*/ | ||
| 73 | // #define RGBLIGHT_EFFECT_BREATHING | ||
| 74 | #define RGBLIGHT_EFFECT_RAINBOW_MOOD | ||
| 75 | #define RGBLIGHT_EFFECT_RAINBOW_SWIRL | ||
| 76 | // #define RGBLIGHT_EFFECT_SNAKE | ||
| 77 | #define RGBLIGHT_EFFECT_KNIGHT | ||
| 78 | // #define RGBLIGHT_EFFECT_CHRISTMAS | ||
| 79 | #define RGBLIGHT_EFFECT_STATIC_GRADIENT | ||
| 80 | // #define RGBLIGHT_EFFECT_RGB_TEST | ||
| 81 | // #define RGBLIGHT_EFFECT_ALTERNATING | ||
| 82 | /*== customize breathing effect ==*/ | ||
| 83 | /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ | ||
| 84 | #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 | ||
| 85 | /*==== use exp() and sin() ====*/ | ||
| 86 | #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 | ||
| 87 | #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 | ||
| 88 | #endif | ||
| 89 | |||
| 90 | #ifdef RGB_MATRIX_ENABLE | ||
| 91 | #define RGBLED_NUM 40 // Number of LEDs | ||
| 92 | #define DRIVER_LED_TOTAL RGBLED_NUM | ||
| 93 | #define RGB_MATRIX_KEYPRESSES // reacts to keypresses | ||
| 94 | // #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) | ||
| 95 | // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects | ||
| 96 | #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended | ||
| 97 | // #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) | ||
| 98 | // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) | ||
| 99 | #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 | ||
| 100 | #define RGB_MATRIX_HUE_STEP 8 | ||
| 101 | #define RGB_MATRIX_SAT_STEP 8 | ||
| 102 | #define RGB_MATRIX_VAL_STEP 8 | ||
| 103 | #define RGB_MATRIX_SPD_STEP 10 | ||
| 104 | |||
| 105 | // #define DISABLE_RGB_MATRIX_ALPHAS_MODS | ||
| 106 | // #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN | ||
| 107 | // #define DISABLE_RGB_MATRIX_BREATHING | ||
| 108 | // #define DISABLE_RGB_MATRIX_BAND_SAT | ||
| 109 | // #define DISABLE_RGB_MATRIX_BAND_VAL | ||
| 110 | // #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT | ||
| 111 | // #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL | ||
| 112 | // #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT | ||
| 113 | // #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL | ||
| 114 | // #define DISABLE_RGB_MATRIX_CYCLE_ALL | ||
| 115 | // #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT | ||
| 116 | // #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN | ||
| 117 | // #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN | ||
| 118 | // #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL | ||
| 119 | // #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON | ||
| 120 | // #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL | ||
| 121 | // #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL | ||
| 122 | // #define DISABLE_RGB_MATRIX_DUAL_BEACON | ||
| 123 | // #define DISABLE_RGB_MATRIX_RAINBOW_BEACON | ||
| 124 | // #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS | ||
| 125 | // #define DISABLE_RGB_MATRIX_RAINDROPS | ||
| 126 | // #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS | ||
| 127 | |||
| 128 | #define RGB_MATRIX_FRAMEBUFFER_EFFECTS | ||
| 129 | // #define DISABLE_RGB_MATRIX_TYPING_HEATMAP | ||
| 130 | // #define DISABLE_RGB_MATRIX_DIGITAL_RAIN | ||
| 131 | |||
| 132 | // #define RGB_MATRIX_KEYPRESSES // reacts to keypresses | ||
| 133 | |||
| 134 | // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE | ||
| 135 | // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE | ||
| 136 | // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE | ||
| 137 | // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE | ||
| 138 | // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS | ||
| 139 | // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS | ||
| 140 | // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS | ||
| 141 | // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS | ||
| 142 | |||
| 143 | // #define DISABLE_RGB_MATRIX_SPLASH | ||
| 144 | // #define DISABLE_RGB_MATRIX_MULTISPLASH | ||
| 145 | // #define DISABLE_RGB_MATRIX_SOLID_SPLASH | ||
| 146 | // #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH | ||
| 147 | |||
| 148 | #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_TYPING_HEATMAP | ||
| 149 | #endif | ||
| 150 | |||
| 151 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 152 | #define DEBOUNCE 5 | ||
diff --git a/keyboards/marksard/rhymestone/rev1/rev1.c b/keyboards/marksard/rhymestone/rev1/rev1.c new file mode 100644 index 000000000..a4dadd55c --- /dev/null +++ b/keyboards/marksard/rhymestone/rev1/rev1.c | |||
| @@ -0,0 +1,108 @@ | |||
| 1 | /* Copyright 2020 marksard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include "rev1.h" | ||
| 18 | |||
| 19 | // Optional override functions below. | ||
| 20 | // You can leave any or all of these undefined. | ||
| 21 | // These are only required if you want to perform custom actions. | ||
| 22 | |||
| 23 | #ifdef RGB_MATRIX_ENABLE | ||
| 24 | led_config_t g_led_config = { { | ||
| 25 | { 10, 11, 12, 13, 0 }, | ||
| 26 | { 9, 18, 19, 14, 1 }, | ||
| 27 | { 8, 17, 16, 15, 2 }, | ||
| 28 | { 7, 6, 5, 4, 3 }, | ||
| 29 | { 30, 31, 32, 33, 20 }, | ||
| 30 | { 29, 38, 39, 34, 21 }, | ||
| 31 | { 28, 37, 36, 35, 22 }, | ||
| 32 | { 27, 26, 25, 24, 23 } | ||
| 33 | }, { | ||
| 34 | { 100, 0 }, { 100, 21 }, { 100, 43 }, { 100, 64 }, | ||
| 35 | { 75, 64 }, { 50, 64 }, { 25, 64 }, { 0, 64 }, | ||
| 36 | { 0, 43 }, { 0, 21 }, { 0, 0 }, | ||
| 37 | { 25, 0 }, { 50, 0 }, { 75, 0 }, | ||
| 38 | { 75, 21 }, { 75, 43 }, | ||
| 39 | { 50, 43 }, { 25, 43 }, | ||
| 40 | { 25, 21 }, { 50, 21 }, | ||
| 41 | { 125, 0 }, { 125, 21 }, { 125, 43 }, { 125, 64 }, | ||
| 42 | { 150, 64 }, { 175, 64 }, { 200, 64 }, { 225, 64 }, | ||
| 43 | { 225, 43 }, { 225, 21 }, { 225, 0 }, | ||
| 44 | { 200, 0 }, { 175, 0 }, { 150, 0 }, | ||
| 45 | { 150, 21 }, { 150, 43 }, | ||
| 46 | { 175, 43 }, { 200, 43 }, | ||
| 47 | { 200, 21 }, { 150, 21 } | ||
| 48 | }, { | ||
| 49 | 4, 4, 4, 1, | ||
| 50 | 1, 1, 1, 1, | ||
| 51 | 4, 4, 4, 4, | ||
| 52 | 4, 4, 4, 4, | ||
| 53 | 4, 4, 4, 4, | ||
| 54 | 4, 4, 4, 1, | ||
| 55 | 1, 1, 1, 1, | ||
| 56 | 4, 4, 4, 4, | ||
| 57 | 4, 4, 4, 4, | ||
| 58 | 4, 4, 4, 4 | ||
| 59 | } }; | ||
| 60 | #endif | ||
| 61 | |||
| 62 | __attribute__((weak)) | ||
| 63 | void matrix_init_user(void) {} | ||
| 64 | |||
| 65 | void matrix_init_kb(void) { | ||
| 66 | |||
| 67 | #ifdef RGB_MATRIX_ENABLE | ||
| 68 | // if (!is_keyboard_master()) { | ||
| 69 | // g_led_config = (led_config_t){ { | ||
| 70 | // { 30, 31, 32, 33, 20 }, | ||
| 71 | // { 29, 38, 39, 34, 21 }, | ||
| 72 | // { 28, 37, 36, 35, 22 }, | ||
| 73 | // { 27, 26, 25, 24, 23 }, | ||
| 74 | // { 10, 11, 12, 13, 0 }, | ||
| 75 | // { 9, 18, 19, 14, 1 }, | ||
| 76 | // { 8, 17, 16, 15, 2 }, | ||
| 77 | // { 7, 6, 5, 4, 3 } | ||
| 78 | // }, { | ||
| 79 | // { 125, 0 }, { 125, 21 }, { 125, 43 }, { 125, 64 }, | ||
| 80 | // { 150, 64 }, { 175, 64 }, { 200, 64 }, { 225, 64 }, | ||
| 81 | // { 225, 43 }, { 225, 21 }, { 225, 0 }, | ||
| 82 | // { 200, 0 }, { 175, 0 }, { 150, 0 }, | ||
| 83 | // { 150, 21 }, { 150, 43 }, | ||
| 84 | // { 175, 43 }, { 200, 43 }, | ||
| 85 | // { 200, 21 }, { 150, 21 }, | ||
| 86 | // { 100, 0 }, { 100, 21 }, { 100, 43 }, { 100, 64 }, | ||
| 87 | // { 75, 64 }, { 50, 64 }, { 25, 64 }, { 0, 64 }, | ||
| 88 | // { 0, 43 }, { 0, 21 }, { 0, 0 }, | ||
| 89 | // { 25, 0 }, { 50, 0 }, { 75, 0 }, | ||
| 90 | // { 75, 21 }, { 75, 43 }, | ||
| 91 | // { 50, 43 }, { 25, 43 }, | ||
| 92 | // { 25, 21 }, { 50, 21 } | ||
| 93 | // }, { | ||
| 94 | // 4, 4, 4, 1, | ||
| 95 | // 1, 1, 1, 1, | ||
| 96 | // 4, 4, 4, 4, | ||
| 97 | // 4, 4, 4, 4, | ||
| 98 | // 4, 4, 4, 4, | ||
| 99 | // 4, 4, 4, 1, | ||
| 100 | // 1, 1, 1, 1, | ||
| 101 | // 4, 4, 4, 4, | ||
| 102 | // 4, 4, 4, 4, | ||
| 103 | // 4, 4, 4, 4 | ||
| 104 | // } }; | ||
| 105 | // } | ||
| 106 | #endif | ||
| 107 | matrix_init_user(); | ||
| 108 | } | ||
diff --git a/keyboards/marksard/rhymestone/rev1/rev1.h b/keyboards/marksard/rhymestone/rev1/rev1.h new file mode 100644 index 000000000..855e288df --- /dev/null +++ b/keyboards/marksard/rhymestone/rev1/rev1.h | |||
| @@ -0,0 +1,89 @@ | |||
| 1 | /* Copyright 2020 marksard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #include "quantum.h" | ||
| 20 | |||
| 21 | /* This is a shortcut to help you visually see your layout. | ||
| 22 | * | ||
| 23 | * The first section contains all of the arguments representing the physical | ||
| 24 | * layout of the board and position of the keys. | ||
| 25 | * | ||
| 26 | * The second converts the arguments into a two-dimensional array which | ||
| 27 | * represents the switch matrix. | ||
| 28 | */ | ||
| 29 | |||
| 30 | #ifndef FLIP_HALF | ||
| 31 | // Standard Keymap | ||
| 32 | // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) | ||
| 33 | #define LAYOUT_ortho_4x10( \ | ||
| 34 | L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ | ||
| 35 | L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ | ||
| 36 | L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ | ||
| 37 | L30, L31, L32, L33, L34, R30, R31, R32, R33, R34 \ | ||
| 38 | ) \ | ||
| 39 | { \ | ||
| 40 | { L00, L01, L02, L03, L04 }, \ | ||
| 41 | { L10, L11, L12, L13, L14 }, \ | ||
| 42 | { L20, L21, L22, L23, L24 }, \ | ||
| 43 | { L30, L31, L32, L33, L34 }, \ | ||
| 44 | { R04, R03, R02, R01, R00 }, \ | ||
| 45 | { R14, R13, R12, R11, R10 }, \ | ||
| 46 | { R24, R23, R22, R21, R20 }, \ | ||
| 47 | { R34, R33, R32, R31, R30 }, \ | ||
| 48 | } | ||
| 49 | #else | ||
| 50 | // Keymap with right side flipped | ||
| 51 | // (TRRS jack on both halves are to the right) | ||
| 52 | #define LAYOUT_ortho_4x10( \ | ||
| 53 | L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ | ||
| 54 | L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ | ||
| 55 | L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ | ||
| 56 | L30, L31, L32, L33, L34, R30, R31, R32, R33, R34 \ | ||
| 57 | ) \ | ||
| 58 | { \ | ||
| 59 | { L04, L03, L02, L01, L00 }, \ | ||
| 60 | { L14, L13, L12, L11, L10 }, \ | ||
| 61 | { L24, L23, L22, L21, L20 }, \ | ||
| 62 | { L34, L33, L32, L31, L30 }, \ | ||
| 63 | { R04, R03, R02, R01, R00 }, \ | ||
| 64 | { R14, R13, R12, R11, R10 }, \ | ||
| 65 | { R24, R23, R22, R21, R20 }, \ | ||
| 66 | { R34, R33, R32, R31, R30 }, \ | ||
| 67 | } | ||
| 68 | #endif | ||
| 69 | |||
| 70 | #ifdef USE_HASHTWENTY // The HashTwenty is Alpha version of The Rhymestone | ||
| 71 | #undef LAYOUT_ortho_4x10 | ||
| 72 | // HashTwenty layout | ||
| 73 | #define LAYOUT_ortho_4x10( \ | ||
| 74 | L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ | ||
| 75 | L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ | ||
| 76 | L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ | ||
| 77 | L30, L31, L32, L33, L34, R30, R31, R32, R33, R34 \ | ||
| 78 | ) \ | ||
| 79 | { \ | ||
| 80 | { L04, L03, L02, L01, L00 }, \ | ||
| 81 | { L14, L13, L12, L11, L10 }, \ | ||
| 82 | { L24, L23, L22, L21, L20 }, \ | ||
| 83 | { L34, L33, L32, L31, L30 }, \ | ||
| 84 | { R00, R01, R02, R03, R04 }, \ | ||
| 85 | { R10, R11, R12, R13, R14 }, \ | ||
| 86 | { R20, R21, R22, R23, R24 }, \ | ||
| 87 | { R30, R31, R32, R33, R34 }, \ | ||
| 88 | } | ||
| 89 | #endif | ||
diff --git a/keyboards/marksard/rhymestone/rev1/rules.mk b/keyboards/marksard/rhymestone/rev1/rules.mk new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/keyboards/marksard/rhymestone/rev1/rules.mk | |||
diff --git a/keyboards/marksard/rhymestone/rules.mk b/keyboards/marksard/rhymestone/rules.mk new file mode 100644 index 000000000..1f58665ef --- /dev/null +++ b/keyboards/marksard/rhymestone/rules.mk | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = caterina | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = no # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = yes # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
| 23 | SPLIT_KEYBOARD = yes | ||
| 24 | |||
| 25 | DEFAULT_FOLDER = marksard/rhymestone/rev1 | ||
| 26 | |||
| 27 | LAYOUTS = ortho_4x10 | ||
diff --git a/keyboards/planck/keymaps/gitdrik/config.h b/keyboards/planck/keymaps/gitdrik/config.h new file mode 100644 index 000000000..0acf06dc5 --- /dev/null +++ b/keyboards/planck/keymaps/gitdrik/config.h | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | /* Original code probably copyright 2015-2017 Jack Humbert | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | /* Passed along from planck default to Finnish SFS 5966 by gitdrik, 2020. */ | ||
| 18 | |||
| 19 | #pragma once | ||
| 20 | |||
| 21 | #ifdef AUDIO_ENABLE | ||
| 22 | #define STARTUP_SONG SONG(PLANCK_SOUND) | ||
| 23 | // #define STARTUP_SONG SONG(NO_SOUND) | ||
| 24 | |||
| 25 | #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ | ||
| 26 | SONG(COLEMAK_SOUND), \ | ||
| 27 | SONG(DVORAK_SOUND) \ | ||
| 28 | } | ||
| 29 | #endif | ||
| 30 | |||
| 31 | /* | ||
| 32 | * MIDI options | ||
| 33 | */ | ||
| 34 | |||
| 35 | /* Prevent use of disabled MIDI features in the keymap */ | ||
| 36 | //#define MIDI_ENABLE_STRICT 1 | ||
| 37 | |||
| 38 | /* enable basic MIDI features: | ||
| 39 | - MIDI notes can be sent when in Music mode is on | ||
| 40 | */ | ||
| 41 | |||
| 42 | #define MIDI_BASIC | ||
| 43 | |||
| 44 | /* enable advanced MIDI features: | ||
| 45 | - MIDI notes can be added to the keymap | ||
| 46 | - Octave shift and transpose | ||
| 47 | - Virtual sustain, portamento, and modulation wheel | ||
| 48 | - etc. | ||
| 49 | */ | ||
| 50 | //#define MIDI_ADVANCED | ||
| 51 | |||
| 52 | /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ | ||
| 53 | //#define MIDI_TONE_KEYCODE_OCTAVES 2 | ||
| 54 | |||
| 55 | // Most tactile encoders have detents every 4 stages | ||
| 56 | #define ENCODER_RESOLUTION 4 | ||
diff --git a/keyboards/planck/keymaps/gitdrik/keymap.c b/keyboards/planck/keymaps/gitdrik/keymap.c new file mode 100644 index 000000000..bdaef2076 --- /dev/null +++ b/keyboards/planck/keymaps/gitdrik/keymap.c | |||
| @@ -0,0 +1,231 @@ | |||
| 1 | /* Copyright 2015-2017 Jack Humbert | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | /* Modified from planck default to Finnish SFS 5966 by gitdrik, 2020. */ | ||
| 18 | |||
| 19 | #include QMK_KEYBOARD_H | ||
| 20 | #include "muse.h" | ||
| 21 | |||
| 22 | enum planck_layers { | ||
| 23 | _BASE, | ||
| 24 | _LEFT, | ||
| 25 | _RIGHT, | ||
| 26 | _LEFTER, | ||
| 27 | _RIGHTER | ||
| 28 | }; | ||
| 29 | |||
| 30 | #define LEFT TT(_LEFT) | ||
| 31 | #define RIGHT MO(_RIGHT) | ||
| 32 | #define LEFTER MO(_LEFTER) | ||
| 33 | #define RIGHTER MO(_RIGHTER) | ||
| 34 | |||
| 35 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 36 | |||
| 37 | /* Base | ||
| 38 | * ,-----------------------------------------------------------------------------------. | ||
| 39 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Ã… | | ||
| 40 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 41 | * | Esc | A | S | D | F | G | H | J | K | L | Ö | Ä | | ||
| 42 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 43 | * | Ctrl | Shift| X | C | V | B | N | M | , | . | Shift| Enter| | ||
| 44 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 45 | * | Z | GUI | Alt |Left2 | Left |BkSpc | Spc |Right |Rghter| < | - | / | | ||
| 46 | * `-----------------------------------------------------------------------------------' | ||
| 47 | */ | ||
| 48 | [_BASE] = LAYOUT_planck_grid( | ||
| 49 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, | ||
| 50 | KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | ||
| 51 | KC_LCTL, KC_LSFT, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_ENT , | ||
| 52 | KC_Z, KC_LGUI, KC_LALT, LEFTER, LEFT, KC_BSPC, KC_SPC, RIGHT, RIGHTER, KC_NUBS, KC_SLSH, LSFT(KC_7) | ||
| 53 | ), | ||
| 54 | |||
| 55 | /* Left | ||
| 56 | * ,-----------------------------------------------------------------------------------. | ||
| 57 | * | Tab | F10 | F9 | F8 | F7 | { | } | 7 | 8 | 9 | ^ | = | | ||
| 58 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 59 | * | Esc | F11 | F6 | F5 | F4 | ( | ) | 4 | 5 | 6 | + | * | | ||
| 60 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 61 | * | RCtrl| Shift| F3 | F2 | F1 | [ | ] | 1 | 2 | 3 | Shift| Enter| | ||
| 62 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 63 | * | F12 | GUI | Alt |Lefter| Left |BkSpc | Spc |Right | 0 | , | - | / | | ||
| 64 | * `-----------------------------------------------------------------------------------' | ||
| 65 | */ | ||
| 66 | [_LEFT] = LAYOUT_planck_grid( | ||
| 67 | KC_TRNS, KC_F10, KC_F9, KC_F8, KC_F7, RALT(KC_7), RALT(KC_0), KC_7, KC_8, KC_9, LSFT(KC_RBRC), LSFT(KC_0), | ||
| 68 | KC_TRNS, KC_F11, KC_F6, KC_F5, KC_F4, LSFT(KC_8), LSFT(KC_9), KC_4, KC_5, KC_6, KC_PPLS, KC_PAST, | ||
| 69 | KC_RCTL, KC_TRNS, KC_F3, KC_F2, KC_F1, RALT(KC_8), RALT(KC_9), KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, | ||
| 70 | KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_COMM, KC_PMNS, KC_PSLS | ||
| 71 | ), | ||
| 72 | |||
| 73 | /* Right | ||
| 74 | * ,-----------------------------------------------------------------------------------. | ||
| 75 | * | Tab | ◌̄ | ◌̈ | â—ŒÌ | ◌̀ | ◌̃ | ◌̆ | Home | Up | End | Ins | PgUp | | ||
| 76 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 77 | * | Esc | @ | $ | ° | & | # | % | Left | Down | Right| Del | PgDn | | ||
| 78 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 79 | * | RCtrl| Shift| †| « | » | ‚ „ | ‰ |PlayPs| << | >> | Shift| Enter| | ||
| 80 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 81 | * | “ | GUI | Alt |Lefter| |BkSpc | Spc |Right |Rghter| Vol- | Vol+ | Mute | | ||
| 82 | * `-----------------------------------------------------------------------------------' | ||
| 83 | */ | ||
| 84 | [_RIGHT] = LAYOUT_planck_grid( | ||
| 85 | KC_TRNS, RALT(LSFT(KC_RBRC)), KC_RBRC, KC_EQL , LSFT(KC_EQL), RALT(KC_RBRC), RALT(KC_NUHS), KC_HOME, KC_UP, KC_END , KC_INS , KC_PGUP, | ||
| 86 | KC_TRNS, RALT(KC_2), RALT(KC_4), RALT(LSFT(KC_0)), LSFT(KC_6), LSFT(KC_3), LSFT(KC_5), KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_PGDN, | ||
| 87 | KC_RCTRL, KC_TRNS, RALT(LSFT(KC_2)), RALT(LSFT(KC_4)), RALT(LSFT(KC_3)), RALT(KC_6), RALT(KC_5), KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, | ||
| 88 | RALT(LSFT(KC_5)), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE | ||
| 89 | ), | ||
| 90 | |||
| 91 | /* Lefter | ||
| 92 | * ,-----------------------------------------------------------------------------------. | ||
| 93 | * | Tab | § ½ | " | € | | þ Þ | ¡ | ! | ı | œ Œ | ◌̛ ◌̉ | ◌̋ ◌̊ | | ||
| 94 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 95 | * | Esc | É™ Æ | ß ẞ | ð à | ' | | | | ĸ | ◌̵ | ø Ø | æ Æ | | ||
| 96 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 97 | * | Ctrl | Shift| × · | ◌̧ ◌̨ | | \ | ŋ Ŋ | µ — | ’ ‘ | ◌̣ ◌̇ | Shift| Enter| | ||
| 98 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 99 | * | ʒ Ʒ | GUI | Alt |Lefter| | BkSpc| NbSp | |Rghter| | | – ◌̦ | ? | | ||
| 100 | * `-----------------------------------------------------------------------------------' | ||
| 101 | */ | ||
| 102 | [_LEFTER] = LAYOUT_planck_grid( | ||
| 103 | KC_TRNS, KC_GRV, LSFT(KC_2), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(LSFT(KC_1)), LSFT(KC_1), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), | ||
| 104 | KC_TRNS, RALT(KC_A),RALT(KC_S), RALT(KC_D), KC_NUHS, RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), RALT(KC_L), RALT(KC_SCLN), RALT(KC_QUOT), | ||
| 105 | KC_TRNS, KC_TRNS, RALT(KC_X), RALT(KC_EQL), RALT(KC_V), RALT(KC_MINS), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), KC_TRNS, KC_TRNS, | ||
| 106 | RALT(KC_Z),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_BSPC), RALT(KC_SPC), KC_TRNS, KC_TRNS, RALT(KC_NUBS), RALT(KC_SLSH), LSFT(KC_MINS) | ||
| 107 | ), | ||
| 108 | |||
| 109 | /* Righter | ||
| 110 | * ,-----------------------------------------------------------------------------------. | ||
| 111 | * | | Reset| Debug| | | | |WheLft| MUp |WheRgt| MBt2 | WheUp| | ||
| 112 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 113 | * | | MBt4 | MBt3 | MBt2 | MBt1 | | | MLeft| MDown|MRight| MBt1 | WheDn| | ||
| 114 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 115 | * | | |MUSmod|Mus on|Musoff| | | MBt1 | MBt2 | MBt3 | | | | ||
| 116 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 117 | * | | | | | | | | |Rghter|Light-|Light+| | | ||
| 118 | * `-----------------------------------------------------------------------------------' | ||
| 119 | */ | ||
| 120 | [_RIGHTER] = LAYOUT_planck_grid( | ||
| 121 | KC_TRNS, RESET, DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, KC_WH_U, | ||
| 122 | KC_TRNS, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, KC_WH_D, | ||
| 123 | KC_TRNS, KC_TRNS, MU_MOD, MU_ON, MU_OFF, KC_NO, KC_NO, KC_BTN1, KC_BTN2, KC_BTN3, KC_TRNS, KC_TRNS, | ||
| 124 | KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_BRID, KC_BRIU, KC_NO | ||
| 125 | ), | ||
| 126 | |||
| 127 | }; | ||
| 128 | |||
| 129 | #ifdef AUDIO_ENABLE | ||
| 130 | float plover_song[][2] = SONG(PLOVER_SOUND); | ||
| 131 | float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); | ||
| 132 | #endif | ||
| 133 | |||
| 134 | bool muse_mode = false; | ||
| 135 | uint8_t last_muse_note = 0; | ||
| 136 | uint16_t muse_counter = 0; | ||
| 137 | uint8_t muse_offset = 70; | ||
| 138 | uint16_t muse_tempo = 50; | ||
| 139 | |||
| 140 | void encoder_update(bool clockwise) { | ||
| 141 | if (muse_mode) { | ||
| 142 | if (IS_LAYER_ON(_RIGHT)) { | ||
| 143 | if (clockwise) { | ||
| 144 | muse_offset++; | ||
| 145 | } else { | ||
| 146 | muse_offset--; | ||
| 147 | } | ||
| 148 | } else { | ||
| 149 | if (clockwise) { | ||
| 150 | muse_tempo+=1; | ||
| 151 | } else { | ||
| 152 | muse_tempo-=1; | ||
| 153 | } | ||
| 154 | } | ||
| 155 | } else { | ||
| 156 | if (clockwise) { | ||
| 157 | #ifdef MOUSEKEY_ENABLE | ||
| 158 | tap_code(KC_MS_WH_DOWN); | ||
| 159 | #else | ||
| 160 | tap_code(KC_PGDN); | ||
| 161 | #endif | ||
| 162 | } else { | ||
| 163 | #ifdef MOUSEKEY_ENABLE | ||
| 164 | tap_code(KC_MS_WH_UP); | ||
| 165 | #else | ||
| 166 | tap_code(KC_PGUP); | ||
| 167 | #endif | ||
| 168 | } | ||
| 169 | } | ||
| 170 | } | ||
| 171 | |||
| 172 | void dip_switch_update_user(uint8_t index, bool active) { | ||
| 173 | switch (index) { | ||
| 174 | case 0: { | ||
| 175 | #ifdef AUDIO_ENABLE | ||
| 176 | static bool play_sound = false; | ||
| 177 | #endif | ||
| 178 | if (active) { | ||
| 179 | #ifdef AUDIO_ENABLE | ||
| 180 | if (play_sound) { PLAY_SONG(plover_song); } | ||
| 181 | #endif | ||
| 182 | layer_on(_LEFTER); | ||
| 183 | } else { | ||
| 184 | #ifdef AUDIO_ENABLE | ||
| 185 | if (play_sound) { PLAY_SONG(plover_gb_song); } | ||
| 186 | #endif | ||
| 187 | layer_off(_LEFTER); | ||
| 188 | } | ||
| 189 | #ifdef AUDIO_ENABLE | ||
| 190 | play_sound = true; | ||
| 191 | #endif | ||
| 192 | break; | ||
| 193 | } | ||
| 194 | case 1: | ||
| 195 | if (active) { | ||
| 196 | muse_mode = true; | ||
| 197 | } else { | ||
| 198 | muse_mode = false; | ||
| 199 | } | ||
| 200 | } | ||
| 201 | } | ||
| 202 | |||
| 203 | void matrix_scan_user(void) { | ||
| 204 | #ifdef AUDIO_ENABLE | ||
| 205 | if (muse_mode) { | ||
| 206 | if (muse_counter == 0) { | ||
| 207 | uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; | ||
| 208 | if (muse_note != last_muse_note) { | ||
| 209 | stop_note(compute_freq_for_midi_note(last_muse_note)); | ||
| 210 | play_note(compute_freq_for_midi_note(muse_note), 0xF); | ||
| 211 | last_muse_note = muse_note; | ||
| 212 | } | ||
| 213 | } | ||
| 214 | muse_counter = (muse_counter + 1) % muse_tempo; | ||
| 215 | } else { | ||
| 216 | if (muse_counter) { | ||
| 217 | stop_all_notes(); | ||
| 218 | muse_counter = 0; | ||
| 219 | } | ||
| 220 | } | ||
| 221 | #endif | ||
| 222 | } | ||
| 223 | |||
| 224 | bool music_mask_user(uint16_t keycode) { | ||
| 225 | switch (keycode) { | ||
| 226 | case _LEFTER: | ||
| 227 | return false; | ||
| 228 | default: | ||
| 229 | return true; | ||
| 230 | } | ||
| 231 | } | ||
diff --git a/keyboards/planck/keymaps/gitdrik/readme.md b/keyboards/planck/keymaps/gitdrik/readme.md new file mode 100644 index 000000000..f06456518 --- /dev/null +++ b/keyboards/planck/keymaps/gitdrik/readme.md | |||
| @@ -0,0 +1 @@ | |||
| # Finnish SFS 5966 layout by gitdrik 2020. | |||
diff --git a/keyboards/planck/keymaps/gitdrik/rules.mk b/keyboards/planck/keymaps/gitdrik/rules.mk new file mode 100644 index 000000000..67528de9c --- /dev/null +++ b/keyboards/planck/keymaps/gitdrik/rules.mk | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | SRC += muse.c | ||
| 2 | MOUSEKEY_ENABLE = yes | ||
| 3 | AUDIO_ENABLE = yes | ||
diff --git a/keyboards/plume/plume65/config.h b/keyboards/plume/plume65/config.h new file mode 100644 index 000000000..2cd05e180 --- /dev/null +++ b/keyboards/plume/plume65/config.h | |||
| @@ -0,0 +1,137 @@ | |||
| 1 | /* Copyright 2020 Dekkers | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #include "config_common.h" | ||
| 20 | |||
| 21 | /* USB Device descriptor parameter */ | ||
| 22 | #define VENDOR_ID 0x5D66 | ||
| 23 | #define PRODUCT_ID 0x22CF | ||
| 24 | #define DEVICE_VER 0x0001 | ||
| 25 | #define MANUFACTURER Plume Keyboards LLC | ||
| 26 | #define PRODUCT Plume65 | ||
| 27 | |||
| 28 | /* key matrix size */ | ||
| 29 | #define MATRIX_ROWS 5 | ||
| 30 | #define MATRIX_COLS 15 | ||
| 31 | |||
| 32 | /* | ||
| 33 | * Keyboard Matrix Assignments | ||
| 34 | * | ||
| 35 | * Change this to how you wired your keyboard | ||
| 36 | * COLS: AVR pins used for columns, left to right | ||
| 37 | * ROWS: AVR pins used for rows, top to bottom | ||
| 38 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 39 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 40 | * | ||
| 41 | */ | ||
| 42 | #define MATRIX_ROW_PINS { D2, D5, E6, D0, D1 } | ||
| 43 | #define MATRIX_COL_PINS { B7, F7, C7, C6, B6, F0, B5, F1, B4, F4, D7, F5, D6, F6, D4 } | ||
| 44 | #define UNUSED_PINS { } | ||
| 45 | |||
| 46 | /* COL2ROW, ROW2COL*/ | ||
| 47 | #define DIODE_DIRECTION COL2ROW | ||
| 48 | |||
| 49 | #define RGB_DI_PIN B0 | ||
| 50 | // #ifdef RGB_DI_PIN | ||
| 51 | #define RGBLED_NUM 10 | ||
| 52 | // #define RGBLIGHT_HUE_STEP 8 | ||
| 53 | // #define RGBLIGHT_SAT_STEP 8 | ||
| 54 | // #define RGBLIGHT_VAL_STEP 8 | ||
| 55 | // #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ | ||
| 56 | // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ | ||
| 57 | // /*== all animations enable ==*/ | ||
| 58 | #define RGBLIGHT_ANIMATIONS | ||
| 59 | // /*== or choose animations ==*/ | ||
| 60 | // #define RGBLIGHT_EFFECT_BREATHING | ||
| 61 | // #define RGBLIGHT_EFFECT_RAINBOW_MOOD | ||
| 62 | // #define RGBLIGHT_EFFECT_RAINBOW_SWIRL | ||
| 63 | // #define RGBLIGHT_EFFECT_SNAKE | ||
| 64 | // #define RGBLIGHT_EFFECT_KNIGHT | ||
| 65 | // #define RGBLIGHT_EFFECT_CHRISTMAS | ||
| 66 | // #define RGBLIGHT_EFFECT_STATIC_GRADIENT | ||
| 67 | // #define RGBLIGHT_EFFECT_RGB_TEST | ||
| 68 | // #define RGBLIGHT_EFFECT_ALTERNATING | ||
| 69 | // /*== customize breathing effect ==*/ | ||
| 70 | // /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ | ||
| 71 | // #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 | ||
| 72 | // /*==== use exp() and sin() ====*/ | ||
| 73 | // #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 | ||
| 74 | // #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 | ||
| 75 | // #endif | ||
| 76 | |||
| 77 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 78 | #define DEBOUNCE 5 | ||
| 79 | |||
| 80 | /* define if matrix has ghost (lacks anti-ghosting diodes) */ | ||
| 81 | //#define MATRIX_HAS_GHOST | ||
| 82 | |||
| 83 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 84 | #define LOCKING_SUPPORT_ENABLE | ||
| 85 | /* Locking resynchronize hack */ | ||
| 86 | #define LOCKING_RESYNC_ENABLE | ||
| 87 | |||
| 88 | /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. | ||
| 89 | * This is userful for the Windows task manager shortcut (ctrl+shift+esc). | ||
| 90 | */ | ||
| 91 | // #define GRAVE_ESC_CTRL_OVERRIDE | ||
| 92 | |||
| 93 | /* | ||
| 94 | * Force NKRO | ||
| 95 | * | ||
| 96 | * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved | ||
| 97 | * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the | ||
| 98 | * makefile for this to work.) | ||
| 99 | * | ||
| 100 | * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) | ||
| 101 | * until the next keyboard reset. | ||
| 102 | * | ||
| 103 | * NKRO may prevent your keystrokes from being detected in the BIOS, but it is | ||
| 104 | * fully operational during normal computer usage. | ||
| 105 | * | ||
| 106 | * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) | ||
| 107 | * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by | ||
| 108 | * bootmagic, NKRO mode will always be enabled until it is toggled again during a | ||
| 109 | * power-up. | ||
| 110 | * | ||
| 111 | */ | ||
| 112 | //#define FORCE_NKRO | ||
| 113 | |||
| 114 | /* | ||
| 115 | * Feature disable options | ||
| 116 | * These options are also useful to firmware size reduction. | ||
| 117 | */ | ||
| 118 | |||
| 119 | /* disable debug print */ | ||
| 120 | //#define NO_DEBUG | ||
| 121 | |||
| 122 | /* disable print */ | ||
| 123 | //#define NO_PRINT | ||
| 124 | |||
| 125 | /* disable action features */ | ||
| 126 | //#define NO_ACTION_LAYER | ||
| 127 | //#define NO_ACTION_TAPPING | ||
| 128 | //#define NO_ACTION_ONESHOT | ||
| 129 | //#define NO_ACTION_MACRO | ||
| 130 | //#define NO_ACTION_FUNCTION | ||
| 131 | |||
| 132 | /* Bootmagic Lite key configuration */ | ||
| 133 | // #define BOOTMAGIC_LITE_ROW 0 | ||
| 134 | // #define BOOTMAGIC_LITE_COLUMN 0 | ||
| 135 | |||
| 136 | #define QMK_ESC_OUTPUT B7 // usually COL | ||
| 137 | #define QMK_ESC_INPUT D2 // usually ROW | ||
diff --git a/keyboards/plume/plume65/info.json b/keyboards/plume/plume65/info.json new file mode 100644 index 000000000..941d911f3 --- /dev/null +++ b/keyboards/plume/plume65/info.json | |||
| @@ -0,0 +1,376 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "Plume65", | ||
| 3 | "url": "", | ||
| 4 | "maintainer": "maartenwut", | ||
| 5 | "width": 16, | ||
| 6 | "height": 5, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT_iso": { | ||
| 9 | "layout": [ | ||
| 10 | {"x":0, "y":0}, | ||
| 11 | {"x":1, "y":0}, | ||
| 12 | {"x":2, "y":0}, | ||
| 13 | {"x":3, "y":0}, | ||
| 14 | {"x":4, "y":0}, | ||
| 15 | {"x":5, "y":0}, | ||
| 16 | {"x":6, "y":0}, | ||
| 17 | {"x":7, "y":0}, | ||
| 18 | {"x":8, "y":0}, | ||
| 19 | {"x":9, "y":0}, | ||
| 20 | {"x":10, "y":0}, | ||
| 21 | {"x":11, "y":0}, | ||
| 22 | {"x":12, "y":0}, | ||
| 23 | {"x":13, "y":0, "w":2}, | ||
| 24 | |||
| 25 | {"x":0, "y":1, "w":1.5}, | ||
| 26 | {"x":1.5, "y":1}, | ||
| 27 | {"x":2.5, "y":1}, | ||
| 28 | {"x":3.5, "y":1}, | ||
| 29 | {"x":4.5, "y":1}, | ||
| 30 | {"x":5.5, "y":1}, | ||
| 31 | {"x":6.5, "y":1}, | ||
| 32 | {"x":7.5, "y":1}, | ||
| 33 | {"x":8.5, "y":1}, | ||
| 34 | {"x":9.5, "y":1}, | ||
| 35 | {"x":10.5, "y":1}, | ||
| 36 | {"x":11.5, "y":1}, | ||
| 37 | {"x":12.5, "y":1}, | ||
| 38 | {"x":15, "y":1}, | ||
| 39 | |||
| 40 | {"x":0, "y":2, "w":1.75}, | ||
| 41 | {"x":1.75, "y":2}, | ||
| 42 | {"x":2.75, "y":2}, | ||
| 43 | {"x":3.75, "y":2}, | ||
| 44 | {"x":4.75, "y":2}, | ||
| 45 | {"x":5.75, "y":2}, | ||
| 46 | {"x":6.75, "y":2}, | ||
| 47 | {"x":7.75, "y":2}, | ||
| 48 | {"x":8.75, "y":2}, | ||
| 49 | {"x":9.75, "y":2}, | ||
| 50 | {"x":10.75, "y":2}, | ||
| 51 | {"x":11.75, "y":2}, | ||
| 52 | {"x":12.75, "y":2}, | ||
| 53 | {"x":13.75, "y":1, "w":1.25, "h":2}, | ||
| 54 | {"x":15, "y":2}, | ||
| 55 | |||
| 56 | {"x":0, "y":3, "w":1.25}, | ||
| 57 | {"x":1.25, "y":3}, | ||
| 58 | {"x":2.25, "y":3}, | ||
| 59 | {"x":3.25, "y":3}, | ||
| 60 | {"x":4.25, "y":3}, | ||
| 61 | {"x":5.25, "y":3}, | ||
| 62 | {"x":6.25, "y":3}, | ||
| 63 | {"x":7.25, "y":3}, | ||
| 64 | {"x":8.25, "y":3}, | ||
| 65 | {"x":9.25, "y":3}, | ||
| 66 | {"x":10.25, "y":3}, | ||
| 67 | {"x":11.25, "y":3}, | ||
| 68 | {"x":12.25, "y":3, "w":1.75}, | ||
| 69 | {"x":14, "y":3}, | ||
| 70 | {"x":15, "y":3}, | ||
| 71 | |||
| 72 | {"x":0, "y":4, "w":1.5}, | ||
| 73 | {"x":2.5, "y":4, "w":1.5}, | ||
| 74 | {"x":4, "y":4, "w":7}, | ||
| 75 | {"x":11, "y":4, "w":1.5}, | ||
| 76 | {"x":13, "y":4}, | ||
| 77 | {"x":14, "y":4}, | ||
| 78 | {"x":15, "y":4} | ||
| 79 | ] | ||
| 80 | }, | ||
| 81 | "LAYOUT_ansi": { | ||
| 82 | "layout": [ | ||
| 83 | {"x":0, "y":0}, | ||
| 84 | {"x":1, "y":0}, | ||
| 85 | {"x":2, "y":0}, | ||
| 86 | {"x":3, "y":0}, | ||
| 87 | {"x":4, "y":0}, | ||
| 88 | {"x":5, "y":0}, | ||
| 89 | {"x":6, "y":0}, | ||
| 90 | {"x":7, "y":0}, | ||
| 91 | {"x":8, "y":0}, | ||
| 92 | {"x":9, "y":0}, | ||
| 93 | {"x":10, "y":0}, | ||
| 94 | {"x":11, "y":0}, | ||
| 95 | {"x":12, "y":0}, | ||
| 96 | {"x":13, "y":0, "w":2}, | ||
| 97 | |||
| 98 | {"x":0, "y":1, "w":1.5}, | ||
| 99 | {"x":1.5, "y":1}, | ||
| 100 | {"x":2.5, "y":1}, | ||
| 101 | {"x":3.5, "y":1}, | ||
| 102 | {"x":4.5, "y":1}, | ||
| 103 | {"x":5.5, "y":1}, | ||
| 104 | {"x":6.5, "y":1}, | ||
| 105 | {"x":7.5, "y":1}, | ||
| 106 | {"x":8.5, "y":1}, | ||
| 107 | {"x":9.5, "y":1}, | ||
| 108 | {"x":10.5, "y":1}, | ||
| 109 | {"x":11.5, "y":1}, | ||
| 110 | {"x":12.5, "y":1}, | ||
| 111 | {"x":13.5, "y":1, "w":1.5}, | ||
| 112 | {"x":15, "y":1}, | ||
| 113 | |||
| 114 | {"x":0, "y":2, "w":1.75}, | ||
| 115 | {"x":1.75, "y":2}, | ||
| 116 | {"x":2.75, "y":2}, | ||
| 117 | {"x":3.75, "y":2}, | ||
| 118 | {"x":4.75, "y":2}, | ||
| 119 | {"x":5.75, "y":2}, | ||
| 120 | {"x":6.75, "y":2}, | ||
| 121 | {"x":7.75, "y":2}, | ||
| 122 | {"x":8.75, "y":2}, | ||
| 123 | {"x":9.75, "y":2}, | ||
| 124 | {"x":10.75, "y":2}, | ||
| 125 | {"x":11.75, "y":2}, | ||
| 126 | {"x":12.75, "y":2, "w":2.25}, | ||
| 127 | {"x":15, "y":2}, | ||
| 128 | |||
| 129 | {"x":0, "y":3, "w":2.25}, | ||
| 130 | {"x":2.25, "y":3}, | ||
| 131 | {"x":3.25, "y":3}, | ||
| 132 | {"x":4.25, "y":3}, | ||
| 133 | {"x":5.25, "y":3}, | ||
| 134 | {"x":6.25, "y":3}, | ||
| 135 | {"x":7.25, "y":3}, | ||
| 136 | {"x":8.25, "y":3}, | ||
| 137 | {"x":9.25, "y":3}, | ||
| 138 | {"x":10.25, "y":3}, | ||
| 139 | {"x":11.25, "y":3}, | ||
| 140 | {"x":12.25, "y":3, "w":1.75}, | ||
| 141 | {"x":14, "y":3}, | ||
| 142 | {"x":15, "y":3}, | ||
| 143 | |||
| 144 | {"x":0, "y":4, "w":1.5}, | ||
| 145 | {"x":2.5, "y":4, "w":1.5}, | ||
| 146 | {"x":4, "y":4, "w":7}, | ||
| 147 | {"x":11, "y":4, "w":1.5}, | ||
| 148 | {"x":13, "y":4}, | ||
| 149 | {"x":14, "y":4}, | ||
| 150 | {"x":15, "y":4} | ||
| 151 | ] | ||
| 152 | }, | ||
| 153 | "LAYOUT_iso_split_bs": { | ||
| 154 | "layout": [ | ||
| 155 | {"x":0, "y":0}, | ||
| 156 | {"x":1, "y":0}, | ||
| 157 | {"x":2, "y":0}, | ||
| 158 | {"x":3, "y":0}, | ||
| 159 | {"x":4, "y":0}, | ||
| 160 | {"x":5, "y":0}, | ||
| 161 | {"x":6, "y":0}, | ||
| 162 | {"x":7, "y":0}, | ||
| 163 | {"x":8, "y":0}, | ||
| 164 | {"x":9, "y":0}, | ||
| 165 | {"x":10, "y":0}, | ||
| 166 | {"x":11, "y":0}, | ||
| 167 | {"x":12, "y":0}, | ||
| 168 | {"x":13, "y":0}, | ||
| 169 | {"x":14, "y":0}, | ||
| 170 | |||
| 171 | {"x":0, "y":1, "w":1.5}, | ||
| 172 | {"x":1.5, "y":1}, | ||
| 173 | {"x":2.5, "y":1}, | ||
| 174 | {"x":3.5, "y":1}, | ||
| 175 | {"x":4.5, "y":1}, | ||
| 176 | {"x":5.5, "y":1}, | ||
| 177 | {"x":6.5, "y":1}, | ||
| 178 | {"x":7.5, "y":1}, | ||
| 179 | {"x":8.5, "y":1}, | ||
| 180 | {"x":9.5, "y":1}, | ||
| 181 | {"x":10.5, "y":1}, | ||
| 182 | {"x":11.5, "y":1}, | ||
| 183 | {"x":12.5, "y":1}, | ||
| 184 | {"x":15, "y":1}, | ||
| 185 | |||
| 186 | {"x":0, "y":2, "w":1.75}, | ||
| 187 | {"x":1.75, "y":2}, | ||
| 188 | {"x":2.75, "y":2}, | ||
| 189 | {"x":3.75, "y":2}, | ||
| 190 | {"x":4.75, "y":2}, | ||
| 191 | {"x":5.75, "y":2}, | ||
| 192 | {"x":6.75, "y":2}, | ||
| 193 | {"x":7.75, "y":2}, | ||
| 194 | {"x":8.75, "y":2}, | ||
| 195 | {"x":9.75, "y":2}, | ||
| 196 | {"x":10.75, "y":2}, | ||
| 197 | {"x":11.75, "y":2}, | ||
| 198 | {"x":12.75, "y":2}, | ||
| 199 | {"x":13.75, "y":1, "w":1.25, "h":2}, | ||
| 200 | {"x":15, "y":2}, | ||
| 201 | |||
| 202 | {"x":0, "y":3, "w":1.25}, | ||
| 203 | {"x":1.25, "y":3}, | ||
| 204 | {"x":2.25, "y":3}, | ||
| 205 | {"x":3.25, "y":3}, | ||
| 206 | {"x":4.25, "y":3}, | ||
| 207 | {"x":5.25, "y":3}, | ||
| 208 | {"x":6.25, "y":3}, | ||
| 209 | {"x":7.25, "y":3}, | ||
| 210 | {"x":8.25, "y":3}, | ||
| 211 | {"x":9.25, "y":3}, | ||
| 212 | {"x":10.25, "y":3}, | ||
| 213 | {"x":11.25, "y":3}, | ||
| 214 | {"x":12.25, "y":3, "w":1.75}, | ||
| 215 | {"x":14, "y":3}, | ||
| 216 | {"x":15, "y":3}, | ||
| 217 | |||
| 218 | {"x":0, "y":4, "w":1.5}, | ||
| 219 | {"x":2.5, "y":4, "w":1.5}, | ||
| 220 | {"x":4, "y":4, "w":7}, | ||
| 221 | {"x":11, "y":4, "w":1.5}, | ||
| 222 | {"x":13, "y":4}, | ||
| 223 | {"x":14, "y":4}, | ||
| 224 | {"x":15, "y":4} | ||
| 225 | ] | ||
| 226 | }, | ||
| 227 | "LAYOUT_ansi_split_bs": { | ||
| 228 | "layout": [ | ||
| 229 | {"x":0, "y":0}, | ||
| 230 | {"x":1, "y":0}, | ||
| 231 | {"x":2, "y":0}, | ||
| 232 | {"x":3, "y":0}, | ||
| 233 | {"x":4, "y":0}, | ||
| 234 | {"x":5, "y":0}, | ||
| 235 | {"x":6, "y":0}, | ||
| 236 | {"x":7, "y":0}, | ||
| 237 | {"x":8, "y":0}, | ||
| 238 | {"x":9, "y":0}, | ||
| 239 | {"x":10, "y":0}, | ||
| 240 | {"x":11, "y":0}, | ||
| 241 | {"x":12, "y":0}, | ||
| 242 | {"x":13, "y":0}, | ||
| 243 | {"x":14, "y":0}, | ||
| 244 | |||
| 245 | {"x":0, "y":1, "w":1.5}, | ||
| 246 | {"x":1.5, "y":1}, | ||
| 247 | {"x":2.5, "y":1}, | ||
| 248 | {"x":3.5, "y":1}, | ||
| 249 | {"x":4.5, "y":1}, | ||
| 250 | {"x":5.5, "y":1}, | ||
| 251 | {"x":6.5, "y":1}, | ||
| 252 | {"x":7.5, "y":1}, | ||
| 253 | {"x":8.5, "y":1}, | ||
| 254 | {"x":9.5, "y":1}, | ||
| 255 | {"x":10.5, "y":1}, | ||
| 256 | {"x":11.5, "y":1}, | ||
| 257 | {"x":12.5, "y":1}, | ||
| 258 | {"x":13.5, "y":1, "w":1.5}, | ||
| 259 | {"x":15, "y":1}, | ||
| 260 | |||
| 261 | {"x":0, "y":2, "w":1.75}, | ||
| 262 | {"x":1.75, "y":2}, | ||
| 263 | {"x":2.75, "y":2}, | ||
| 264 | {"x":3.75, "y":2}, | ||
| 265 | {"x":4.75, "y":2}, | ||
| 266 | {"x":5.75, "y":2}, | ||
| 267 | {"x":6.75, "y":2}, | ||
| 268 | {"x":7.75, "y":2}, | ||
| 269 | {"x":8.75, "y":2}, | ||
| 270 | {"x":9.75, "y":2}, | ||
| 271 | {"x":10.75, "y":2}, | ||
| 272 | {"x":11.75, "y":2}, | ||
| 273 | {"x":12.75, "y":2, "w":2.25}, | ||
| 274 | {"x":15, "y":2}, | ||
| 275 | |||
| 276 | {"x":0, "y":3, "w":2.25}, | ||
| 277 | {"x":2.25, "y":3}, | ||
| 278 | {"x":3.25, "y":3}, | ||
| 279 | {"x":4.25, "y":3}, | ||
| 280 | {"x":5.25, "y":3}, | ||
| 281 | {"x":6.25, "y":3}, | ||
| 282 | {"x":7.25, "y":3}, | ||
| 283 | {"x":8.25, "y":3}, | ||
| 284 | {"x":9.25, "y":3}, | ||
| 285 | {"x":10.25, "y":3}, | ||
| 286 | {"x":11.25, "y":3}, | ||
| 287 | {"x":12.25, "y":3, "w":1.75}, | ||
| 288 | {"x":14, "y":3}, | ||
| 289 | {"x":15, "y":3}, | ||
| 290 | |||
| 291 | {"x":0, "y":4, "w":1.5}, | ||
| 292 | {"x":2.5, "y":4, "w":1.5}, | ||
| 293 | {"x":4, "y":4, "w":7}, | ||
| 294 | {"x":11, "y":4, "w":1.5}, | ||
| 295 | {"x":13, "y":4}, | ||
| 296 | {"x":14, "y":4}, | ||
| 297 | {"x":15, "y":4} | ||
| 298 | ] | ||
| 299 | }, | ||
| 300 | "LAYOUT_all": { | ||
| 301 | "layout": [ | ||
| 302 | {"x":0, "y":0}, | ||
| 303 | {"x":1, "y":0}, | ||
| 304 | {"x":2, "y":0}, | ||
| 305 | {"x":3, "y":0}, | ||
| 306 | {"x":4, "y":0}, | ||
| 307 | {"x":5, "y":0}, | ||
| 308 | {"x":6, "y":0}, | ||
| 309 | {"x":7, "y":0}, | ||
| 310 | {"x":8, "y":0}, | ||
| 311 | {"x":9, "y":0}, | ||
| 312 | {"x":10, "y":0}, | ||
| 313 | {"x":11, "y":0}, | ||
| 314 | {"x":12, "y":0}, | ||
| 315 | {"x":13, "y":0}, | ||
| 316 | {"x":14, "y":0}, | ||
| 317 | |||
| 318 | {"x":0, "y":1, "w":1.5}, | ||
| 319 | {"x":1.5, "y":1}, | ||
| 320 | {"x":2.5, "y":1}, | ||
| 321 | {"x":3.5, "y":1}, | ||
| 322 | {"x":4.5, "y":1}, | ||
| 323 | {"x":5.5, "y":1}, | ||
| 324 | {"x":6.5, "y":1}, | ||
| 325 | {"x":7.5, "y":1}, | ||
| 326 | {"x":8.5, "y":1}, | ||
| 327 | {"x":9.5, "y":1}, | ||
| 328 | {"x":10.5, "y":1}, | ||
| 329 | {"x":11.5, "y":1}, | ||
| 330 | {"x":12.5, "y":1}, | ||
| 331 | {"x":13.5, "y":1, "w":1.5}, | ||
| 332 | {"x":15, "y":1}, | ||
| 333 | |||
| 334 | {"x":0, "y":2, "w":1.75}, | ||
| 335 | {"x":1.75, "y":2}, | ||
| 336 | {"x":2.75, "y":2}, | ||
| 337 | {"x":3.75, "y":2}, | ||
| 338 | {"x":4.75, "y":2}, | ||
| 339 | {"x":5.75, "y":2}, | ||
| 340 | {"x":6.75, "y":2}, | ||
| 341 | {"x":7.75, "y":2}, | ||
| 342 | {"x":8.75, "y":2}, | ||
| 343 | {"x":9.75, "y":2}, | ||
| 344 | {"x":10.75, "y":2}, | ||
| 345 | {"x":11.75, "y":2}, | ||
| 346 | {"x":12.75, "y":2}, | ||
| 347 | {"x":13.75, "y":2, "w":1.25}, | ||
| 348 | {"x":15, "y":2}, | ||
| 349 | |||
| 350 | {"x":0, "y":3, "w":1.25}, | ||
| 351 | {"x":1.25, "y":3}, | ||
| 352 | {"x":2.25, "y":3}, | ||
| 353 | {"x":3.25, "y":3}, | ||
| 354 | {"x":4.25, "y":3}, | ||
| 355 | {"x":5.25, "y":3}, | ||
| 356 | {"x":6.25, "y":3}, | ||
| 357 | {"x":7.25, "y":3}, | ||
| 358 | {"x":8.25, "y":3}, | ||
| 359 | {"x":9.25, "y":3}, | ||
| 360 | {"x":10.25, "y":3}, | ||
| 361 | {"x":11.25, "y":3}, | ||
| 362 | {"x":12.25, "y":3, "w":1.75}, | ||
| 363 | {"x":14, "y":3}, | ||
| 364 | {"x":15, "y":3}, | ||
| 365 | |||
| 366 | {"x":0, "y":4, "w":1.5}, | ||
| 367 | {"x":2.5, "y":4, "w":1.5}, | ||
| 368 | {"x":4, "y":4, "w":7}, | ||
| 369 | {"x":11, "y":4, "w":1.5}, | ||
| 370 | {"x":13, "y":4}, | ||
| 371 | {"x":14, "y":4}, | ||
| 372 | {"x":15, "y":4} | ||
| 373 | ] | ||
| 374 | } | ||
| 375 | } | ||
| 376 | } | ||
diff --git a/keyboards/plume/plume65/keymaps/default/keymap.c b/keyboards/plume/plume65/keymaps/default/keymap.c new file mode 100644 index 000000000..343c3b4f7 --- /dev/null +++ b/keyboards/plume/plume65/keymaps/default/keymap.c | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | /* Copyright 2020 Dekkers | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | |||
| 20 | [0] = LAYOUT_ansi( | ||
| 21 | 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, | ||
| 22 | 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, KC_DEL, | ||
| 23 | KC_CAPS, 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_PGUP, | ||
| 24 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, | ||
| 25 | KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), | ||
| 26 | [1] = LAYOUT_ansi( | ||
| 27 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 28 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 29 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 30 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 31 | _______, _______, _______, _______, _______, _______, _______) | ||
| 32 | |||
| 33 | }; | ||
diff --git a/keyboards/plume/plume65/keymaps/default/readme.md b/keyboards/plume/plume65/keymaps/default/readme.md new file mode 100644 index 000000000..33c50283a --- /dev/null +++ b/keyboards/plume/plume65/keymaps/default/readme.md | |||
| @@ -0,0 +1 @@ | |||
| This is the default keymap for the Plume65. | |||
diff --git a/keyboards/plume/plume65/keymaps/via/keymap.c b/keyboards/plume/plume65/keymaps/via/keymap.c new file mode 100644 index 000000000..ed8e921c7 --- /dev/null +++ b/keyboards/plume/plume65/keymaps/via/keymap.c | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | /* Copyright 2020 Dekkers | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | |||
| 18 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 19 | |||
| 20 | [0] = LAYOUT_all( | ||
| 21 | 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_BSPC, | ||
| 22 | 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, KC_DEL, | ||
| 23 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_PGUP, | ||
| 24 | KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, | ||
| 25 | KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), | ||
| 26 | [1] = LAYOUT_all( | ||
| 27 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 28 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 29 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 30 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 31 | _______, _______, _______, _______, _______, _______, _______), | ||
| 32 | [2] = LAYOUT_all( | ||
| 33 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 34 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 35 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 36 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 37 | _______, _______, _______, _______, _______, _______, _______), | ||
| 38 | [3] = LAYOUT_all( | ||
| 39 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 40 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 41 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 42 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 43 | _______, _______, _______, _______, _______, _______, _______), | ||
| 44 | |||
| 45 | }; | ||
diff --git a/keyboards/plume/plume65/keymaps/via/rules.mk b/keyboards/plume/plume65/keymaps/via/rules.mk new file mode 100644 index 000000000..1e5b99807 --- /dev/null +++ b/keyboards/plume/plume65/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes | |||
diff --git a/keyboards/plume/plume65/plume65.c b/keyboards/plume/plume65/plume65.c new file mode 100644 index 000000000..d59f2289e --- /dev/null +++ b/keyboards/plume/plume65/plume65.c | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | /* Copyright 2020 Dekkers | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "plume65.h" | ||
diff --git a/keyboards/plume/plume65/plume65.h b/keyboards/plume/plume65/plume65.h new file mode 100644 index 000000000..fa169a8bc --- /dev/null +++ b/keyboards/plume/plume65/plume65.h | |||
| @@ -0,0 +1,103 @@ | |||
| 1 | /* Copyright 2020 Dekkers | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "quantum.h" | ||
| 19 | #define XXX KC_NO | ||
| 20 | |||
| 21 | /* This a shortcut to help you visually see your layout. | ||
| 22 | * | ||
| 23 | * The first section contains all of the arguments representing the physical | ||
| 24 | * layout of the board and position of the keys. | ||
| 25 | * | ||
| 26 | * The second converts the arguments into a two-dimensional array which | ||
| 27 | * represents the switch matrix. | ||
| 28 | */ | ||
| 29 | |||
| 30 | #define LAYOUT_ansi( \ | ||
| 31 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ | ||
| 32 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ | ||
| 33 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ | ||
| 34 | k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ | ||
| 35 | k40, k42, k46, k4b, k4c, k4d, k4e \ | ||
| 36 | ) \ | ||
| 37 | { \ | ||
| 38 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ | ||
| 39 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ | ||
| 40 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e }, \ | ||
| 41 | { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ | ||
| 42 | { k40, XXX, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, k4c, k4d, k4e } \ | ||
| 43 | } | ||
| 44 | |||
| 45 | #define LAYOUT_ansi_split_bs( \ | ||
| 46 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0d, \ | ||
| 47 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ | ||
| 48 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ | ||
| 49 | k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ | ||
| 50 | k40, k42, k46, k4b, k4c, k4d, k4e \ | ||
| 51 | ) \ | ||
| 52 | { \ | ||
| 53 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ | ||
| 54 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ | ||
| 55 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e }, \ | ||
| 56 | { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ | ||
| 57 | { k40, XXX, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, k4c, k4d, k4e } \ | ||
| 58 | } | ||
| 59 | |||
| 60 | #define LAYOUT_iso( \ | ||
| 61 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ | ||
| 62 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ | ||
| 63 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ | ||
| 64 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ | ||
| 65 | k40, k42, k46, k4b, k4c, k4d, k4e \ | ||
| 66 | ) \ | ||
| 67 | { \ | ||
| 68 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ | ||
| 69 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e }, \ | ||
| 70 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ | ||
| 71 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ | ||
| 72 | { k40, XXX, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, k4c, k4d, k4e } \ | ||
| 73 | } | ||
| 74 | |||
| 75 | #define LAYOUT_iso_split_bs( \ | ||
| 76 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0d, \ | ||
| 77 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ | ||
| 78 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ | ||
| 79 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ | ||
| 80 | k40, k42, k46, k4b, k4c, k4d, k4e \ | ||
| 81 | ) \ | ||
| 82 | { \ | ||
| 83 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ | ||
| 84 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e }, \ | ||
| 85 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ | ||
| 86 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ | ||
| 87 | { k40, XXX, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, k4c, k4d, k4e } \ | ||
| 88 | } | ||
| 89 | |||
| 90 | #define LAYOUT_all( \ | ||
| 91 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0d, \ | ||
| 92 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ | ||
| 93 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ | ||
| 94 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ | ||
| 95 | k40, k42, k46, k4b, k4c, k4d, k4e \ | ||
| 96 | ) \ | ||
| 97 | { \ | ||
| 98 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ | ||
| 99 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ | ||
| 100 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ | ||
| 101 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ | ||
| 102 | { k40, XXX, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, k4c, k4d, k4e } \ | ||
| 103 | } | ||
diff --git a/keyboards/plume/plume65/readme.md b/keyboards/plume/plume65/readme.md new file mode 100644 index 000000000..828477eaf --- /dev/null +++ b/keyboards/plume/plume65/readme.md | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | # Plume65 | ||
| 2 | |||
| 3 | ## Support | ||
| 4 | * Keyboard Maintainer: [maartenwut](https://github.com/maartenwut) | ||
| 5 | * Hardware Supported: Plume65 | ||
| 6 | * Hardware Availability: N/A | ||
| 7 | |||
| 8 | Make example for this keyboard (after setting up your build environment): | ||
| 9 | |||
| 10 | make plume/plume65:default | ||
| 11 | |||
| 12 | Flashing example for this keyboard: | ||
| 13 | |||
| 14 | make plume/plume65:default:flash | ||
| 15 | |||
| 16 | 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). | ||
diff --git a/keyboards/plume/plume65/rules.mk b/keyboards/plume/plume65/rules.mk new file mode 100644 index 000000000..dded09bb8 --- /dev/null +++ b/keyboards/plume/plume65/rules.mk | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = qmk-dfu | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = no # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
diff --git a/keyboards/redox_w/keymaps/danielo515/keymap.c b/keyboards/redox_w/keymaps/danielo515/keymap.c index 2b37a4be3..c174c7cf3 100644 --- a/keyboards/redox_w/keymaps/danielo515/keymap.c +++ b/keyboards/redox_w/keymaps/danielo515/keymap.c | |||
| @@ -22,56 +22,59 @@ | |||
| 22 | # define GUI OSM(MOD_LGUI) | 22 | # define GUI OSM(MOD_LGUI) |
| 23 | # define ENT_SYM LT(_SYMB, KC_ENT) | 23 | # define ENT_SYM LT(_SYMB, KC_ENT) |
| 24 | # define __S LT(_S,KC_S) | 24 | # define __S LT(_S,KC_S) |
| 25 | # define OSX_BACK LGUI(KC_GRV) | ||
| 26 | // Which key do you use to enter a layer | ||
| 27 | # define ENTRY _______ | ||
| 25 | 28 | ||
| 26 | 29 | ||
| 27 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 30 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 28 | 31 | ||
| 29 | [_QWERTY] = LAYOUT( | 32 | [_QWERTY] = LAYOUT( |
| 30 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠| 33 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠|
| 31 | KC_NAGR ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_DQUO , | 34 | KC_EQL ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_DQUO , |
| 32 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 35 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 33 | KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,TD_PASTE, ALT_TAB ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,SFT_MINS, | 36 | KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,TD_PASTE, KC_INS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,CMD_MINS, |
| 34 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 37 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 35 | SHIFT ,KC_A ,__S ,FN_D ,FN_F ,KC_G ,COPY_CUT, KC_UNDS ,HYPR_H ,ALT_J ,CTL_K ,KC_L ,TD_CLN ,CMD_QUOT, | 38 | KC_PIPE ,KC_A ,__S ,FN_D ,FN_F ,KC_G ,COPY_CUT, KC_UNDS ,HYPR_H ,ALT_J ,CTL_K ,KC_L ,TD_CLN ,SFT_QUOT, |
| 36 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 39 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 37 | KC_BSLS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_DEL ,KC_PGDN , ALT_TAB ,AD_ESC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_ASTR , | 40 | KC_BSLS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_DEL ,KC_PLUS , ALT_TAB ,AD_ESC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_ASTR , |
| 38 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | 41 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ |
| 39 | CTL ,ALT ,KC_LEFT ,KC_RIGHT, GUI , SHIFT ,KC_BSPC , KC_LEAD ,NAV_SPC , ENT_SYM, KC_LBRC ,KC_RBRC ,KC_DOWN ,KC_UP | 42 | CTL ,ALT ,KC_LEFT ,KC_RIGHT, GUI , SHIFT ,KC_BSPC , KC_LEAD ,NAV_SPC , ENT_SYM, KC_LBRC ,KC_RBRC ,KC_DOWN ,KC_UP |
| 40 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | 43 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ |
| 41 | ), | 44 | ), |
| 42 | 45 | ||
| 43 | [_SYMB] = LAYOUT( | 46 | [_SYMB] = LAYOUT( |
| 44 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠| 47 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠|
| 45 | _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 , | 48 | _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F12 , |
| 46 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 49 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 47 | _______ ,KC_EXLM ,KC_DLR ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ , _______ ,KC_PSLS ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PERC ,KC_PMNS , | 50 | _______ ,KC_EXLM ,KC_DLR ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ , _______ ,KC_PSLS ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PERC ,KC_BSPC , |
| 48 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 51 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 49 | _______ ,KC_AT ,KC_DLR , KC_LPRN, KC_RPRN,KC_GRV ,_______ , _______ ,KC_PAST ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,KC_BSPC , | 52 | _______ ,KC_AT ,KC_DLR , KC_LPRN, KC_RPRN,KC_GRV ,_______ , _______ ,KC_PENT ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,KC_PMNS , |
| 50 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 53 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 51 | _______ ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,_______ ,_______ , _______ ,_______ ,KC_COLN ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT ,XXXXXXX , | 54 | _______ ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,_______ ,_______ , _______ ,_______ ,KC_COLN ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PSLS ,XXXXXXX , |
| 52 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | 55 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ |
| 53 | _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , KC_P0 , KC_P0 ,KC_PDOT ,KC_PENT ,XXXXXXX | 56 | _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , ENTRY , KC_P0 ,KC_PDOT ,KC_PAST ,XXXXXXX |
| 54 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | 57 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ |
| 55 | ), | 58 | ), |
| 56 | 59 | ||
| 57 | [_NAV] = LAYOUT( | 60 | [_NAV] = LAYOUT( |
| 58 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠| 61 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠|
| 59 | _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ , | 62 | _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ , |
| 60 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 63 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 61 | XXXXXXX ,XXXXXXX ,KC_MS_U ,XXXXXXX ,KC_WH_U ,XXXXXXX ,_______ , _______ ,XXXXXXX,SFT_LEFT,SFT_RIGHT,XXXXXXX ,XXXXXXX ,XXXXXXX , | 64 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , _______ ,SFT_LEFT_END,SFT_LEFT,SFT_RIGHT,SFT_RIGHT_END ,XXXXXXX ,KC_F12 , |
| 62 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 65 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 63 | XXXXXXX ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_WH_D ,XXXXXXX ,_______ , _______ ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RIGHT,XXXXXXX ,XXXXXXX , | 66 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , _______ ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RIGHT,XXXXXXX ,XXXXXXX , |
| 64 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 67 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 65 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ , _______ ,XXXXXXX ,KC_HOME ,CTL_LEFT,CTL_RIGHT,XXXXXXX,XXXXXXX ,XXXXXXX , | 68 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ , _______ ,XXXXXXX ,KC_HOME ,CTL_LEFT,CTL_RIGHT,KC_END,XXXXXXX ,XXXXXXX , |
| 66 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | 69 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ |
| 67 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_BTN1 , KC_BTN2 ,_______ , _______ ,_______ , XXXXXXX , XXXXXXX ,XXXXXXX ,WIN_LEFT,WIN_RIGHT | 70 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , _______ , _______ ,_______ , _______ , ENTRY , KC_MUTE , KC_VOLD ,KC_VOLU ,WIN_LEFT,WIN_RIGHT |
| 68 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | 71 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ |
| 69 | ), | 72 | ), |
| 70 | [_ADJUST] = LAYOUT( | 73 | [_ADJUST] = LAYOUT( |
| 71 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠| 74 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠|
| 72 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , | 75 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , |
| 73 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 76 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 74 | XXXXXXX ,RESET ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_F12 , | 77 | XXXXXXX ,RESET ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , |
| 75 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 78 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 76 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , | 79 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , |
| 77 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 80 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| @@ -84,26 +87,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 84 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠| 87 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠|
| 85 | XXXXXXX ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 , | 88 | XXXXXXX ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 , |
| 86 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 89 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 87 | XXXXXXX ,XXXXXXX ,ALL_WIN ,EXPOSE ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , | 90 | XXXXXXX ,XXXXXXX ,ALL_WIN ,EXPOSE ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,KC_F4 ,KC_F5 ,KC_F6 ,XXXXXXX ,KC_F12 , |
| 88 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 91 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 89 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , | 92 | XXXXXXX ,XXXXXXX ,SAVE ,OSX_BACK ,ENTRY ,XXXXXXX ,XXXXXXX , XXXXXXX ,KC_PSCR ,KC_F1 ,KC_F2 ,KC_F3 ,XXXXXXX ,XXXXXXX , |
| 90 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 93 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 91 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , | 94 | XXXXXXX ,UNDO ,REDO ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , |
| 92 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | 95 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ |
| 93 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,XXXXXXX , XXXXXXX ,_______ , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX | 96 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,XXXXXXX , KC_PGUP ,KC_PGDOWN , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX |
| 94 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | 97 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ |
| 95 | ), | 98 | ), |
| 96 | [_D] = LAYOUT( | 99 | [_D] = LAYOUT( |
| 97 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠| 100 | //┌────────┬────────┬────────┬────────┬────────┬────────┠┌────────┬────────┬────────┬────────┬────────┬────────┠|
| 98 | XXXXXXX ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F12 , | 101 | XXXXXXX ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_A ,KC_B ,KC_C ,KC_D ,KC_E ,KC_F , |
| 99 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 102 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 100 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , _______ ,KC_PSLS ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PERC ,KC_PMNS , | 103 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , _______ ,KC_LBRACKET ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PERC ,KC_KP_MINUS , |
| 101 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 104 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 102 | XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX , _______ ,KC_PAST ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,KC_BSPC , | 105 | XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,KC_F5 ,KC_F2 ,XXXXXXX , _______ ,KC_RBRACKET ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,KC_PAST , |
| 103 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 106 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 104 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , _______ ,_______ ,KC_COLN ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT ,XXXXXXX , | 107 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , _______ ,_______ ,KC_COLN ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PSLS ,XXXXXXX , |
| 105 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | 108 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ |
| 106 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,_______ , _______ ,_______ , KC_P0 , KC_P0 ,KC_PDOT ,KC_PENT ,XXXXXXX | 109 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,_______ , _______ ,_______ , KC_P0 , KC_COMMA ,KC_PDOT ,KC_PAST ,XXXXXXX |
| 107 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | 110 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ |
| 108 | ), | 111 | ), |
| 109 | [_S] = LAYOUT( | 112 | [_S] = LAYOUT( |
| @@ -114,9 +117,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 114 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 117 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 115 | XXXXXXX ,XXXXXXX ,_______ ,KC_EQL ,F_ARROW ,KC_GRAVE,XXXXXXX , XXXXXXX ,KC_AMPR ,KC_LPRN ,KC_RPRN ,CLN_EQ ,KC_PLUS ,KC_PIPE , | 118 | XXXXXXX ,XXXXXXX ,_______ ,KC_EQL ,F_ARROW ,KC_GRAVE,XXXXXXX , XXXXXXX ,KC_AMPR ,KC_LPRN ,KC_RPRN ,CLN_EQ ,KC_PLUS ,KC_PIPE , |
| 116 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | 119 | //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┠┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ |
| 117 | XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_CIRC ,KC_DLR ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,KC_EXLM ,KC_TILD ,KC_CIRC ,ARROW ,KC_BSLASH,IARROW , | 120 | XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_CIRC ,ARROW ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,KC_EXLM ,KC_TILD ,KC_CIRC ,ARROW ,KC_BSLASH,IARROW , |
| 118 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ | 121 | //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ |
| 119 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,_______ , XXXXXXX ,_______ , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX | 122 | XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,_______ , XXXXXXX ,ENTRY , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX |
| 120 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ | 123 | //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘ |
| 121 | ) | 124 | ) |
| 122 | 125 | ||
diff --git a/quantum/debounce/readme.md b/quantum/debounce/readme.md deleted file mode 100644 index f77f78c76..000000000 --- a/quantum/debounce/readme.md +++ /dev/null | |||
| @@ -1,28 +0,0 @@ | |||
| 1 | Debounce algorithms belong in this folder. | ||
| 2 | Here are a few ideas | ||
| 3 | |||
| 4 | 1) Global vs Per-Key vs Per-Row | ||
| 5 | * Global - one timer for all keys. Any key change state affects global timer | ||
| 6 | * Per key - one timer per key | ||
| 7 | * Per row - one timer per row | ||
| 8 | |||
| 9 | 2) Eager vs symmetric vs asymmetric | ||
| 10 | * Eager - any key change is reported immediately. All further inputs for DEBOUNCE ms are ignored. | ||
| 11 | * Symmetric - wait for no changes for DEBOUNCE ms before reporting change | ||
| 12 | * Asymmetric - wait for different times depending on key-down/key-up. E.g. Eager key-down, DEBOUNCE ms key up. | ||
| 13 | |||
| 14 | 3) Timestamp vs cycles | ||
| 15 | * old old old code waits n cycles, decreasing count by one each matrix_scan | ||
| 16 | * newer code stores the millisecond the change occurred, and does subraction to figure out time elapsed. | ||
| 17 | * Timestamps are superior, i don't think cycles will ever be used again once upgraded. | ||
| 18 | |||
| 19 | The default algorithm is symmetric and global. | ||
| 20 | Here are a few that could be implemented: | ||
| 21 | |||
| 22 | sym_g.c | ||
| 23 | sym_pk.c | ||
| 24 | sym_pr.c | ||
| 25 | sym_pr_cycles.c | ||
| 26 | eager_g.c | ||
| 27 | eager_pk.c | ||
| 28 | eager_pr.c //could be used in ergo-dox! | ||
diff --git a/quantum/debounce/sym_g.c b/quantum/debounce/sym_defer_g.c index 3ed9055d2..3ed9055d2 100644 --- a/quantum/debounce/sym_g.c +++ b/quantum/debounce/sym_defer_g.c | |||
diff --git a/quantum/debounce/sym_pk.c b/quantum/debounce/sym_defer_pk.c index f404cf9c4..f404cf9c4 100644 --- a/quantum/debounce/sym_pk.c +++ b/quantum/debounce/sym_defer_pk.c | |||
diff --git a/quantum/debounce/eager_pk.c b/quantum/debounce/sym_eager_pk.c index 93a40ad44..93a40ad44 100644 --- a/quantum/debounce/eager_pk.c +++ b/quantum/debounce/sym_eager_pk.c | |||
diff --git a/quantum/debounce/eager_pr.c b/quantum/debounce/sym_eager_pr.c index d12931fdd..d12931fdd 100644 --- a/quantum/debounce/eager_pr.c +++ b/quantum/debounce/sym_eager_pr.c | |||
diff --git a/quantum/keymap_extras/keymap_canadian_multilingual.h b/quantum/keymap_extras/keymap_canadian_multilingual.h index 20333fd6d..382e67ac9 100644 --- a/quantum/keymap_extras/keymap_canadian_multilingual.h +++ b/quantum/keymap_extras/keymap_canadian_multilingual.h | |||
| @@ -151,8 +151,8 @@ | |||
| 151 | // Row 4 | 151 | // Row 4 |
| 152 | #define CA_LDAQ ALGR(CA_X) // « | 152 | #define CA_LDAQ ALGR(CA_X) // « |
| 153 | #define CA_RDAQ ALGR(CA_C) // » | 153 | #define CA_RDAQ ALGR(CA_C) // » |
| 154 | #define CA_LABK ALGR(CA_DOT) // < | 154 | #define CA_LABK ALGR(CA_COMM) // < |
| 155 | #define CA_RABK ALGR(CA_COMM) // > | 155 | #define CA_RABK ALGR(CA_DOT) // > |
| 156 | 156 | ||
| 157 | /* Right Ctrl symbols | 157 | /* Right Ctrl symbols |
| 158 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┠| 158 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┠|
diff --git a/users/danielo515/combo.c b/users/danielo515/combo.c index 1c8414377..b33cb838b 100644 --- a/users/danielo515/combo.c +++ b/users/danielo515/combo.c | |||
| @@ -6,31 +6,39 @@ enum combos { | |||
| 6 | UI_COM, | 6 | UI_COM, |
| 7 | IO_COM, | 7 | IO_COM, |
| 8 | QW_COM, | 8 | QW_COM, |
| 9 | COM_SLS, | 9 | DOT_SLS, |
| 10 | COM_DOT, | 10 | COM_DOT, |
| 11 | M_COMM, | 11 | M_COMM, |
| 12 | N_M, | 12 | N_M, |
| 13 | OP_COM, | 13 | OP_COM, |
| 14 | M_CM_DOT, | ||
| 14 | }; | 15 | }; |
| 15 | 16 | ||
| 16 | const uint16_t PROGMEM ui_combo[] = {KC_U, KC_I, COMBO_END}; | 17 | const uint16_t PROGMEM ui_combo[] = {KC_U, KC_I, COMBO_END}; |
| 17 | const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; | 18 | const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; |
| 18 | const uint16_t PROGMEM yu_combo[] = {KC_Y, KC_U, COMBO_END}; | 19 | const uint16_t PROGMEM yu_combo[] = {KC_Y, KC_U, COMBO_END}; |
| 19 | const uint16_t PROGMEM io_combo[] = {KC_I, KC_O, COMBO_END}; | 20 | const uint16_t PROGMEM io_combo[] = {KC_I, KC_O, COMBO_END}; |
| 20 | const uint16_t PROGMEM qw_combo[] = {KC_Q, KC_W, COMBO_END}; | 21 | const uint16_t PROGMEM qw_combo[] = {KC_Q, KC_W, COMBO_END}; |
| 21 | const uint16_t PROGMEM com_sls[] = {KC_COMMA, KC_SLSH, COMBO_END}; | 22 | const uint16_t PROGMEM dot_sls[] = {KC_DOT, KC_SLSH, COMBO_END}; |
| 22 | const uint16_t PROGMEM com_dot[] = {KC_COMMA, KC_DOT, COMBO_END}; | 23 | const uint16_t PROGMEM com_dot[] = {KC_COMMA, KC_DOT, COMBO_END}; |
| 23 | const uint16_t PROGMEM m_comm[] = {KC_M,KC_COMMA, COMBO_END}; | 24 | const uint16_t PROGMEM m_comm[] = {KC_M, KC_COMMA, COMBO_END}; |
| 24 | const uint16_t PROGMEM n_m[] = {KC_N, KC_M,COMBO_END}; | 25 | const uint16_t PROGMEM n_m[] = {KC_N, KC_M, COMBO_END}; |
| 26 | const uint16_t PROGMEM o_p_combo[] = {KC_O, KC_P, COMBO_END}; | ||
| 27 | const uint16_t PROGMEM m_cm_dot_combo[] = {KC_M, KC_COMMA, KC_DOT, COMBO_END}; | ||
| 25 | 28 | ||
| 26 | combo_t key_combos[COMBO_COUNT] = { | 29 | combo_t key_combos[COMBO_COUNT] = { |
| 27 | [JK_ESC] = COMBO(jk_combo, KC_ESC), | 30 | [JK_ESC] = COMBO(jk_combo, KC_ESC), |
| 28 | [YU_COM] = COMBO(yu_combo, KC_CIRC), | 31 | [YU_COM] = COMBO(yu_combo, KC_AMPR), |
| 29 | [UI_COM] = COMBO(ui_combo, KC_DLR), | 32 | [UI_COM] = COMBO(ui_combo, KC_CIRC), |
| 30 | [IO_COM] = COMBO(io_combo, KC_TILD), | 33 | [IO_COM] = COMBO(io_combo, KC_TILD), |
| 34 | [DOT_SLS] = COMBO(dot_sls, KC_EXLM), | ||
| 35 | [COM_DOT] = COMBO(com_dot, KC_QUES), | ||
| 36 | [N_M] = COMBO(n_m, KC_DLR), | ||
| 37 | [OP_COM] = COMBO(o_p_combo, KC_HASH), | ||
| 38 | // m + , = { | ||
| 39 | [M_COMM] = COMBO(m_comm, KC_LCBR), | ||
| 40 | // m + , + . = } | ||
| 41 | // [M_CM_DOT] = COMBO(m_cm_dot_combo, KC_RCBR), | ||
| 42 | // Right hand side combos | ||
| 31 | [QW_COM] = COMBO(qw_combo, KC_AT), | 43 | [QW_COM] = COMBO(qw_combo, KC_AT), |
| 32 | [COM_SLS] = COMBO(com_sls, KC_QUES), | ||
| 33 | [COM_DOT] = COMBO(com_dot, KC_QUES), | ||
| 34 | [M_COMM] = COMBO(m_comm, KC_ESC), | ||
| 35 | [N_M] = COMBO(n_m, KC_DLR), | ||
| 36 | }; | 44 | }; |
diff --git a/users/danielo515/config.h b/users/danielo515/config.h index fb2472645..d7efcd536 100644 --- a/users/danielo515/config.h +++ b/users/danielo515/config.h | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | #pragma once | 1 | #pragma once |
| 2 | 2 | ||
| 3 | #if defined(COMBO_ENABLE) | 3 | #if defined(COMBO_ENABLE) |
| 4 | #define COMBO_COUNT 9 | 4 | # define COMBO_COUNT 11 |
| 5 | #define COMBO_TERM 40 | 5 | # define COMBO_TERM 25 |
| 6 | #endif // !COMBO_ENABLE | 6 | #endif // !COMBO_ENABLE |
| 7 | // Timeout settings for leader key | 7 | // Timeout settings for leader key |
| 8 | #undef LEADER_TIMEOUT | 8 | #undef LEADER_TIMEOUT |
diff --git a/users/danielo515/process_records.c b/users/danielo515/process_records.c index b1a8b9255..22a46789a 100644 --- a/users/danielo515/process_records.c +++ b/users/danielo515/process_records.c | |||
| @@ -4,11 +4,11 @@ extern bool onMac; | |||
| 4 | // ======== INCREMENTAL MACROS STUFF ============= | 4 | // ======== INCREMENTAL MACROS STUFF ============= |
| 5 | #define MAX_INCREMENTAL_MACRO 20 | 5 | #define MAX_INCREMENTAL_MACRO 20 |
| 6 | #define TAP_ROTATION_TIMEOUT 400 | 6 | #define TAP_ROTATION_TIMEOUT 400 |
| 7 | uint16_t latest_kc = 0; | 7 | uint16_t latest_kc = 0; |
| 8 | uint16_t latest_rotation = 0; | 8 | uint16_t latest_rotation = 0; |
| 9 | int key_count = 0; | 9 | int key_count = 0; |
| 10 | 10 | ||
| 11 | const char incremental_macros[][MAX_INCREMENTAL_MACRO] = { "String1"SS_TAP(X_HOME)"X-", "String2"SS_TAP(X_HOME) }; | 11 | const char incremental_macros[][MAX_INCREMENTAL_MACRO] = {"String1" SS_TAP(X_HOME) "X-", "String2" SS_TAP(X_HOME)}; |
| 12 | 12 | ||
| 13 | bool process_incremental_macro(uint16_t kc) { | 13 | bool process_incremental_macro(uint16_t kc) { |
| 14 | if (kc < INC_MACROS_START || kc > INC_MACROS_END) { | 14 | if (kc < INC_MACROS_START || kc > INC_MACROS_END) { |
| @@ -44,124 +44,157 @@ void refresh_incremental_macros(uint16_t kc) { | |||
| 44 | } | 44 | } |
| 45 | // Send control or GUI depending if we are on windows or mac | 45 | // Send control or GUI depending if we are on windows or mac |
| 46 | bool CMD(uint16_t kc) { | 46 | bool CMD(uint16_t kc) { |
| 47 | if(onMac){ tap_code16(LGUI(kc)); } else { tap_code16(LCTL(kc)); } | 47 | if (onMac) { |
| 48 | tap_code16(LGUI(kc)); | ||
| 49 | } else { | ||
| 50 | tap_code16(LCTL(kc)); | ||
| 51 | } | ||
| 48 | return false; | 52 | return false; |
| 49 | } | 53 | } |
| 50 | 54 | ||
| 51 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 55 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 52 | bool pressed = record->event.pressed; | 56 | bool pressed = record->event.pressed; |
| 53 | if(pressed){ | 57 | if (pressed) { |
| 54 | refresh_incremental_macros(keycode); | 58 | refresh_incremental_macros(keycode); |
| 55 | if(process_incremental_macro(keycode)){ | 59 | if (process_incremental_macro(keycode)) { |
| 56 | return false; | 60 | return false; |
| 57 | } | 61 | } |
| 58 | switch (keycode) { | 62 | switch (keycode) { |
| 59 | case MAC_TGL: | 63 | case MAC_TGL: |
| 60 | onMac = !onMac; | 64 | onMac = !onMac; |
| 61 | onMac ? SEND_STRING("On mac") : SEND_STRING("Not on MAC"); | 65 | onMac ? SEND_STRING("On mac") : SEND_STRING("Not on MAC"); |
| 62 | return false; | 66 | return false; |
| 63 | } | 67 | } |
| 64 | } | 68 | } |
| 65 | 69 | ||
| 66 | switch (keycode) { | 70 | switch (keycode) { |
| 67 | case QWERTY: | 71 | case QWERTY: |
| 68 | if (record->event.pressed) { | 72 | if (record->event.pressed) { |
| 69 | #ifdef AUDIO_ENABLE | 73 | #ifdef AUDIO_ENABLE |
| 70 | PLAY_SONG(tone_qwerty); | 74 | PLAY_SONG(tone_qwerty); |
| 71 | #endif | 75 | #endif |
| 72 | layer_on(_QWERTY); | 76 | layer_on(_QWERTY); |
| 73 | } | 77 | } |
| 74 | return false; | 78 | return false; |
| 75 | case LOWER: | 79 | case LOWER: |
| 76 | if (record->event.pressed) { | 80 | if (record->event.pressed) { |
| 77 | layer_on(_LOWER); | 81 | layer_on(_LOWER); |
| 78 | } else { | 82 | } else { |
| 79 | layer_off(_LOWER); | 83 | layer_off(_LOWER); |
| 80 | } | 84 | } |
| 81 | return false; | 85 | return false; |
| 82 | case RAISE: | 86 | case RAISE: |
| 83 | if (record->event.pressed) { | 87 | if (record->event.pressed) { |
| 84 | layer_on(_RAISE); | 88 | layer_on(_RAISE); |
| 85 | } else { | 89 | } else { |
| 86 | layer_off(_RAISE); | 90 | layer_off(_RAISE); |
| 87 | } | 91 | } |
| 88 | return false; | 92 | return false; |
| 89 | case ADJUST: | 93 | case ADJUST: |
| 90 | if (record->event.pressed) { | 94 | if (record->event.pressed) { |
| 91 | layer_on(_ADJUST); | 95 | layer_on(_ADJUST); |
| 92 | } else { | 96 | } else { |
| 93 | layer_off(_ADJUST); | 97 | layer_off(_ADJUST); |
| 94 | } | 98 | } |
| 95 | return false; | 99 | return false; |
| 96 | // == Macros START === | 100 | // == Macros START === |
| 97 | case IARROW: if (record->event.pressed) SEND_STRING("<-"); return false; | 101 | case IARROW: |
| 98 | case ARROW: if (record->event.pressed) SEND_STRING("->"); return false; | 102 | if (record->event.pressed) SEND_STRING("<-"); |
| 99 | case F_ARROW: if (record->event.pressed) SEND_STRING("=>"); return false; | 103 | return false; |
| 100 | case GREP: if (record->event.pressed) SEND_STRING(" | grep "); return false; | 104 | case ARROW: |
| 101 | case CLN_EQ: if (record->event.pressed) SEND_STRING(":="); return false; | 105 | if (record->event.pressed) SEND_STRING("->"); |
| 102 | // == Macros END === | 106 | return false; |
| 103 | // == Multi Os START === | 107 | case F_ARROW: |
| 104 | case KC_HOME:// make the home behave the same on OSX | 108 | if (record->event.pressed) SEND_STRING("=>"); |
| 105 | if (record->event.pressed && onMac) { | 109 | return false; |
| 106 | SEND_STRING(SS_LCTRL("a")); | 110 | case GREP: |
| 107 | return false; | 111 | if (record->event.pressed) SEND_STRING(" | grep "); |
| 108 | } | 112 | return false; |
| 109 | case KC_END:// make the end behave the same on OSX | 113 | case CLN_EQ: |
| 110 | if (record->event.pressed && onMac) { | 114 | if (record->event.pressed) SEND_STRING(":="); |
| 111 | tap_code16(C(KC_E)); | 115 | return false; |
| 112 | return false; | 116 | // == Macros END === |
| 113 | } | 117 | // == Multi Os START === |
| 114 | case AC_A:// Accent á | 118 | case KC_HOME: // make the home behave the same on OSX |
| 115 | if (record->event.pressed) SEND_STRING(SS_LALT("e") "a"); return false; | 119 | if (record->event.pressed && onMac) { |
| 116 | case AC_E:// Accent é | 120 | SEND_STRING(SS_LCTRL("a")); |
| 117 | if (record->event.pressed) SEND_STRING(SS_LALT("e") "e"); return false; | 121 | return false; |
| 118 | case AC_I:// Accent à | 122 | } |
| 119 | if (record->event.pressed) SEND_STRING(SS_LALT("e") "i"); return false; | 123 | case KC_END: // make the end behave the same on OSX |
| 120 | case AC_O:// Accent ó | 124 | if (record->event.pressed && onMac) { |
| 121 | if (record->event.pressed) SEND_STRING(SS_LALT("e") "o"); return false; | 125 | tap_code16(C(KC_E)); |
| 122 | case CUT: if (record->event.pressed) return CMD(KC_X); | 126 | return false; |
| 123 | case COPY: | 127 | } |
| 124 | if (record->event.pressed) { | 128 | case AC_A: // Accent á |
| 125 | onMac ? SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTRL("c")); | 129 | if (record->event.pressed) SEND_STRING(SS_LALT("e") "a"); |
| 126 | } | 130 | return false; |
| 127 | return false; | 131 | case AC_E: // Accent é |
| 128 | case PASTE: | 132 | if (record->event.pressed) SEND_STRING(SS_LALT("e") "e"); |
| 129 | if (record->event.pressed) { | 133 | return false; |
| 130 | onMac ? SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTRL("v")); | 134 | case AC_I: // Accent à |
| 131 | } | 135 | if (record->event.pressed) SEND_STRING(SS_LALT("e") "i"); |
| 132 | return false; | 136 | return false; |
| 133 | case SAVE: | 137 | case AC_O: // Accent ó |
| 134 | if (record->event.pressed) { | 138 | if (record->event.pressed) SEND_STRING(SS_LALT("e") "o"); |
| 135 | onMac ? SEND_STRING(SS_LGUI("s")) : SEND_STRING(SS_LCTRL("s")); | 139 | return false; |
| 136 | } | 140 | case CUT: |
| 137 | return false; | 141 | if (record->event.pressed) return CMD(KC_X); |
| 138 | case UNDO: | 142 | case COPY: |
| 139 | if (record->event.pressed) { | 143 | if (record->event.pressed) { |
| 140 | onMac ? SEND_STRING(SS_LGUI("z")) : SEND_STRING(SS_LCTRL("z")); | 144 | onMac ? SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTRL("c")); |
| 141 | } | 145 | } |
| 142 | return false; | 146 | return false; |
| 143 | case FIND: | 147 | case PASTE: |
| 144 | if (record->event.pressed) { | 148 | if (record->event.pressed) { |
| 145 | onMac ? SEND_STRING(SS_LGUI("f")) : SEND_STRING(SS_LCTRL("f")); | 149 | onMac ? SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTRL("v")); |
| 146 | } | 150 | } |
| 147 | return false; | 151 | return false; |
| 148 | case CHG_LAYOUT: | 152 | case SAVE: |
| 149 | if (record->event.pressed) { | 153 | if (record->event.pressed) { |
| 150 | onMac ? SEND_STRING(SS_LCTRL(" ")) : SEND_STRING(SS_LCTRL("f")); | 154 | onMac ? SEND_STRING(SS_LGUI("s")) : SEND_STRING(SS_LCTRL("s")); |
| 151 | } | 155 | } |
| 152 | return false; | 156 | return false; |
| 153 | // == Multi Os END === | 157 | case UNDO: |
| 158 | if (record->event.pressed) { | ||
| 159 | onMac ? SEND_STRING(SS_LGUI("z")) : SEND_STRING(SS_LCTRL("z")); | ||
| 160 | } | ||
| 161 | return false; | ||
| 162 | case REDO: | ||
| 163 | if (record->event.pressed) { | ||
| 164 | onMac ? SEND_STRING(SS_LGUI(SS_LSFT("z"))) : SEND_STRING(SS_LCTRL("y")); | ||
| 165 | } | ||
| 166 | return false; | ||
| 167 | case FIND: | ||
| 168 | if (record->event.pressed) { | ||
| 169 | onMac ? SEND_STRING(SS_LGUI("f")) : SEND_STRING(SS_LCTRL("f")); | ||
| 170 | } | ||
| 171 | return false; | ||
| 172 | case WIN_TO_RIGHT: | ||
| 173 | if (record->event.pressed) { | ||
| 174 | onMac ? tap_code16(SGUI(A(KC_RIGHT))) : tap_code16(G(KC_RIGHT)); | ||
| 175 | } | ||
| 176 | return false; | ||
| 177 | case WIN_TO_LEFT: | ||
| 178 | if (record->event.pressed) { | ||
| 179 | onMac ? tap_code16(SGUI(A(KC_LEFT))) : tap_code16(G(KC_LEFT)); | ||
| 180 | } | ||
| 181 | return false; | ||
| 182 | case CHG_LAYOUT: | ||
| 183 | if (record->event.pressed) { | ||
| 184 | onMac ? SEND_STRING(SS_LCTRL(" ")) : SEND_STRING(SS_LCTRL("f")); | ||
| 185 | } | ||
| 186 | return false; | ||
| 187 | // == Multi Os END === | ||
| 154 | #ifdef RGBLIGHT_ENABLE | 188 | #ifdef RGBLIGHT_ENABLE |
| 155 | case RGB_SLD: | 189 | case RGB_SLD: |
| 156 | if (record->event.pressed) { rgblight_mode(1); } | 190 | if (record->event.pressed) { |
| 157 | return false; | 191 | rgblight_mode(1); |
| 158 | break; | 192 | } |
| 159 | //First time alt + tab, and alt stays sticky. Next press we just send tab. Any other key releases the alt | 193 | return false; |
| 194 | break; | ||
| 195 | // First time alt + tab, and alt stays sticky. Next press we just send tab. Any other key releases the alt | ||
| 160 | #endif | 196 | #endif |
| 161 | } | 197 | } |
| 162 | // =============== ALT_TAB single key handling | 198 | // =============== ALT_TAB single key handling |
| 163 | return process_alt_tab(keycode, record); | 199 | return process_alt_tab(keycode, record); |
| 164 | }; | 200 | }; |
| 165 | |||
| 166 | |||
| 167 | |||
diff --git a/users/danielo515/process_records.h b/users/danielo515/process_records.h index c994511a5..0efd690d4 100644 --- a/users/danielo515/process_records.h +++ b/users/danielo515/process_records.h | |||
| @@ -1,35 +1,36 @@ | |||
| 1 | #pragma once | 1 | #pragma once |
| 2 | #include "quantum.h" | 2 | #include "quantum.h" |
| 3 | 3 | ||
| 4 | enum custom_keycodes | 4 | enum custom_keycodes { |
| 5 | { | 5 | RGB_SLD = SAFE_RANGE, |
| 6 | EPRM = SAFE_RANGE, | ||
| 7 | RGB_SLD, | ||
| 8 | ALT_TAB, | 6 | ALT_TAB, |
| 9 | QWERTY, | 7 | QWERTY, |
| 10 | SYM, | 8 | SYM, |
| 11 | NAV, | 9 | NAV, |
| 12 | ADJUST, | 10 | ADJUST, |
| 13 | // Macros | 11 | // Macros |
| 14 | ARROW, | 12 | ARROW, |
| 15 | IARROW, | 13 | IARROW, |
| 16 | CLN_EQ, | 14 | CLN_EQ, |
| 17 | F_ARROW, | 15 | F_ARROW, |
| 18 | GREP, | 16 | GREP, |
| 19 | // Accented characters | 17 | // Accented characters |
| 20 | AC_A, | 18 | AC_A, |
| 21 | AC_E, | 19 | AC_E, |
| 22 | AC_I, | 20 | AC_I, |
| 23 | AC_O, | 21 | AC_O, |
| 24 | // Custom multi-os key-codes | 22 | // Custom multi-os key-codes |
| 25 | CUT, | 23 | CUT, |
| 26 | COPY, | 24 | COPY, |
| 27 | PASTE, | 25 | PASTE, |
| 28 | SAVE, | 26 | SAVE, |
| 29 | UNDO, | 27 | UNDO, |
| 28 | REDO, | ||
| 30 | CHG_LAYOUT, | 29 | CHG_LAYOUT, |
| 31 | FIND, | 30 | FIND, |
| 32 | // OTHER OLD STUFF | 31 | WIN_TO_LEFT, |
| 32 | WIN_TO_RIGHT, | ||
| 33 | // OTHER OLD STUFF | ||
| 33 | LOWER, | 34 | LOWER, |
| 34 | RAISE, | 35 | RAISE, |
| 35 | MAC_TGL, | 36 | MAC_TGL, |
| @@ -57,48 +58,49 @@ enum layers { | |||
| 57 | }; | 58 | }; |
| 58 | 59 | ||
| 59 | //===== Function letters | 60 | //===== Function letters |
| 60 | # define FN_F LT(_F,KC_F) | 61 | #define FN_F LT(_F, KC_F) |
| 61 | # define FN_D LT(_D,KC_D) | 62 | #define FN_D LT(_D, KC_D) |
| 62 | # define FN_S LT(_S,KC_S) | 63 | #define FN_S LT(_S, KC_S) |
| 63 | # define FN_A LT(_A,KC_A) | 64 | #define FN_A LT(_A, KC_A) |
| 64 | # define FN_K LT(_K,KC_K) | 65 | #define FN_K LT(_K, KC_K) |
| 65 | # define FN_J LT(_J,KC_J) | 66 | #define FN_J LT(_J, KC_J) |
| 66 | # define KC_FN_D FN_D | 67 | #define KC_FN_D FN_D |
| 67 | # define KC_FN_S FN_S | 68 | #define KC_FN_S FN_S |
| 68 | # define KC_FN_F FN_F | 69 | #define KC_FN_F FN_F |
| 69 | 70 | ||
| 70 | # define KC_MACROS OSL(_MACROS) | 71 | #define KC_MACROS OSL(_MACROS) |
| 71 | 72 | ||
| 72 | 73 | #define KC_E_COLN LSFT(KC_DOT) | |
| 73 | # define KC_E_COLN LSFT(KC_DOT) | 74 | #define KC_E_EQL ES_EQL |
| 74 | # define KC_E_EQL ES_EQL | 75 | #define KC_GUI OSM(MOD_RGUI) |
| 75 | # define KC_GUI OSM(MOD_RGUI) | 76 | #define KC_R_NUB S(KC_NUBS) |
| 76 | # define KC_R_NUB S(KC_NUBS) | 77 | #define KC_E_LT KC_NUBS |
| 77 | # define KC_E_LT KC_NUBS | 78 | #define KC_E_GT S(KC_NUBS) |
| 78 | # define KC_E_GT S(KC_NUBS) | 79 | #define KC_E_TILD ES_TILD |
| 79 | # define KC_E_TILD ES_TILD | 80 | #define KC_E_MINS ES_MINS |
| 80 | # define KC_E_MINS ES_MINS | 81 | #define KC_E_OVRR ES_OVRR |
| 81 | # define KC_E_OVRR ES_OVRR | 82 | #define KC_E_APOS ES_APOS |
| 82 | # define KC_E_APOS ES_APOS | 83 | #define KC_E_IEXL ES_IEXL |
| 83 | # define KC_E_IEXL ES_IEXL | ||
| 84 | //========== Short hand for complex key combinations | 84 | //========== Short hand for complex key combinations |
| 85 | # define WIN_LEFT_HALF LALT(LGUI(KC_LEFT)) | 85 | #define WIN_LEFT_HALF LALT(LGUI(KC_LEFT)) |
| 86 | # define WIN_RIGHT_HALF LALT(LGUI(KC_RIGHT)) | 86 | #define WIN_RIGHT_HALF LALT(LGUI(KC_RIGHT)) |
| 87 | # define WIN_TO_LEFT LALT(LSFT( LGUI(KC_LEFT) )) | 87 | #define ALL_WIN LCTL(KC_DOWN) |
| 88 | # define WIN_TO_RIGHT LALT(LSFT( LGUI(KC_RIGHT) )) | 88 | #define EXPOSE LGUI(KC_DOWN) |
| 89 | # define ALL_WIN LCTL(KC_DOWN) | ||
| 90 | # define EXPOSE LGUI(KC_DOWN) | ||
| 91 | // ========== Modifiers!! | 89 | // ========== Modifiers!! |
| 92 | # define SHIFT OSM(MOD_LSFT) | 90 | #define SHIFT OSM(MOD_LSFT) |
| 93 | //=============== tap for key hold for mod | 91 | //=============== tap for key hold for mod |
| 94 | # define HYPR_H HYPR_T(KC_H) | 92 | #define HYPR_H HYPR_T(KC_H) |
| 95 | # define CTL_K RCTL_T(KC_K) | 93 | #define CTL_K RCTL_T(KC_K) |
| 96 | # define ALT_J ALT_T(KC_J) | 94 | #define ALT_J ALT_T(KC_J) |
| 97 | # define SFT_MINS LSFT_T(KC_MINS) // tap - hold shift | 95 | #define SFT_MINS LSFT_T(KC_MINS) // tap - hold shift |
| 98 | # define CMD_QUOT GUI_T(KC_QUOTE) // tap ' hold cmd | 96 | #define CMD_MINS GUI_T(KC_MINS) // tap - hold cmd |
| 97 | #define CMD_QUOT GUI_T(KC_QUOTE) // tap ' hold cmd | ||
| 98 | #define SFT_QUOT LSFT_T(KC_QUOTE) // tap ' hold shift | ||
| 99 | //=============== Movement modified | 99 | //=============== Movement modified |
| 100 | # define CTL_LEFT LCTL(KC_LEFT) | 100 | #define CTL_LEFT LCTL(KC_LEFT) |
| 101 | # define CTL_RIGHT LCTL(KC_RIGHT) | 101 | #define CTL_RIGHT LCTL(KC_RIGHT) |
| 102 | 102 | ||
| 103 | # define SFT_LEFT LSFT(KC_LEFT) | 103 | #define SFT_LEFT LSFT(KC_LEFT) |
| 104 | # define SFT_RIGHT LSFT(KC_RIGHT) | 104 | #define SFT_RIGHT LSFT(KC_RIGHT) |
| 105 | #define SFT_LEFT_END LGUI(LSFT(KC_LEFT)) | ||
| 106 | #define SFT_RIGHT_END LGUI(LSFT(KC_RIGHT)) | ||
diff --git a/users/stanrc85/rgblight_layers.c b/users/stanrc85/rgblight_layers.c index 780555e7b..1fbd54149 100644 --- a/users/stanrc85/rgblight_layers.c +++ b/users/stanrc85/rgblight_layers.c | |||
| @@ -3,44 +3,7 @@ | |||
| 3 | static uint8_t middle = 0; | 3 | static uint8_t middle = 0; |
| 4 | static uint8_t bottom = 0; | 4 | static uint8_t bottom = 0; |
| 5 | 5 | ||
| 6 | const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
| 7 | {3, 2, HSV_RED}, | ||
| 8 | {10, 2, HSV_RED} | ||
| 9 | ); | ||
| 10 | |||
| 11 | const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
| 12 | {3, 1, HSV_GREEN}, | ||
| 13 | {11, 1, HSV_GREEN} | ||
| 14 | ); | ||
| 15 | |||
| 16 | const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
| 17 | {3, 1, HSV_BLUE}, | ||
| 18 | {11, 1, HSV_BLUE} | ||
| 19 | ); | ||
| 20 | |||
| 21 | const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
| 22 | {3, 1, HSV_WHITE}, | ||
| 23 | {11, 1, HSV_WHITE} | ||
| 24 | ); | ||
| 25 | |||
| 26 | // Now define the array of layers. Later layers take precedence | ||
| 27 | const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( | ||
| 28 | my_capslock_layer, | ||
| 29 | my_layer1_layer, | ||
| 30 | my_layer2_layer, | ||
| 31 | my_layer3_layer | ||
| 32 | ); | ||
| 33 | |||
| 34 | void keyboard_post_init_user(void) { | ||
| 35 | // Enable the LED layers | ||
| 36 | rgblight_layers = my_rgb_layers; | ||
| 37 | } | ||
| 38 | |||
| 39 | layer_state_t layer_state_set_user(layer_state_t state) { | 6 | layer_state_t layer_state_set_user(layer_state_t state) { |
| 40 | // Both layers will light up if both kb layers are active | ||
| 41 | rgblight_set_layer_state(1, layer_state_cmp(state, 1)); | ||
| 42 | rgblight_set_layer_state(2, layer_state_cmp(state, 2)); | ||
| 43 | rgblight_set_layer_state(3, layer_state_cmp(state, 3)); | ||
| 44 | middle = bottom = 0; | 7 | middle = bottom = 0; |
| 45 | switch (get_highest_layer(state)) { | 8 | switch (get_highest_layer(state)) { |
| 46 | case _FN1_60: | 9 | case _FN1_60: |
| @@ -60,7 +23,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { | |||
| 60 | } | 23 | } |
| 61 | 24 | ||
| 62 | bool led_update_user(led_t led_state) { | 25 | bool led_update_user(led_t led_state) { |
| 63 | //rgblight_set_layer_state(0, led_state.caps_lock); | ||
| 64 | writePin(INDICATOR_PIN_0, !led_state.caps_lock); | 26 | writePin(INDICATOR_PIN_0, !led_state.caps_lock); |
| 65 | writePin(INDICATOR_PIN_1, !middle); | 27 | writePin(INDICATOR_PIN_1, !middle); |
| 66 | writePin(INDICATOR_PIN_2, !bottom); | 28 | writePin(INDICATOR_PIN_2, !bottom); |
diff --git a/users/stanrc85/rules.mk b/users/stanrc85/rules.mk index 5c572c0af..54f0f7626 100644 --- a/users/stanrc85/rules.mk +++ b/users/stanrc85/rules.mk | |||
| @@ -10,24 +10,10 @@ NKRO_ENABLE = no | |||
| 10 | 10 | ||
| 11 | SRC += stanrc85.c | 11 | SRC += stanrc85.c |
| 12 | 12 | ||
| 13 | ifeq ($(strip $(KEYBOARD)), 1upkeyboards/1up60hse) | ||
| 14 | SRC += layer_rgb.c | ||
| 15 | VIA_ENABLE = yes | ||
| 16 | LTO_ENABLE = yes | ||
| 17 | endif | ||
| 18 | ifeq ($(strip $(KEYBOARD)), dz60) | ||
| 19 | SRC += layer_rgb.c | ||
| 20 | VIA_ENABLE = yes | ||
| 21 | LTO_ENABLE = yes | ||
| 22 | endif | ||
| 23 | ifeq ($(strip $(KEYBOARD)), projectkb/alice/rev1) | ||
| 24 | SRC += rgblight_layers.c | ||
| 25 | VIA_ENABLE = yes | ||
| 26 | LTO_ENABLE = no | ||
| 27 | VELOCIKEY_ENABLE=yes | ||
| 28 | endif | ||
| 29 | ifeq ($(strip $(KEYBOARD)), projectkb/alice/rev2) | 13 | ifeq ($(strip $(KEYBOARD)), projectkb/alice/rev2) |
| 30 | SRC += rgblight_layers.c | 14 | SRC += rgblight_layers.c |
| 15 | SRC += startup_fanfare.c | ||
| 16 | OPT_DEFS += -DHAS_INDICATORS | ||
| 31 | VIA_ENABLE = yes | 17 | VIA_ENABLE = yes |
| 32 | LTO_ENABLE = no | 18 | LTO_ENABLE = no |
| 33 | VELOCIKEY_ENABLE=yes | 19 | VELOCIKEY_ENABLE=yes |
diff --git a/users/stanrc85/stanrc85.c b/users/stanrc85/stanrc85.c index c1aaad1a1..2dbd41974 100644 --- a/users/stanrc85/stanrc85.c +++ b/users/stanrc85/stanrc85.c | |||
| @@ -44,8 +44,42 @@ void ctl_copy_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
| 44 | } | 44 | } |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | #if defined(HAS_INDICATORS) | ||
| 48 | static uint8_t led_user = 0; | ||
| 49 | #endif | ||
| 50 | |||
| 51 | void lock_unlock (qk_tap_dance_state_t *state, void *user_data) { | ||
| 52 | td_state = cur_dance(state); | ||
| 53 | switch (td_state) { | ||
| 54 | case SINGLE_TAP: // Ctl + Alt + Del to unlock workstation | ||
| 55 | tap_code16(KC_CAD); | ||
| 56 | #if defined(HAS_INDICATORS) | ||
| 57 | led_user = 0; | ||
| 58 | writePin(INDICATOR_PIN_0, !led_user); | ||
| 59 | wait_ms(200); | ||
| 60 | writePin(INDICATOR_PIN_1, !led_user); | ||
| 61 | wait_ms(200); | ||
| 62 | writePin(INDICATOR_PIN_2, !led_user); | ||
| 63 | #endif | ||
| 64 | break; | ||
| 65 | case SINGLE_HOLD: | ||
| 66 | break; | ||
| 67 | case DOUBLE_TAP: //Lock workstation | ||
| 68 | tap_code16(KC_LOCK); | ||
| 69 | #if defined(HAS_INDICATORS) | ||
| 70 | led_user = 1; | ||
| 71 | writePin(INDICATOR_PIN_2, !led_user); | ||
| 72 | wait_ms(200); | ||
| 73 | writePin(INDICATOR_PIN_1, !led_user); | ||
| 74 | wait_ms(200); | ||
| 75 | writePin(INDICATOR_PIN_0, !led_user); | ||
| 76 | #endif | ||
| 77 | break; | ||
| 78 | } | ||
| 79 | } | ||
| 80 | |||
| 47 | qk_tap_dance_action_t tap_dance_actions[] = { | 81 | qk_tap_dance_action_t tap_dance_actions[] = { |
| 48 | [TD_WIN] = ACTION_TAP_DANCE_DOUBLE(KC_CAD, KC_LOCK), | 82 | [TD_WIN] = ACTION_TAP_DANCE_FN(lock_unlock), |
| 49 | [TD_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_GRV), | 83 | [TD_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_GRV), |
| 50 | [TD_RCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_copy_finished, ctl_copy_reset) | 84 | [TD_RCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_copy_finished, ctl_copy_reset) |
| 51 | }; | 85 | }; |
diff --git a/users/stanrc85/startup_fanfare.c b/users/stanrc85/startup_fanfare.c new file mode 100644 index 000000000..507d9e389 --- /dev/null +++ b/users/stanrc85/startup_fanfare.c | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | #include "stanrc85.h" | ||
| 2 | |||
| 3 | static uint8_t top = 0; | ||
| 4 | static uint8_t middle = 0; | ||
| 5 | static uint8_t bottom = 0; | ||
| 6 | |||
| 7 | static bool is_enabled = true; | ||
| 8 | static bool is_rgblight_startup = true; | ||
| 9 | static uint16_t rgblight_startup_loop_timer; | ||
| 10 | |||
| 11 | void matrix_scan_user(void) { | ||
| 12 | // Boot up "fanfare" | ||
| 13 | if (is_rgblight_startup && is_keyboard_master()) { | ||
| 14 | if (timer_elapsed(rgblight_startup_loop_timer) > 10) { | ||
| 15 | static uint8_t counter; | ||
| 16 | counter++; | ||
| 17 | if (counter == 1) { | ||
| 18 | top = 1; | ||
| 19 | writePin(INDICATOR_PIN_0, !top); | ||
| 20 | wait_ms(200); | ||
| 21 | top = 0; | ||
| 22 | writePin(INDICATOR_PIN_0, !top); | ||
| 23 | } | ||
| 24 | if (counter == 2) { | ||
| 25 | middle = 1; | ||
| 26 | writePin(INDICATOR_PIN_1, !middle); | ||
| 27 | wait_ms(200); | ||
| 28 | middle = 0; | ||
| 29 | writePin(INDICATOR_PIN_1, !middle); | ||
| 30 | } | ||
| 31 | if (counter == 3) { | ||
| 32 | bottom = 1; | ||
| 33 | writePin(INDICATOR_PIN_2, !bottom); | ||
| 34 | wait_ms(200); | ||
| 35 | bottom = 0; | ||
| 36 | writePin(INDICATOR_PIN_2, !bottom); | ||
| 37 | } | ||
| 38 | if (counter == 4) { | ||
| 39 | is_enabled = is_rgblight_startup = false; | ||
| 40 | } | ||
| 41 | } | ||
| 42 | } | ||
| 43 | } | ||
