forked from mirror/qmk_firmware
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1778858e24 | ||
|
|
19006c9753 | ||
|
|
2e08c72e95 | ||
|
|
57f408cff5 | ||
|
|
c4d778a302 | ||
|
|
82dcb17338 | ||
|
|
a8c230743a | ||
|
|
3c84157d83 | ||
|
|
4989af356e | ||
|
|
a2fa12d631 | ||
|
|
412c6bf447 | ||
|
|
9aa953ecb4 | ||
|
|
9fddb1b5fa | ||
|
|
07a817d3e5 | ||
|
|
56beaf7d3f | ||
|
|
3f11f41ec7 | ||
|
|
4e02253aaf | ||
|
|
2773082d9d | ||
|
|
19b70b2737 | ||
|
|
61b64bb82a | ||
|
|
f11437aef3 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -73,3 +73,6 @@ __pycache__
|
||||
|
||||
# prerequisites for updating ChibiOS
|
||||
/util/fmpp*
|
||||
|
||||
# Allow to exist but don't include it in the repo
|
||||
user_song_list.h
|
||||
|
||||
@@ -319,7 +319,7 @@ This runs code every time that the layers get changed. This can be useful for l
|
||||
|
||||
### Example `layer_state_set_*` Implementation
|
||||
|
||||
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example
|
||||
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example.
|
||||
|
||||
```c
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
@@ -343,6 +343,11 @@ layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
return state;
|
||||
}
|
||||
```
|
||||
|
||||
Use the `IS_LAYER_ON_STATE(state, layer)` and `IS_LAYER_OFF_STATE(state, layer)` macros to check the status of a particular layer.
|
||||
|
||||
Outside of `layer_state_set_*` functions, you can use the `IS_LAYER_ON(layer)` and `IS_LAYER_OFF(layer)` macros to check global layer state.
|
||||
|
||||
### `layer_state_set_*` Function Documentation
|
||||
|
||||
* Keyboard/Revision: `layer_state_t layer_state_set_kb(layer_state_t state)`
|
||||
|
||||
@@ -23,7 +23,7 @@ Zadig will automatically detect the bootloader device. You may sometimes need to
|
||||
|
||||
!> If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is probably not in bootloader mode. The arrow will be colored orange and you will be asked to confirm modifying a system driver. **Do not** proceed if this is the case!
|
||||
|
||||
If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. For flashing a USBaspLoader device via command line with msys2, the `libusbk` driver is recommended, otherwise `libusb-win32` will work fine if you are using QMK Toolbox for flashing.
|
||||
If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. USBAspLoader devices must use the `libusbK` driver.
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -74,10 +74,9 @@ There are a number of functions (and variables) related to how you can use or ma
|
||||
| [`update_tri_layer(x, y, z)`](ref_functions.md#update_tri_layerx-y-z) | Checks if layers `x` and `y` are both on, and sets `z` based on that (on if both on, otherwise off). |
|
||||
| [`update_tri_layer_state(state, x, y, z)`](ref_functions.md#update_tri_layer_statestate-x-y-z) | Does the same as `update_tri_layer(x, y, z)`, but from `layer_state_set_*` functions. |
|
||||
|
||||
In addition to the functions that you can call, there are a number of callback functions that get called every time the layer changes. This passes the layer state to the function, where it can be read or modified.
|
||||
|
||||
In additional to the functions that you can call, there are a number of callback functions that get called every time the layer changes. This passed the layer state to the function, which can be read or modified.
|
||||
|
||||
|Callbacks |Description |
|
||||
|Callback |Description |
|
||||
|-----------------------------------------------------|----------------------------------------------------------------------------------------|
|
||||
| `layer_state_set_kb(layer_state_t state)` | Callback for layer functions, for keyboard. |
|
||||
| `layer_state_set_user(layer_state_t state)` | Callback for layer functions, for users. |
|
||||
@@ -86,9 +85,9 @@ In additional to the functions that you can call, there are a number of callback
|
||||
|
||||
?> For additional details on how you can use these callbacks, check out the [Layer Change Code](custom_quantum_functions.md#layer-change-code) document.
|
||||
|
||||
|Check functions |Description |
|
||||
|-------------------------------------------|------------------------------------------------------------------------------|
|
||||
| `layer_state_cmp(cmp_layer_state, layer)` | This checks the `cmp_layer_state` to see if the specific `layer` is enabled. This is meant for use with the layer callbacks. |
|
||||
| `layer_state_is(layer)` | This checks the layer state to see if the specific `layer` is enabled. (calls `layer_state_cmp` for the global layer state). |
|
||||
It is also possible to check the state of a particular layer using the following functions and macros.
|
||||
|
||||
!> There is `IS_LAYER_ON(layer)` as well, however the `layer_state_cmp` function has some additional handling to ensure that on layer 0 that it returns the correct value. Otherwise, if you check to see if layer 0 is on, you may get an incorrect value returned.
|
||||
|Function |Description |Aliases
|
||||
|---------------------------------|-------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
|
||||
| `layer_state_is(layer)` | Checks if the specified `layer` is enabled globally. | `IS_LAYER_ON(layer)`, `IS_LAYER_OFF(layer)` |
|
||||
| `layer_state_cmp(state, layer)` | Checks `state` to see if the specified `layer` is enabled. Intended for use in layer callbacks. | `IS_LAYER_ON_STATE(state, layer)`, `IS_LAYER_OFF_STATE(state, layer)` |
|
||||
|
||||
@@ -39,10 +39,11 @@ In your keymap you can use the following keycodes to map key presses to mouse ac
|
||||
|
||||
## Configuring mouse keys
|
||||
|
||||
Mouse keys supports two different modes to move the cursor:
|
||||
Mouse keys supports three different modes to move the cursor:
|
||||
|
||||
* **Accelerated (default):** Holding movement keys accelerates the cursor until it reaches its maximum speed.
|
||||
* **Constant:** Holding movement keys moves the cursor at constant speeds.
|
||||
* **Combined:** Holding movement keys accelerates the cursor until it reaches its maximum speed, but holding acceleration and movement keys simultaneously moves the cursor at constant speeds.
|
||||
|
||||
The same principle applies to scrolling.
|
||||
|
||||
@@ -120,3 +121,22 @@ Use the following settings if you want to adjust cursor movement or scrolling:
|
||||
|`MK_W_INTERVAL_1` |120 |Time between scroll steps (`KC_ACL1`) |
|
||||
|`MK_W_OFFSET_2` |1 |Scroll steps per scroll action (`KC_ACL2`) |
|
||||
|`MK_W_INTERVAL_2` |20 |Time between scroll steps (`KC_ACL2`) |
|
||||
|
||||
### Combined mode
|
||||
|
||||
This mode functions like **Accelerated** mode, however, you can hold `KC_ACL0`, `KC_ACL1` and `KC_ACL2`
|
||||
to momentarily (while held) set the cursor and scroll speeds to constant speeds. When no acceleration
|
||||
keys are held, this mode is identical to **Accelerated** mode, and can be modified using all of the
|
||||
relevant settings.
|
||||
|
||||
* **KC_ACL0:** This acceleration sets your cursor to the slowest possible speed. This is useful for very
|
||||
small and detailed movements of the cursor.
|
||||
* **KC_ACL1:** This acceleration sets your cursor to half the maximum (user defined) speed.
|
||||
* **KC_ACL2:** This acceleration sets your cursor to the maximum (computer defined) speed. This is
|
||||
useful for moving the cursor large distances without much accuracy.
|
||||
|
||||
To use constant speed mode, you must at least define `MK_COMBINED` in your keymap’s `config.h` file:
|
||||
|
||||
```c
|
||||
#define MK_COMBINED
|
||||
```
|
||||
|
||||
@@ -141,7 +141,9 @@ To do this manually:
|
||||
|
||||
?> It's possible to use other bootloaders here in the same way, but __you need a bootloader__, otherwise you'll have to use ISP again to write new firmware to your keyboard.
|
||||
|
||||
To do this the easy way, you can flash the board using the `:production` target when compiling. This compiles the firmware, then compiles the QMK DFU bootloader, and then creates a combined image. Once this is done, you'll see three files:
|
||||
#### Create QMK DFU Bootloader and Production images
|
||||
|
||||
You can create the firmware, the QMK DFU Bootloader and the production firmware images for the board using the `:production` target when compiling. Once this is done, you'll see three files:
|
||||
* `<keyboard>_<keymap>.hex`
|
||||
* `<keyboard>_<keymap>_bootloader.hex`
|
||||
* `<keyboard>_<keymap>_production.hex`
|
||||
@@ -236,12 +238,12 @@ For Caterina on the `atmega32u4`, these are the fuse settings that you want:
|
||||
| Fuse | Setting|
|
||||
|----------|--------|
|
||||
| Low | `0xFF` |
|
||||
| High | `0xD9` |
|
||||
| Extended | `0xC3` |
|
||||
| High | `0xD8` |
|
||||
| Extended | `0xCB` |
|
||||
|
||||
To set this add `-U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xC3:m` to your command. So the final command should look something like:
|
||||
To set this add `-U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m` to your command. So the final command should look something like:
|
||||
|
||||
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xC3:m
|
||||
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m
|
||||
|
||||
|
||||
If you are using a different controller or want different configuration, you can use [this AVR Fuse Calculator](http://www.engbedded.com/fusecalc/) to find a better value for you.
|
||||
|
||||
47
docs/ja/feature_debounce_type.md
Normal file
47
docs/ja/feature_debounce_type.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# デバウンスアルゴリズム
|
||||
|
||||
<!---
|
||||
original document: 0.9.19:docs/feature_debounce_type.md
|
||||
git diff 0.9.19 HEAD -- docs/feature_debounce_type.md | cat
|
||||
-->
|
||||
|
||||
QMK はデバウンス API を介して複数のデバウンスアルゴリズムをサポートします。
|
||||
|
||||
どのデバウンスメソッドが呼ばれるかのロジックは下記のとおりです。rules.mk で設定された様々な定義をチェックします。
|
||||
|
||||
```
|
||||
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
|
||||
DEBOUNCE_TYPE?= sym_g
|
||||
ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
|
||||
QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
|
||||
endif
|
||||
```
|
||||
|
||||
# デバウンスの選択
|
||||
|
||||
| DEBOUNCE_TYPE | 説明 | 他に必要なもの |
|
||||
| ------------- | --------------------------------------------------- | ----------------------------- |
|
||||
| 未定義 | デフォルトのアルゴリズム、現在のところ sym_g を使います | 無し |
|
||||
| custom | 独自のデバウンスコードを使います | ```SRC += debounce.c``` で独自の debounce.c を追加し、必要な関数を実装します |
|
||||
| anything_else | quantum/debounce/* から他のアルゴリズムを使います | 無し |
|
||||
|
||||
**分割キーボードについて**:
|
||||
デバウンスコードは分割キーボードと互換性があります。
|
||||
|
||||
# 独自のデバウンスコードの使用
|
||||
* ```DEBOUNCE_TYPE = custom``` を設定します。
|
||||
* ```SRC += debounce.c``` を追加します。
|
||||
* 独自の ```debounce.c``` を追加します。例については、```quantum/debounce``` にある現在の実装をみてください。
|
||||
* 毎回のマトリクススキャンの結果はその度デバウンスによって処理されます。
|
||||
* MATRIX_ROWS ではなく num_rows を使って、分割キーボードが正しくサポートされるようにします。
|
||||
|
||||
# インクルードされているデバウンスメソッド間での切り替え
|
||||
独自の debounce.c をインクルードすることで独自のコードを使うか、またはインクルードされている他のコードに切り替えることができます。
|
||||
含まれるデバウンスメソッドは以下の通りです:
|
||||
* eager_pr - 行ごとにデバウンスします。状態が変化すると、応答は即座に行われ、その後その行は ```DEBOUNCE``` ミリ秒の間入力されません。
|
||||
```NUM_KEYS``` の 8ビットカウンタの更新に高い計算コストがかかる、もしくは低スキャンレートのキーボード用で、各指は通常一度に1行しか叩かないようになっています。これは ErgoDox モデルに適しています; マトリックスは90度回転しているため、その「行」は実際には「列」であり、通常の使用では各指は一度に1つの「行」にしか当たりません。
|
||||
* eager_pk - キーごとにデバウンスします。状態が変化すると、応答は即座に行われ、その後そのキーは ```DEBOUNCE``` ミリ秒の間入力されません。
|
||||
* sym_g - キーボードごとにデバウンスします。状態が変化すると、グローバルタイマが設定されます。```DEBOUNCE``` ミリ秒の間何も変化がなければ、全ての入力の変更がプッシュされます。
|
||||
* sym_pk - キーごとにデバウンスします。状態が変化すると、キーごとのタイマーが設定されます。```DEBOUNCE``` ミリ秒の間そのキーに変化がなければ、キーの状態の変更がプッシュされます。
|
||||
|
||||
|
||||
16
keyboards/adelheid/adelheid.c
Normal file
16
keyboards/adelheid/adelheid.c
Normal file
@@ -0,0 +1,16 @@
|
||||
/* Copyright 2020 floookay
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "adelheid.h"
|
||||
45
keyboards/adelheid/adelheid.h
Normal file
45
keyboards/adelheid/adelheid.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2020 floookay
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
|
||||
\
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k2E, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3E, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k4E, \
|
||||
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4D, \
|
||||
k50, k52, k54, k55, k57, k59, k5C, k5D, k5E \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
|
||||
{ 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, KC_NO }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, KC_NO, k3E }, \
|
||||
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, KC_NO, k4D, k4E }, \
|
||||
{ k50, KC_NO, k52, KC_NO, k54, k55, KC_NO, k57, KC_NO, k59, KC_NO, KC_NO, k5C, k5D, k5E } \
|
||||
}
|
||||
208
keyboards/adelheid/config.h
Normal file
208
keyboards/adelheid/config.h
Normal file
@@ -0,0 +1,208 @@
|
||||
/*
|
||||
Copyright 2020 floookay
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xF100
|
||||
#define PRODUCT_ID 0xAD78
|
||||
#define DEVICE_VER 0x0002
|
||||
#define MANUFACTURER floookay
|
||||
#define PRODUCT adelheid
|
||||
#define DESCRIPTION 75% alice-like keyboard based on the arisu
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 7
|
||||
#define MATRIX_COLS 15
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { D0, F4, D1, D2, D3, D5, F7 }
|
||||
#define MATRIX_COL_PINS { F0, F1, E6, C7, F6, B6, D4, B1, B0, B7, B5, B4, D7, D6, B3 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define BACKLIGHT_PIN C6
|
||||
// #define BACKLIGHT_BREATHING
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
|
||||
// #define RGB_DI_PIN E2
|
||||
// #ifdef RGB_DI_PIN
|
||||
// #define RGBLED_NUM 16
|
||||
// #define RGBLIGHT_HUE_STEP 8
|
||||
// #define RGBLIGHT_SAT_STEP 8
|
||||
// #define RGBLIGHT_VAL_STEP 8
|
||||
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
// /*== all animations enable ==*/
|
||||
// #define RGBLIGHT_ANIMATIONS
|
||||
// /*== or choose animations ==*/
|
||||
// #define RGBLIGHT_EFFECT_BREATHING
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
// #define RGBLIGHT_EFFECT_SNAKE
|
||||
// #define RGBLIGHT_EFFECT_KNIGHT
|
||||
// #define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||
// #endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* number of backlight levels */
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
/* defined by default; to change, uncomment and set to the combination you want */
|
||||
// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP H
|
||||
//#define MAGIC_KEY_HELP_ALT SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER0_ALT GRAVE
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER B
|
||||
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
//#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||
100
keyboards/adelheid/info.json
Normal file
100
keyboards/adelheid/info.json
Normal file
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"keyboard_name": "Adelheid",
|
||||
"url": "https://github.com/floookay/adelheid",
|
||||
"maintainer": "floookay",
|
||||
"width": 19.5,
|
||||
"height": 6.5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "k00", "x": 0, "y": 0 },
|
||||
{ "label": "k01", "x": 1.25, "y": 0 },
|
||||
{ "label": "k02", "x": 2.25, "y": 0 },
|
||||
{ "label": "k03", "x": 3.5, "y": 0 },
|
||||
{ "label": "k04", "x": 4.5, "y": 0 },
|
||||
{ "label": "k05", "x": 5.75, "y": 0 },
|
||||
{ "label": "k06", "x": 6.75, "y": 0 },
|
||||
{ "label": "k07", "x": 9.75, "y": 0 },
|
||||
{ "label": "k08", "x": 10.75, "y": 0 },
|
||||
{ "label": "k09", "x": 12, "y": 0 },
|
||||
{ "label": "k0A", "x": 13, "y": 0 },
|
||||
{ "label": "k0B", "x": 14.25, "y": 0 },
|
||||
{ "label": "k0C", "x": 15.25, "y": 0 },
|
||||
{ "label": "k0D", "x": 16.5, "y": 0 },
|
||||
{ "label": "k0E", "x": 17.75, "y": 0 },
|
||||
|
||||
{ "label": "k10", "x": 0.75, "y": 1.25 },
|
||||
{ "label": "k11", "x": 1.75, "y": 1.25 },
|
||||
{ "label": "k12", "x": 2.75, "y": 1.25 },
|
||||
{ "label": "k13", "x": 4, "y": 1.25 },
|
||||
{ "label": "k14", "x": 5, "y": 1.25 },
|
||||
{ "label": "k15", "x": 6, "y": 1.25 },
|
||||
{ "label": "k16", "x": 7, "y": 1.25 },
|
||||
{ "label": "k17", "x": 9.5, "y": 1.25 },
|
||||
{ "label": "k18", "x": 10.5, "y": 1.25 },
|
||||
{ "label": "k19", "x": 11.5, "y": 1.25 },
|
||||
{ "label": "k1A", "x": 12.5, "y": 1.25 },
|
||||
{ "label": "k1B", "x": 13.75, "y": 1.25 },
|
||||
{ "label": "k1C", "x": 14.75, "y": 1.25 },
|
||||
{ "label": "k1D", "x": 15.75, "y": 1.25 },
|
||||
{ "label": "k1E", "x": 16.75, "y": 1.25 },
|
||||
{ "label": "k2E", "x": 18, "y": 1 },
|
||||
|
||||
{ "label": "k20", "x": 0.5, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "k21", "x": 2, "y": 2.25 },
|
||||
{ "label": "k22", "x": 3.5, "y": 2.25 },
|
||||
{ "label": "k23", "x": 4.5, "y": 2.25 },
|
||||
{ "label": "k24", "x": 5.5, "y": 2.25 },
|
||||
{ "label": "k25", "x": 6.5, "y": 2.25 },
|
||||
{ "label": "k26", "x": 9, "y": 2.25 },
|
||||
{ "label": "k27", "x": 10, "y": 2.25 },
|
||||
{ "label": "k28", "x": 11, "y": 2.25 },
|
||||
{ "label": "k29", "x": 12, "y": 2.25 },
|
||||
{ "label": "k2A", "x": 13, "y": 2.25 },
|
||||
{ "label": "k2B", "x": 14.5, "y": 2.25 },
|
||||
{ "label": "k2C", "x": 15.5, "y": 2.25 },
|
||||
{ "label": "k2D", "x": 16.5, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "k3E", "x": 18.25, "y": 2 },
|
||||
|
||||
{ "label": "k30", "x": 0.25, "y": 3.25, "w": 1.75 },
|
||||
{ "label": "k31", "x": 2, "y": 3.25 },
|
||||
{ "label": "k32", "x": 3.75, "y": 3.25 },
|
||||
{ "label": "k33", "x": 4.75, "y": 3.25 },
|
||||
{ "label": "k34", "x": 5.75, "y": 3.25 },
|
||||
{ "label": "k35", "x": 6.75, "y": 3.25 },
|
||||
{ "label": "k36", "x": 9.25, "y": 3.25 },
|
||||
{ "label": "k37", "x": 10.25, "y": 3.25 },
|
||||
{ "label": "k38", "x": 11.25, "y": 3.25 },
|
||||
{ "label": "k39", "x": 12.25, "y": 3.25 },
|
||||
{ "label": "k3A", "x": 14, "y": 3.25 },
|
||||
{ "label": "k3B", "x": 15, "y": 3.25 },
|
||||
{ "label": "k3C", "x": 16, "y": 3.25, "w": 2.25 },
|
||||
{ "label": "k4E", "x": 18.5, "y": 3 },
|
||||
|
||||
{ "label": "k40", "x": 0, "y": 4.25, "w": 2.25 },
|
||||
{ "label": "k41", "x": 2.25, "y": 4.25 },
|
||||
{ "label": "k42", "x": 4.25, "y": 4.25 },
|
||||
{ "label": "k43", "x": 5.25, "y": 4.25 },
|
||||
{ "label": "k44", "x": 6.25, "y": 4.25 },
|
||||
{ "label": "k45", "x": 7.25, "y": 4.25 },
|
||||
{ "label": "k46", "x": 9.5, "y": 4.25 },
|
||||
{ "label": "k47", "x": 10.5, "y": 4.25 },
|
||||
{ "label": "k48", "x": 11.5, "y": 4.25 },
|
||||
{ "label": "k49", "x": 12.5, "y": 4.25 },
|
||||
{ "label": "k4A", "x": 14.5, "y": 4.25 },
|
||||
{ "label": "k4B", "x": 15.5, "y": 4.25, "w": 1.75 },
|
||||
{ "label": "k4D", "x": 17.5, "y": 4.5 },
|
||||
|
||||
{ "label": "k50", "x": 0, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "k52", "x": 4.25, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "k54", "x": 5.75, "y": 5.25, "w": 2 },
|
||||
{ "label": "k55", "x": 7.75, "y": 5.25 },
|
||||
{ "label": "k57", "x": 9, "y": 5.25, "w": 2.75 },
|
||||
{ "label": "k59", "x": 11.75, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "k5C", "x": 16.5, "y": 5.5 },
|
||||
{ "label": "k5D", "x": 17.5, "y": 5.5 },
|
||||
{ "label": "k5E", "x": 18.5, "y": 5.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
45
keyboards/adelheid/keymaps/default/keymap.c
Normal file
45
keyboards/adelheid/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2020 floookay
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum adelheid_layers {
|
||||
_BASE,
|
||||
_SECONDARY
|
||||
};
|
||||
|
||||
#define MO_SEC MO(_SECONDARY)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
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_F13, KC_PGUP,
|
||||
|
||||
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_BSLS, KC_DEL, KC_HOME,
|
||||
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_BSPC, KC_END,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||
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_LCTL, KC_LALT, KC_SPC, MO_SEC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_SECONDARY] = LAYOUT(
|
||||
KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PSCR, KC_VOLU,
|
||||
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS, BL_STEP,
|
||||
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_DEL, KC_MUTE,
|
||||
KC_LGUI, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, KC_VOLD,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
|
||||
_______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MNXT
|
||||
)
|
||||
};
|
||||
9
keyboards/adelheid/keymaps/default/readme.md
Normal file
9
keyboards/adelheid/keymaps/default/readme.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Default keymap for the Adelheid
|
||||
|
||||
- ANSI QWERTY
|
||||
- split backspace
|
||||
- ctrl instead of caps lock
|
||||
- lgui on fn+caps
|
||||
|
||||

|
||||
View in [Keyboard-Layout-Editor](http://www.keyboard-layout-editor.com/#/gists/4262535adb5ac81a913edbebc4de8226).
|
||||
76
keyboards/adelheid/keymaps/floookay/keymap.c
Normal file
76
keyboards/adelheid/keymaps/floookay/keymap.c
Normal file
@@ -0,0 +1,76 @@
|
||||
/* Copyright 2020 floookay
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum adelheid_layers {
|
||||
_BASE,
|
||||
_SECONDARY
|
||||
};
|
||||
|
||||
// tap dance declarations
|
||||
enum {
|
||||
_TD_CTGU = 0,
|
||||
_TD_PGUP = 1,
|
||||
_TD_PGDN = 2,
|
||||
_TD_HOME = 3,
|
||||
_TD_END = 4,
|
||||
_TD_RSHC = 5,
|
||||
_TD_PSCR = 6
|
||||
};
|
||||
|
||||
#define MO_SEC MO(_SECONDARY)
|
||||
#define TD_CTGU TD(_TD_CTGU)
|
||||
#define TD_PGUP TD(_TD_PGUP)
|
||||
#define TD_PGDN TD(_TD_PGDN)
|
||||
#define TD_HOME TD(_TD_HOME)
|
||||
#define TD_END TD(_TD_END)
|
||||
#define TD_RSHC TD(_TD_RSHC)
|
||||
#define TD_PSCR TD(_TD_PSCR)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
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_F13, TD_PGUP,
|
||||
|
||||
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_BSLS, KC_DEL, TD_HOME,
|
||||
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_BSPC, TD_END,
|
||||
TD_CTGU, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, TD_PGDN,
|
||||
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_LCTL, KC_LALT, KC_SPC, MO_SEC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_SECONDARY] = LAYOUT(
|
||||
KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, TD_PSCR, KC_VOLU,
|
||||
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS, BL_STEP,
|
||||
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_DEL, KC_MUTE,
|
||||
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, KC_VOLD,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TD_RSHC, KC_MPLY,
|
||||
_______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MNXT
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
// Tap Dance Definitions
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
// Tap once for first parameter, twice for second
|
||||
[_TD_CTGU] = ACTION_TAP_DANCE_DOUBLE(KC_LCTL, KC_LGUI),
|
||||
[_TD_PGUP] = ACTION_TAP_DANCE_DOUBLE(KC_PGUP, LCTL(KC_PGUP)),
|
||||
[_TD_PGDN] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN, LCTL(KC_PGDN)),
|
||||
[_TD_HOME] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, LCTL(KC_HOME)),
|
||||
[_TD_END] = ACTION_TAP_DANCE_DOUBLE(KC_END, LCTL(KC_END)),
|
||||
[_TD_RSHC] = ACTION_TAP_DANCE_DOUBLE(KC_RSFT, KC_CAPS),
|
||||
[_TD_PSCR] = ACTION_TAP_DANCE_DOUBLE(KC_PSCR, LSFT(LGUI(KC_S))) // screenshot tool tap dance
|
||||
};
|
||||
9
keyboards/adelheid/keymaps/floookay/readme.md
Normal file
9
keyboards/adelheid/keymaps/floookay/readme.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# The default keymap for the Adelheid
|
||||
|
||||
- ANSI QWERTY
|
||||
- split backspace
|
||||
- ctrl on caps lock with super on tap dance
|
||||
- caps lock on fn + right shift tap dance
|
||||
|
||||

|
||||
View in [Keyboard-Layout-Editor](http://www.keyboard-layout-editor.com/#/gists/4262535adb5ac81a913edbebc4de8226).
|
||||
1
keyboards/adelheid/keymaps/floookay/rules.mk
Normal file
1
keyboards/adelheid/keymaps/floookay/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
TAP_DANCE_ENABLE = yes
|
||||
15
keyboards/adelheid/readme.md
Normal file
15
keyboards/adelheid/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# 𝔄𝔡𝔢𝔩𝔥𝔢𝔦𝔡
|
||||
|
||||

|
||||
|
||||
The Adelheid is a 75% Alice-like keyboard. It's a fork of the [Arisu](https://github.com/FateNozomi/arisu-pcb) by FateNozomi and is open-source as well.
|
||||
|
||||
* Keyboard Maintainer: [floookay](https://github.com/floookay)
|
||||
* Hardware Supported: Adelheid PCB [Rev2.0]
|
||||
* Hardware Availability: [PCB-, case- & wrist rest files](https://github.com/floookay/adelheid)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make adelheid:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
22
keyboards/adelheid/rules.mk
Normal file
22
keyboards/adelheid/rules.mk
Normal file
@@ -0,0 +1,22 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
60
keyboards/handwired/ferris/config.h
Normal file
60
keyboards/handwired/ferris/config.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xC2AB
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Pierre
|
||||
#define PRODUCT Ferris the keeb
|
||||
#define DESCRIPTION A minimalistic 34 - keys split keyboard
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 10
|
||||
|
||||
#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2)
|
||||
#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2)
|
||||
|
||||
#define UNUSED_MCU 14
|
||||
#define UNUSED_MCP 7
|
||||
|
||||
// wiring
|
||||
#define MATRIX_ROW_PINS_MCU \
|
||||
{ B3, B2, B1, F0 }
|
||||
#define MATRIX_COL_PINS_MCU \
|
||||
{ D6, D7, B4, B5, B6 }
|
||||
#define UNUSED_PINS_MCU \
|
||||
{ B0, B7, C6, C7, D2, D3, D4, D5, E6, F1, F4, F5, F6, F7 }
|
||||
#define MATRIX_ROW_PINS_MCP \
|
||||
{ B0, B1, B2, B3 }
|
||||
#define MATRIX_COL_PINS_MCP \
|
||||
{ A0, A1, A2, A3, A4 }
|
||||
#define UNUSED_PINS_MCP \
|
||||
{ B4, B5, B6, B7, A5, A6, A7 }
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
17
keyboards/handwired/ferris/ferris.c
Normal file
17
keyboards/handwired/ferris/ferris.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "ferris.h"
|
||||
43
keyboards/handwired/ferris/ferris.h
Normal file
43
keyboards/handwired/ferris/ferris.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
/* left hand right hand */
|
||||
#define LAYOUT(\
|
||||
K0_0, K0_1, K0_2, K0_3, K0_4, K0_5, K0_6, K0_7, K0_8, K0_9,\
|
||||
K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9,\
|
||||
K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9,\
|
||||
K3_3, K3_4, K3_5, K3_6)\
|
||||
/* matrix positions */\
|
||||
{\
|
||||
{K0_0, K0_1, K0_2, K0_3, K0_4},\
|
||||
{K1_0, K1_1, K1_2, K1_3, K1_4},\
|
||||
{K2_0, K2_1, K2_2, K2_3, K2_4},\
|
||||
{KC_NO, KC_NO, KC_NO, K3_3, K3_4},\
|
||||
\
|
||||
{K0_5, K0_6, K0_7, K0_8, K0_9},\
|
||||
{K1_5, K1_6, K1_7, K1_8, K1_9},\
|
||||
{K2_5, K2_6, K2_7, K2_8, K2_9},\
|
||||
{K3_5, K3_6, KC_NO, KC_NO, KC_NO}\
|
||||
}
|
||||
|
||||
// clang-format on
|
||||
54
keyboards/handwired/ferris/info.json
Normal file
54
keyboards/handwired/ferris/info.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"keyboard_name": "Ferris",
|
||||
"url": "https://github.com/pierrechevalier83/ferris/",
|
||||
"maintainer": "@pierrec83",
|
||||
"width": 12,
|
||||
"height": 4.75,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0.93},
|
||||
{"x": 1, "y": 0.31},
|
||||
{"x": 2, "y": 0},
|
||||
{"x": 3, "y": 0.28},
|
||||
{"x": 4, "y": 0.42},
|
||||
|
||||
{"x": 7, "y": 0.42},
|
||||
{"x": 8, "y": 0.28},
|
||||
{"x": 9, "y": 0},
|
||||
{"x": 10, "y": 0.31},
|
||||
{"x": 11, "y": 0.93},
|
||||
|
||||
{"x": 0, "y": 1.93},
|
||||
{"x": 1, "y": 1.31},
|
||||
{"x": 2, "y": 1},
|
||||
{"x": 3, "y": 1.28},
|
||||
{"x": 4, "y": 1.42},
|
||||
|
||||
{"x": 7, "y": 1.42},
|
||||
{"x": 8, "y": 1.28},
|
||||
{"x": 9, "y": 1},
|
||||
{"x": 10, "y": 1.31},
|
||||
{"x": 11, "y": 1.93},
|
||||
|
||||
{"x": 0, "y": 2.93},
|
||||
{"x": 1, "y": 2.31},
|
||||
{"x": 2, "y": 2},
|
||||
{"x": 3, "y": 2.28},
|
||||
{"x": 4, "y": 2.42},
|
||||
|
||||
{"x": 7, "y": 2.42},
|
||||
{"x": 8, "y": 2.28},
|
||||
{"x": 9, "y": 2},
|
||||
{"x": 10, "y": 2.31},
|
||||
{"x": 11, "y": 2.93},
|
||||
|
||||
{"x": 3.5, "y": 3.75},
|
||||
{"x": 4.5, "y": 4},
|
||||
|
||||
{"x": 6.5, "y": 4},
|
||||
{"x": 7.5, "y": 3.75}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
39
keyboards/handwired/ferris/keymaps/default/config.h
Normal file
39
keyboards/handwired/ferris/keymaps/default/config.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
// Set the mouse settings to a comfortable speed/accuracy trade-off,
|
||||
// assuming a screen refresh rate of 60 Htz or higher
|
||||
// The default is 50. This makes the mouse ~3 times faster and more accurate
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
|
||||
// give it more time to accelerate to max speed to retain precise control over short distances.
|
||||
#define MOUSEKEY_TIME_TO_MAX 40
|
||||
// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
|
||||
#define MOUSEKEY_DELAY 100
|
||||
// It makes sense to use the same delay for the mouseweel
|
||||
#define MOUSEKEY_WHEEL_DELAY 100
|
||||
// The default is 100
|
||||
#define MOUSEKEY_WHEEL_INTERVAL 50
|
||||
// The default is 40
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
|
||||
|
||||
// Pick good defaults for enabling homerow modifiers
|
||||
#define TAPPING_TERM 200
|
||||
#define PERMISSIVE_HOLD
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#define TAPPING_FORCE_HOLD
|
||||
39
keyboards/handwired/ferris/keymaps/default/keymap.c
Normal file
39
keyboards/handwired/ferris/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Blank template at the bottom
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Qwerty
|
||||
*
|
||||
* ,-----------------------------. ,-----------------------------.
|
||||
* | Q | W | E | R | T | | Y | U | I | O | P |
|
||||
* |-----+-----+-----+-----+-----| |-----------------------------|
|
||||
* | A | S | D | F | G | | H | J | K | L | ; |
|
||||
* |-----+-----+-----+-----+-----+ |-----------------------------|
|
||||
* | Z | X | C | V | B | | N | M | < | > | ? |
|
||||
* `-----+-----+-----+-----+-----+--. ,-+-----------------------------'
|
||||
* | BSPC | SPC | | SPC | ENT |
|
||||
* '------------' '-----------'
|
||||
*/
|
||||
[0] = LAYOUT(
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
|
||||
KC_BSPC, KC_SPC, KC_SPC, KC_ENT)
|
||||
};
|
||||
282
keyboards/handwired/ferris/matrix.c
Normal file
282
keyboards/handwired/ferris/matrix.c
Normal file
@@ -0,0 +1,282 @@
|
||||
/*
|
||||
Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
|
||||
2020 Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This code was heavily inspired by the ergodox_ez keymap, and modernized
|
||||
* to take advantage of the quantum.h microcontroller agnostics gpio control
|
||||
* abstractions and use the macros defined in config.h for the wiring as opposed
|
||||
* to repeating that information all over the place.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "i2c_master.h"
|
||||
|
||||
extern i2c_status_t mcp23017_status;
|
||||
#define I2C_TIMEOUT 1000
|
||||
|
||||
// For a better understanding of the i2c protocol, this is a good read:
|
||||
// https://www.robot-electronics.co.uk/i2c-tutorial
|
||||
|
||||
// I2C address:
|
||||
// See the datasheet, section 3.3.1 on addressing I2C devices and figure 3-6 for an
|
||||
// illustration
|
||||
// http://ww1.microchip.com/downloads/en/devicedoc/20001952c.pdf
|
||||
// All address pins of the mcp23017 are connected to the ground on the ferris
|
||||
// | 0 | 1 | 0 | 0 | A2 | A1 | A0 |
|
||||
// | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
|
||||
#define I2C_ADDR 0b0100000
|
||||
#define I2C_ADDR_WRITE ((I2C_ADDR << 1) | I2C_WRITE)
|
||||
#define I2C_ADDR_READ ((I2C_ADDR << 1) | I2C_READ)
|
||||
|
||||
// Register addresses
|
||||
// See https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/Adafruit_MCP23017.h
|
||||
#define IODIRA 0x00 // i/o direction register
|
||||
#define IODIRB 0x01
|
||||
#define GPPUA 0x0C // GPIO pull-up resistor register
|
||||
#define GPPUB 0x0D
|
||||
#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT)
|
||||
#define GPIOB 0x13
|
||||
#define OLATA 0x14 // output latch register
|
||||
#define OLATB 0x15
|
||||
|
||||
bool i2c_initialized = 0;
|
||||
i2c_status_t mcp23017_status = I2C_ADDR;
|
||||
|
||||
uint8_t init_mcp23017(void) {
|
||||
print("starting init");
|
||||
mcp23017_status = I2C_ADDR;
|
||||
|
||||
// I2C subsystem
|
||||
if (i2c_initialized == 0) {
|
||||
i2c_init(); // on pins D(1,0)
|
||||
i2c_initialized = true;
|
||||
wait_ms(I2C_TIMEOUT);
|
||||
}
|
||||
|
||||
// set pin direction
|
||||
// - unused : input : 1
|
||||
// - input : input : 1
|
||||
// - driving : output : 0
|
||||
mcp23017_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
mcp23017_status = i2c_write(IODIRA, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
// This means: we will read all the bits on GPIOA
|
||||
mcp23017_status = i2c_write(0b11111111, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
// This means: we will write to the pins 0-4 on GPIOB (in select_rows)
|
||||
mcp23017_status = i2c_write(0b11110000, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
i2c_stop();
|
||||
|
||||
// set pull-up
|
||||
// - unused : on : 1
|
||||
// - input : on : 1
|
||||
// - driving : off : 0
|
||||
mcp23017_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
mcp23017_status = i2c_write(GPPUA, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
// This means: we will read all the bits on GPIOA
|
||||
mcp23017_status = i2c_write(0b11111111, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
// This means: we will write to the pins 0-4 on GPIOB (in select_rows)
|
||||
mcp23017_status = i2c_write(0b11110000, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
|
||||
out:
|
||||
i2c_stop();
|
||||
return mcp23017_status;
|
||||
}
|
||||
|
||||
/* matrix state(1:on, 0:off) */
|
||||
static matrix_row_t matrix[MATRIX_ROWS]; // debounced values
|
||||
|
||||
static matrix_row_t read_cols(uint8_t row);
|
||||
static void init_cols(void);
|
||||
static void unselect_rows(void);
|
||||
static void select_row(uint8_t row);
|
||||
|
||||
static uint8_t mcp23017_reset_loop;
|
||||
|
||||
void matrix_init_custom(void) {
|
||||
// initialize row and col
|
||||
|
||||
mcp23017_status = init_mcp23017();
|
||||
|
||||
unselect_rows();
|
||||
init_cols();
|
||||
|
||||
// initialize matrix state: all keys off
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
matrix[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_power_up(void) {
|
||||
mcp23017_status = init_mcp23017();
|
||||
|
||||
unselect_rows();
|
||||
init_cols();
|
||||
|
||||
// initialize matrix state: all keys off
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
matrix[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Reads and stores a row, returning
|
||||
// whether a change occurred.
|
||||
static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) {
|
||||
matrix_row_t temp = read_cols(index);
|
||||
if (current_matrix[index] != temp) {
|
||||
current_matrix[index] = temp;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||
if (mcp23017_status) { // if there was an error
|
||||
if (++mcp23017_reset_loop == 0) {
|
||||
// if (++mcp23017_reset_loop >= 1300) {
|
||||
// since mcp23017_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans
|
||||
// this will be approx bit more frequent than once per second
|
||||
dprint("trying to reset mcp23017\n");
|
||||
mcp23017_status = init_mcp23017();
|
||||
if (mcp23017_status) {
|
||||
dprint("right side not responding\n");
|
||||
} else {
|
||||
dprint("right side attached\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool changed = false;
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) {
|
||||
// select rows from left and right hands
|
||||
uint8_t left_index = i;
|
||||
uint8_t right_index = i + MATRIX_ROWS_PER_SIDE;
|
||||
select_row(left_index);
|
||||
select_row(right_index);
|
||||
|
||||
// we don't need a 30us delay anymore, because selecting a
|
||||
// left-hand row requires more than 30us for i2c.
|
||||
|
||||
changed |= store_matrix_row(current_matrix, left_index);
|
||||
changed |= store_matrix_row(current_matrix, right_index);
|
||||
|
||||
unselect_rows();
|
||||
}
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
static void init_cols(void) {
|
||||
// init on mcp23017
|
||||
// not needed, already done as part of init_mcp23017()
|
||||
|
||||
// init on mcu
|
||||
pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_MCU;
|
||||
for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) {
|
||||
pin_t pin = matrix_col_pins_mcu[pin_index];
|
||||
setPinInput(pin);
|
||||
writePinHigh(pin);
|
||||
}
|
||||
}
|
||||
|
||||
static matrix_row_t read_cols(uint8_t row) {
|
||||
if (row < MATRIX_ROWS_PER_SIDE) {
|
||||
pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_MCU;
|
||||
matrix_row_t current_row_value = 0;
|
||||
// For each col...
|
||||
for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) {
|
||||
// Select the col pin to read (active low)
|
||||
uint8_t pin_state = readPin(matrix_col_pins_mcu[col_index]);
|
||||
|
||||
// Populate the matrix row with the state of the col pin
|
||||
current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index);
|
||||
}
|
||||
return current_row_value;
|
||||
} else {
|
||||
if (mcp23017_status) { // if there was an error
|
||||
return 0;
|
||||
} else {
|
||||
uint8_t data = 0;
|
||||
mcp23017_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
mcp23017_status = i2c_write(GPIOA, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
mcp23017_status = i2c_start(I2C_ADDR_READ, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
mcp23017_status = i2c_read_nack(I2C_TIMEOUT);
|
||||
if (mcp23017_status < 0) goto out;
|
||||
// We read all the pins on GPIOA.
|
||||
// The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero.
|
||||
// The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys.
|
||||
// Since the pins connected to eact columns are sequential, and counting from zero up (col 5 -> GPIOA0, col 6 -> GPIOA1 and so on), the only transformation needed is a bitwise not to swap all zeroes and ones.
|
||||
data = ~((uint8_t)mcp23017_status);
|
||||
mcp23017_status = I2C_STATUS_SUCCESS;
|
||||
out:
|
||||
i2c_stop();
|
||||
// return reverse_bits(data, MATRIX_COLS_PER_SIDE);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void unselect_rows(void) {
|
||||
// no need to unselect on mcp23017, because the select step sets all
|
||||
// the other row bits high, and it's not changing to a different
|
||||
// direction
|
||||
|
||||
// unselect rows on microcontroller
|
||||
pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_MCU;
|
||||
for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) {
|
||||
pin_t pin = matrix_row_pins_mcu[pin_index];
|
||||
setPinInput(pin);
|
||||
writePinLow(pin);
|
||||
}
|
||||
}
|
||||
|
||||
static void select_row(uint8_t row) {
|
||||
if (row < MATRIX_ROWS_PER_SIDE) {
|
||||
// select on atmega32u4
|
||||
pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_MCU;
|
||||
pin_t pin = matrix_row_pins_mcu[row];
|
||||
setPinOutput(pin);
|
||||
writePinLow(pin);
|
||||
} else {
|
||||
// select on mcp23017
|
||||
if (mcp23017_status) { // if there was an error
|
||||
// do nothing
|
||||
} else {
|
||||
mcp23017_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
mcp23017_status = i2c_write(GPIOB, I2C_TIMEOUT);
|
||||
if (mcp23017_status) goto out;
|
||||
// Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one.
|
||||
// Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus.
|
||||
mcp23017_status = i2c_write(0xFF & ~(1 << (row - MATRIX_ROWS_PER_SIDE)), I2C_TIMEOUT);
|
||||
|
||||
if (mcp23017_status) goto out;
|
||||
out:
|
||||
i2c_stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
16
keyboards/handwired/ferris/readme.md
Normal file
16
keyboards/handwired/ferris/readme.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# Ferris
|
||||
|
||||

|
||||

|
||||
|
||||
A split 34 keys column staggered keyboard named and decorated after the rustlang mascott. All PCB files and some thoughts on the design are available on the [project's github page](https://github.com/pierrechevalier83/ferris)
|
||||
|
||||
* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83)
|
||||
* Hardware Supported: Ferris PCB
|
||||
* Hardware Availability: Still in prototype stage
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make handwired/ferris:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
28
keyboards/handwired/ferris/rules.mk
Normal file
28
keyboards/handwired/ferris/rules.mk
Normal file
@@ -0,0 +1,28 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
UNICODE_ENABLE = yes
|
||||
CUSTOM_MATRIX = lite
|
||||
NO_USB_STARTUP_CHECK = yes
|
||||
LTO_ENABLE = yes
|
||||
|
||||
SRC += matrix.c
|
||||
QUANTUM_LIB_SRC += i2c_master.c
|
||||
@@ -1,3 +1,3 @@
|
||||
# Proton C onekey
|
||||
|
||||
To trigger keypress, short together pins *A3* and *A2*.
|
||||
To trigger keypress, short together pins *A1* and *A2*.
|
||||
|
||||
@@ -69,15 +69,17 @@ void matrix_init(void)
|
||||
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00;
|
||||
matrix = _matrix0;
|
||||
matrix_prev = _matrix1;
|
||||
|
||||
matrix_init_quantum();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_user(void) {
|
||||
}
|
||||
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
|
||||
|
||||
__attribute__((weak)) void matrix_init_user(void) {}
|
||||
|
||||
__attribute__((weak)) void matrix_scan_user(void) {}
|
||||
|
||||
uint8_t matrix_scan(void)
|
||||
{
|
||||
|
||||
@@ -69,15 +69,17 @@ void matrix_init(void)
|
||||
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00;
|
||||
matrix = _matrix0;
|
||||
matrix_prev = _matrix1;
|
||||
|
||||
matrix_init_quantum();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_user(void) {
|
||||
}
|
||||
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
|
||||
|
||||
__attribute__((weak)) void matrix_init_user(void) {}
|
||||
|
||||
__attribute__((weak)) void matrix_scan_user(void) {}
|
||||
|
||||
uint8_t matrix_scan(void)
|
||||
{
|
||||
|
||||
@@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x8F73
|
||||
#define VENDOR_ID 0x6A6A
|
||||
#define PRODUCT_ID 0x4810
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Josh Johnson
|
||||
#define PRODUCT Hub16
|
||||
@@ -42,9 +42,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ F0, C7, C6, B6, E6}
|
||||
{ F0, C7, C6, B6, E6}
|
||||
#define MATRIX_COL_PINS \
|
||||
{ F4, F1, D5, D3 }
|
||||
{ F4, F1, D5, D3 }
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
66
keyboards/hub16/keymaps/via/keymap.c
Executable file
66
keyboards/hub16/keymaps/via/keymap.c
Executable file
@@ -0,0 +1,66 @@
|
||||
/* Copyright 2019 Josh Johnson
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT( /* Base */
|
||||
KC_MUTE, KC_MPLY,
|
||||
KC_7, KC_8, KC_9, KC_PAST,
|
||||
KC_4, KC_5, KC_6, KC_PMNS,
|
||||
KC_1, KC_2, KC_3, KC_PPLS,
|
||||
MO(1), KC_0, KC_PDOT, KC_PENT
|
||||
),
|
||||
|
||||
[1] = LAYOUT( /* LED Control */
|
||||
_______, _______,
|
||||
_______, RGB_MOD, RGB_RMOD, RGB_TOG,
|
||||
RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI,
|
||||
RGB_SAD, RGB_SAI, _______, _______,
|
||||
_______, _______, RESET, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
_______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______
|
||||
),
|
||||
|
||||
[3] = LAYOUT(
|
||||
_______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* Left Encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLD);
|
||||
} else {
|
||||
tap_code(KC_VOLU);
|
||||
}
|
||||
} else if (index == 1) { /* Right Encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_MPRV);
|
||||
} else {
|
||||
tap_code(KC_MNXT);
|
||||
}
|
||||
}
|
||||
}
|
||||
4
keyboards/hub16/keymaps/via/rules.mk
Normal file
4
keyboards/hub16/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
VIA_ENABLE = yes
|
||||
CONSOLE_ENABLE = no
|
||||
COMMAND_ENABLE = no
|
||||
TAP_DANCE_ENABLE = no
|
||||
@@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// Encoder things
|
||||
#define SWITCH_1 F7
|
||||
#define SWITCH_2 D7
|
||||
static bool read_encoder_values(matrix_row_t current_matrix[], uint8_t current_row);
|
||||
static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row);
|
||||
|
||||
#ifdef MATRIX_MASKED
|
||||
extern const matrix_row_t matrix_mask[];
|
||||
@@ -128,7 +128,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
|
||||
}
|
||||
|
||||
// Unselect row
|
||||
unselect_row(current_row);
|
||||
unselect_row(current_row);
|
||||
|
||||
return (last_row_value != current_matrix[current_row]);
|
||||
}
|
||||
@@ -223,27 +223,23 @@ uint8_t matrix_scan(void) {
|
||||
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
|
||||
|
||||
// Read encoder switches, already debounced
|
||||
changed |= read_encoder_values(matrix, 4);
|
||||
changed |= read_encoder_switches(matrix, 4);
|
||||
|
||||
matrix_scan_quantum();
|
||||
return (uint8_t)changed;
|
||||
}
|
||||
|
||||
// Customisations for the encoders
|
||||
void matrix_init_kb(void){
|
||||
void matrix_init_kb(void) {
|
||||
setPinInput(SWITCH_1);
|
||||
setPinInput(SWITCH_2);
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void){
|
||||
void matrix_scan_kb(void) {}
|
||||
|
||||
}
|
||||
void matrix_print(void) {}
|
||||
|
||||
void matrix_print(void){
|
||||
|
||||
}
|
||||
|
||||
static bool read_encoder_values(matrix_row_t current_matrix[], uint8_t current_row) {
|
||||
static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row) {
|
||||
// Store last value of row prior to reading
|
||||
matrix_row_t last_row_value = current_matrix[current_row];
|
||||
|
||||
@@ -253,18 +249,18 @@ static bool read_encoder_values(matrix_row_t current_matrix[], uint8_t current_r
|
||||
// Debounce the encoder buttons using a shift register
|
||||
static uint8_t btn_1_array;
|
||||
static uint8_t btn_2_array;
|
||||
bool btn_1_rising = 0;
|
||||
bool btn_2_rising = 0;
|
||||
bool btn_1_pressed = 0;
|
||||
bool btn_2_pressed = 0;
|
||||
btn_1_array <<= 1;
|
||||
btn_2_array <<= 1;
|
||||
btn_1_array |= readPin(SWITCH_1);
|
||||
btn_2_array |= readPin(SWITCH_2);
|
||||
(btn_1_array == 0b01111111) ? (btn_1_rising = 1) : (btn_1_rising = 0);
|
||||
(btn_2_array == 0b01111111) ? (btn_2_rising = 1) : (btn_2_rising = 0);
|
||||
(btn_1_array == 0b11111111) ? (btn_1_pressed = 1) : (btn_1_pressed = 0);
|
||||
(btn_2_array == 0b11111111) ? (btn_2_pressed = 1) : (btn_2_pressed = 0);
|
||||
|
||||
// Populate the matrix row with the state of the encoder
|
||||
current_matrix[current_row] |= btn_1_rising ? (1 << 0) : 0;
|
||||
current_matrix[current_row] |= btn_2_rising ? (1 << 1) : 0;
|
||||
current_matrix[current_row] |= btn_1_pressed ? (1 << 0) : 0;
|
||||
current_matrix[current_row] |= btn_2_pressed ? (1 << 1) : 0;
|
||||
|
||||
return (last_row_value != current_matrix[current_row]);
|
||||
}
|
||||
@@ -1,16 +1,15 @@
|
||||
{
|
||||
"keyboard_name": "maja",
|
||||
"keyboard_name": "MAJA",
|
||||
"url": "",
|
||||
"maintainer": "KBDFANS",
|
||||
"maintainer": "DZTECH",
|
||||
"width": 18.75,
|
||||
"height": 5.5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x": 2.75, "y": 0},
|
||||
{"x": 12.75, "y": 0},
|
||||
{"x": 0.75, "y": 0.25},
|
||||
{"x": 1.75, "y": 0.25},
|
||||
{"x": 2.75, "y": 0},
|
||||
{"x": 3.75, "y": 0.25},
|
||||
{"x": 4.75, "y": 0.25},
|
||||
{"x": 5.75, "y": 0.25},
|
||||
@@ -19,6 +18,7 @@
|
||||
{"x": 9.75, "y": 0.25},
|
||||
{"x": 10.75, "y": 0.25},
|
||||
{"x": 11.75, "y": 0.25},
|
||||
{"x": 12.75, "y": 0},
|
||||
{"x": 13.75, "y": 0.25},
|
||||
{"x": 14.75, "y": 0.25, "w": 2},
|
||||
{"x": 17.75, "y": 0.25},
|
||||
@@ -77,4 +77,4 @@
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
220
keyboards/maartenwut/pockettype/config.h
Normal file
220
keyboards/maartenwut/pockettype/config.h
Normal file
@@ -0,0 +1,220 @@
|
||||
/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4705
|
||||
#define PRODUCT_ID 0xFA7D
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Maartenwut
|
||||
#define PRODUCT PocketType
|
||||
#define DESCRIPTION A small 4x12 ortholinear keyboard
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 12
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS {D3,D1,D7,B5}
|
||||
#define MATRIX_COL_PINS {F6,F7,B1,B3,B2,B6,B4,E6,C6,D4,D0,D2}
|
||||
#define UNUSED_PINS {B1,B2,B3}
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/*
|
||||
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||
*/
|
||||
// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
|
||||
|
||||
// #define BACKLIGHT_PIN B7
|
||||
// #define BACKLIGHT_BREATHING
|
||||
// #define BACKLIGHT_LEVELS 3
|
||||
|
||||
// #define RGB_DI_PIN E2
|
||||
// #ifdef RGB_DI_PIN
|
||||
// #define RGBLED_NUM 16
|
||||
// #define RGBLIGHT_HUE_STEP 8
|
||||
// #define RGBLIGHT_SAT_STEP 8
|
||||
// #define RGBLIGHT_VAL_STEP 8
|
||||
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
// /*== all animations enable ==*/
|
||||
// #define RGBLIGHT_ANIMATIONS
|
||||
// /*== or choose animations ==*/
|
||||
// #define RGBLIGHT_EFFECT_BREATHING
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
// #define RGBLIGHT_EFFECT_SNAKE
|
||||
// #define RGBLIGHT_EFFECT_KNIGHT
|
||||
// #define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||
// /*== customize breathing effect ==*/
|
||||
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||
// /*==== use exp() and sin() ====*/
|
||||
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||
// #endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
/* defined by default; to change, uncomment and set to the combination you want */
|
||||
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP H
|
||||
//#define MAGIC_KEY_HELP_ALT SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER0_ALT GRAVE
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER B
|
||||
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
//#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
// #define BOOTMAGIC_LITE_ROW 0
|
||||
// #define BOOTMAGIC_LITE_COLUMN 0
|
||||
12
keyboards/maartenwut/pockettype/info.json
Normal file
12
keyboards/maartenwut/pockettype/info.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"keyboard_name": "PocketType",
|
||||
"url": "https://mechboards.co.uk/shop/kits/pockettype/",
|
||||
"maintainer": "maartenwut",
|
||||
"width": 12,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_4x12": {
|
||||
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"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":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}]
|
||||
}
|
||||
}
|
||||
}
|
||||
46
keyboards/maartenwut/pockettype/keymaps/default/keymap.c
Normal file
46
keyboards/maartenwut/pockettype/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
|
||||
#define _MA 0 //Main layer
|
||||
#define _LO 1 //Low
|
||||
#define _HI 2 //High
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_MA] = LAYOUT_ortho_4x12(
|
||||
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_RALT, MO(_LO), KC_SPC, KC_BSPC, MO(_HI), KC_LEFT, KC_DOWN, KC_UP, KC_MPLY),
|
||||
|
||||
[_LO] = LAYOUT_ortho_4x12(
|
||||
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
|
||||
_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET),
|
||||
|
||||
[_HI] = LAYOUT_ortho_4x12(
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______,
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
This is the default keymap for the PocketType.
|
||||
39
keyboards/maartenwut/pockettype/pockettype.c
Normal file
39
keyboards/maartenwut/pockettype/pockettype.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "pockettype.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
led_init_ports();
|
||||
|
||||
matrix_init_user();
|
||||
};
|
||||
|
||||
void led_init_ports(void) {
|
||||
// * Set our LED pins as output and high
|
||||
setPinOutput(F5);
|
||||
writePinHigh(F5);
|
||||
|
||||
setPinOutput(F4);
|
||||
writePinLow(F4);
|
||||
}
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if(led_update_user(led_state)) {
|
||||
writePin(F5, !led_state.caps_lock);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
40
keyboards/maartenwut/pockettype/pockettype.h
Normal file
40
keyboards/maartenwut/pockettype/pockettype.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
|
||||
#define LAYOUT_ortho_4x12( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
|
||||
}
|
||||
13
keyboards/maartenwut/pockettype/readme.md
Normal file
13
keyboards/maartenwut/pockettype/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# PocketType
|
||||
|
||||
## Support
|
||||
* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
|
||||
* Hardware Supported: PocketType
|
||||
* Hardware Availability: [mechboards.co.uk](https://mechboards.co.uk/shop/kits/pockettype/)
|
||||
|
||||
## Build
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make maartenwut/pockettype:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
31
keyboards/maartenwut/pockettype/rules.mk
Normal file
31
keyboards/maartenwut/pockettype/rules.mk
Normal file
@@ -0,0 +1,31 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# ATmega32A bootloadHID
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LAYOUTS = ortho_4x12
|
||||
174
keyboards/metamechs/timberwolf/config.h
Normal file
174
keyboards/metamechs/timberwolf/config.h
Normal file
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
Copyright 2020 Croktopus
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x6D6D // MetaMechs
|
||||
#define PRODUCT_ID 0x5754 // TW
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER MetaMechs
|
||||
#define PRODUCT Timber Wolf
|
||||
#define DESCRIPTION Timber Wolf
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_COLS 9
|
||||
#define MATRIX_ROWS 12
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_COL_PINS { B2, D1, D2, C7, F5, F6, F7, F0, E6 }
|
||||
#define MATRIX_ROW_PINS { B6, B5, B4, D7, D6, D4, D5, D3, F4, F1, B1, B0 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Wncoswe pins */
|
||||
#define ENCODERS_PAD_A { B7 }
|
||||
#define ENCODERS_PAD_B { B3 }
|
||||
|
||||
/* Encoder resolution, lower number = more sensitive */
|
||||
#define ENCODER_RESOLUTION 2
|
||||
|
||||
/* Reverse encoder direction */
|
||||
// #define ENCODER_DIRECTION_FLIP
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* Backlighting code used for caps lock indicator */
|
||||
#define BACKLIGHT_PIN C6
|
||||
#define BACKLIGHT_LEVELS 9
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
// #define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
// #define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
/* defined by default; to change, uncomment and set to the combination you want */
|
||||
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP H
|
||||
//#define MAGIC_KEY_HELP_ALT SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER0_ALT GRAVE
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER B
|
||||
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
#define BOOTMAGIC_LITE_ROW 0
|
||||
#define BOOTMAGIC_LITE_COLUMN 0
|
||||
70
keyboards/metamechs/timberwolf/info.json
Normal file
70
keyboards/metamechs/timberwolf/info.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"keyboard_name": "Timber Wolf",
|
||||
"url": "https://geekhack.org/index.php?topic=102520.0",
|
||||
"maintainer": "Croktopus",
|
||||
"width": 18.75,
|
||||
"height": 6.5,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1},
|
||||
{"label":"Fn", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25},
|
||||
{"label":"Fn", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"PrtSc", "x":17.75, "y":2.25},
|
||||
{"label":"Fn", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Enter", "x":15, "y":3.25, "w":1.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"Enter", "x":17.75, "y":3.25},
|
||||
{"label":"Fn", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"\u2191", "x":16.5, "y":4.5},
|
||||
{"label":"Fn", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.5, "y":5.5}, {"label":"\u2193", "x":16.5, "y":5.5}, {"label":"\u2192", "x":17.5, "y":5.5}]
|
||||
},
|
||||
"LAYOUT_prime_ansi": {
|
||||
"layout": [
|
||||
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1},
|
||||
{"label":"Fn", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25},
|
||||
{"label":"Fn", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"PrtSc", "x":17.75, "y":2.25},
|
||||
{"label":"Fn", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"label":"Enter", "x":14, "y":3.25, "w":2.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"Enter", "x":17.75, "y":3.25},
|
||||
{"label":"Fn", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"\u2191", "x":16.5, "y":4.5},
|
||||
{"label":"Fn", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.5, "y":5.5}, {"label":"\u2193", "x":16.5, "y":5.5}, {"label":"\u2192", "x":17.5, "y":5.5}]
|
||||
},
|
||||
"LAYOUT_prime_iso": {
|
||||
"layout": [
|
||||
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1},
|
||||
{"label":"Fn", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25},
|
||||
{"label":"Fn", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"PrtSc", "x":17.75, "y":2.25},
|
||||
{"label":"Fn", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"Enter", "x":17.75, "y":3.25},
|
||||
{"label":"Fn", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"\u2191", "x":16.5, "y":4.5},
|
||||
{"label":"Fn", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.5, "y":5.5}, {"label":"\u2193", "x":16.5, "y":5.5}, {"label":"\u2192", "x":17.5, "y":5.5}]
|
||||
},
|
||||
"LAYOUT_b_ansi": {
|
||||
"layout": [
|
||||
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"PrtSc", "x":15.75, "y":0}, {"label":"Scroll Lock", "x":16.75, "y":0}, {"label":"Pause", "x":17.75, "y":0},
|
||||
{"label":"Fn", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"Home", "x":16.75, "y":1.25}, {"label":"PgUp", "x":17.75, "y":1.25},
|
||||
{"label":"Fn", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"End", "x":16.75, "y":2.25}, {"label":"PgDn", "x":17.75, "y":2.25},
|
||||
{"label":"Fn", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"label":"Enter", "x":14, "y":3.25, "w":2.25}, {"label":"Delete", "x":16.75, "y":3.25}, {"label":"Insert", "x":17.75, "y":3.25},
|
||||
{"label":"Fn", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"\u2191", "x":16.5, "y":4.5},
|
||||
{"label":"Fn", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.5, "y":5.5}, {"label":"\u2193", "x":16.5, "y":5.5}, {"label":"\u2192", "x":17.5, "y":5.5}]
|
||||
},
|
||||
"LAYOUT_b_iso": {
|
||||
"layout": [
|
||||
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"PrtSc", "x":15.75, "y":0}, {"label":"Scroll Lock", "x":16.75, "y":0}, {"label":"Pause", "x":17.75, "y":0},
|
||||
{"label":"Fn", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"Home", "x":16.75, "y":1.25}, {"label":"PgUp", "x":17.75, "y":1.25},
|
||||
{"label":"Fn", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, {"label":"End", "x":16.75, "y":2.25}, {"label":"PgDn", "x":17.75, "y":2.25},
|
||||
{"label":"Fn", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Delete", "x":16.75, "y":3.25}, {"label":"Insert", "x":17.75, "y":3.25},
|
||||
{"label":"Fn", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"\u2191", "x":16.5, "y":4.5},
|
||||
{"label":"Fn", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.5, "y":5.5}, {"label":"\u2193", "x":16.5, "y":5.5}, {"label":"\u2192", "x":17.5, "y":5.5}]
|
||||
},
|
||||
"LAYOUT_a_ansi": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.75, "y":0}, {"label":"F6", "x":6.75, "y":0}, {"label":"F7", "x":7.75, "y":0}, {"label":"F8", "x":8.75, "y":0}, {"label":"F9", "x":10.25, "y":0}, {"label":"F10", "x":11.25, "y":0}, {"label":"F11", "x":12.25, "y":0}, {"label":"F12", "x":13.25, "y":0}, {"label":"PrtSc", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1},
|
||||
{"label":"Fn", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25},
|
||||
{"label":"Fn", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"Mute", "x":17.75, "y":2.625},
|
||||
{"label":"Fn", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"label":"Enter", "x":14, "y":3.25, "w":2.25}, {"label":"Delete", "x":16.5, "y":3.25},
|
||||
{"label":"Fn", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"\u2191", "x":15.5, "y":4.5},
|
||||
{"label":"Fn", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25}, {"label":"Win", "x":2.5, "y":5.25, "w":1.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, {"x":5, "y":5.25, "w":6.25}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5}, {"label":"Enter", "x":17.75, "y":5.25}, {"label":"\u2190", "x":14.5, "y":5.5}, {"label":"\u2193", "x":15.5, "y":5.5}, {"label":"\u2192", "x":16.5, "y":5.5}]
|
||||
},
|
||||
"LAYOUT_a_iso": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.75, "y":0}, {"label":"F6", "x":6.75, "y":0}, {"label":"F7", "x":7.75, "y":0}, {"label":"F8", "x":8.75, "y":0}, {"label":"F9", "x":10.25, "y":0}, {"label":"F10", "x":11.25, "y":0}, {"label":"F11", "x":12.25, "y":0}, {"label":"F12", "x":13.25, "y":0}, {"label":"PrtSc", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1},
|
||||
{"label":"Fn", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25},
|
||||
{"label":"Fn", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"Mute", "x":17.75, "y":2.625},
|
||||
{"label":"Fn", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Delete", "x":16.5, "y":3.25},
|
||||
{"label":"Fn", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"\u2191", "x":15.5, "y":4.5},
|
||||
{"label":"Fn", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25}, {"label":"Win", "x":2.5, "y":5.25, "w":1.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, {"x":5, "y":5.25, "w":6.25}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5}, {"label":"Enter", "x":17.75, "y":5.25}, {"label":"\u2190", "x":14.5, "y":5.5}, {"label":"\u2193", "x":15.5, "y":5.5}, {"label":"\u2192", "x":16.5, "y":5.5}]
|
||||
}
|
||||
}
|
||||
}
|
||||
44
keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c
Normal file
44
keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_a_ansi(
|
||||
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_PSCR,KC_INS ,KC_HOME,KC_PGUP,
|
||||
RESET ,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_BSPC,KC_DEL ,KC_END ,KC_PGDN,
|
||||
BL_STEP,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_INS ,KC_MUTE,
|
||||
MO(1) ,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_DEL ,
|
||||
MO(1) ,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_PENT,
|
||||
MO(1) ,KC_LCTL,KC_LGUI,KC_LALT ,KC_SPC ,KC_RALT,KC_RCTL ,KC_LEFT,KC_DOWN,KC_RGHT,KC_PENT
|
||||
),
|
||||
[1] = LAYOUT_a_ansi(
|
||||
RESET ,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______ ,_______ ,
|
||||
MO(1) ,_______ ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______,
|
||||
MO(1) ,_______,_______,_______ ,_______ ,_______,_______, _______,_______,_______,_______
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
44
keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c
Normal file
44
keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_a_iso(
|
||||
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_PSCR,KC_INS ,KC_HOME,KC_PGUP,
|
||||
RESET ,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_BSPC,KC_DEL ,KC_END ,KC_PGDN,
|
||||
BL_STEP,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_INS ,KC_MUTE,
|
||||
MO(1) ,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_DEL ,
|
||||
MO(1) ,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_PENT,
|
||||
MO(1) ,KC_LCTL,KC_LGUI,KC_LALT ,KC_SPC ,KC_RALT,KC_RCTL ,KC_LEFT,KC_DOWN,KC_RGHT,KC_PENT
|
||||
),
|
||||
[1] = LAYOUT_a_iso(
|
||||
RESET ,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______ ,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______,
|
||||
MO(1) ,_______,_______,_______ ,_______ ,_______,_______, _______,_______,_______,_______
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
44
keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c
Normal file
44
keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_b_ansi(
|
||||
KC_MUTE,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_PSCR,KC_SLCK,KC_PAUS,
|
||||
RESET ,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_BSPC,KC_DEL ,KC_HOME,KC_PGUP,
|
||||
BL_STEP,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_END ,KC_PGDN,
|
||||
MO(1) ,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_DEL ,KC_INS ,
|
||||
MO(1) ,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,MO(1) ,KC_UP ,KC_PENT,
|
||||
MO(1) ,KC_LCTL,KC_LGUI,KC_LALT ,KC_SPC ,KC_RALT,KC_RGUI,KC_RCTL ,KC_LEFT,KC_DOWN,KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_b_ansi(
|
||||
RESET ,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______ ,_______,_______,
|
||||
MO(1) ,_______ ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,
|
||||
MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
44
keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c
Normal file
44
keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_b_iso(
|
||||
KC_MUTE,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_PSCR,KC_SLCK,KC_PAUS,
|
||||
RESET ,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_BSPC,KC_DEL ,KC_HOME,KC_PGUP,
|
||||
BL_STEP,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_END ,KC_PGDN,
|
||||
MO(1) ,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_DEL ,KC_INS ,
|
||||
MO(1) ,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 ,KC_PENT,
|
||||
MO(1) ,KC_LCTL,KC_LGUI,KC_LALT ,KC_SPC ,KC_RALT,KC_RGUI,KC_RCTL ,KC_LEFT,KC_DOWN,KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_b_iso(
|
||||
RESET ,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||
MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
44
keyboards/metamechs/timberwolf/keymaps/default/keymap.c
Normal file
44
keyboards/metamechs/timberwolf/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_all(
|
||||
KC_MUTE,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_INS ,KC_HOME,KC_PGUP,
|
||||
RESET ,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_BSPC,KC_DEL ,KC_END ,KC_PGDN,
|
||||
BL_STEP,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_PSCR,KC_SLCK,
|
||||
MO(1) ,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_DEL ,KC_INS ,
|
||||
MO(1) ,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_NO ,KC_UP ,KC_PENT,
|
||||
MO(1) ,KC_LCTL,KC_LGUI,KC_LALT ,KC_SPC ,KC_RALT,KC_RGUI,KC_RCTL,KC_LEFT,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO
|
||||
),
|
||||
[1] = LAYOUT_all(
|
||||
RESET ,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______,_______,_______,_______,_______,_______
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
44
keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c
Normal file
44
keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_prime_ansi(
|
||||
KC_MUTE,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_INS ,KC_HOME,KC_PGUP,
|
||||
RESET ,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_BSPC,KC_DEL ,KC_END ,KC_PGDN,
|
||||
BL_STEP,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_PSCR,KC_SLCK,
|
||||
MO(1) ,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_DEL ,KC_INS ,
|
||||
MO(1) ,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,MO(1) ,KC_UP ,KC_PENT,
|
||||
MO(1) ,KC_LCTL,KC_LGUI,KC_LALT ,KC_SPC ,KC_RALT,KC_RGUI,KC_RCTL ,KC_LEFT,KC_DOWN,KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_prime_ansi(
|
||||
RESET ,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______ ,_______,_______,
|
||||
MO(1) ,_______ ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,
|
||||
MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
44
keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c
Normal file
44
keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_prime_iso(
|
||||
KC_MUTE,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_INS ,KC_HOME,KC_PGUP,
|
||||
RESET ,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_BSPC,KC_DEL ,KC_END ,KC_PGDN,
|
||||
BL_STEP,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_PSCR,KC_SLCK,
|
||||
MO(1) ,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_DEL ,KC_INS ,
|
||||
MO(1) ,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 ,KC_PENT,
|
||||
MO(1) ,KC_LCTL,KC_LGUI,KC_LALT ,KC_SPC ,KC_RALT,KC_RGUI,KC_RCTL ,KC_LEFT,KC_DOWN,KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_prime_iso(
|
||||
RESET ,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||
MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
60
keyboards/metamechs/timberwolf/keymaps/via/keymap.c
Normal file
60
keyboards/metamechs/timberwolf/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,60 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT_all(
|
||||
KC_MUTE,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_INS ,KC_HOME,KC_PGUP,
|
||||
RESET ,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_BSPC,KC_DEL ,KC_END ,KC_PGDN,
|
||||
BL_STEP,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_PSCR,KC_SLCK,
|
||||
MO(1) ,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_DEL ,KC_INS ,
|
||||
MO(1) ,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 ,KC_NO ,KC_PENT,
|
||||
MO(1) ,KC_LCTL,KC_LGUI,KC_LALT ,KC_SPC ,KC_RALT,KC_RGUI,KC_RCTL,KC_LEFT,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO
|
||||
),
|
||||
[1] = LAYOUT_all(
|
||||
RESET ,RESET ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
MO(1) ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______,_______,_______,_______,_______,_______
|
||||
),
|
||||
[2] = LAYOUT_all(
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
_______,_______,_______,_______ ,_______ ,_______,_______,_______,_______,_______,_______,_______,_______
|
||||
),
|
||||
[3] = LAYOUT_all(
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,_______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______,_______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
_______,_______,_______,_______ ,_______ ,_______,_______,_______,_______,_______,_______,_______,_______
|
||||
)
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
21
keyboards/metamechs/timberwolf/readme.md
Normal file
21
keyboards/metamechs/timberwolf/readme.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# Timber Wolf
|
||||
|
||||

|
||||
|
||||
A compact TKL/XL 75% with rotary encoder and macro column.
|
||||
|
||||
* Keyboard Maintainer: [Croktopus](https://github.com/Croktopus)
|
||||
* Hardware Supported: Timber Wolf PCB using ATmega32u4
|
||||
* Hardware Availability: [GB ended October 2019](https://geekhack.org/index.php?topic=102520.0)
|
||||
|
||||
Make command depends on the physical layout you purchased - for example, if you purchased a TBR-Prime and want to use an ANSI layout, you would use:
|
||||
|
||||
make metamechs/timberwolf:prime_ansi
|
||||
|
||||
or for a TBR-B with ISO you would use:
|
||||
|
||||
make metamechs/timberwolf:b_iso
|
||||
|
||||
etc.
|
||||
|
||||
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).
|
||||
35
keyboards/metamechs/timberwolf/rules.mk
Normal file
35
keyboards/metamechs/timberwolf/rules.mk
Normal file
@@ -0,0 +1,35 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# ATmega32A bootloadHID
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
|
||||
ENCODER_ENABLE = yes # Enable encoder support
|
||||
|
||||
BACKLIGHT_DRIVER = software
|
||||
27
keyboards/metamechs/timberwolf/timberwolf.c
Normal file
27
keyboards/metamechs/timberwolf/timberwolf.c
Normal file
@@ -0,0 +1,27 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "timberwolf.h"
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool runDefault = led_update_user(led_state);
|
||||
if (led_state.caps_lock) {
|
||||
backlight_enable();
|
||||
} else {
|
||||
backlight_disable();
|
||||
}
|
||||
return runDefault;
|
||||
}
|
||||
175
keyboards/metamechs/timberwolf/timberwolf.h
Normal file
175
keyboards/metamechs/timberwolf/timberwolf.h
Normal file
@@ -0,0 +1,175 @@
|
||||
/* Copyright 2020 Croktopus
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define ____ KC_NO
|
||||
|
||||
#define LAYOUT_all( \
|
||||
K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K047, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, K067, K068, K078, \
|
||||
K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K087, K097, K088, K098, \
|
||||
K100, K110, K101, K111, K113, K105, K115, K106, K116, K107, K117, K108, K118 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, ____, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, ____, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, ____, K078 }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, K087, K088 }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, K097, K098 }, \
|
||||
{ K100, K101, ____, ____, ____, K105, K106, K107, K108 }, \
|
||||
{ K110, K111, ____, K113, ____, K115, K116, K117, K118 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_prime_ansi( \
|
||||
K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K047, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K067, K068, K078, \
|
||||
K080, K090, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K087, K088, K098, \
|
||||
K100, K110, K101, K111, K113, K105, K115, K106, K107, K117, K108 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, ____, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, ____, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, ____, ____, K078 }, \
|
||||
{ K080, ____, K082, K083, K084, K085, K086, K087, K088 }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, ____, K098 }, \
|
||||
{ K100, K101, ____, ____, ____, K105, K106, K107, K108 }, \
|
||||
{ K110, K111, ____, K113, ____, K115, ____, K117, ____ } \
|
||||
}
|
||||
|
||||
#define LAYOUT_prime_iso( \
|
||||
K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, K067, K068, K078, \
|
||||
K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K087, K097, K098, \
|
||||
K100, K110, K101, K111, K113, K105, K115, K106, K107, K117, K108 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, ____, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, ____, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, ____, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, ____, K078 }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, K087, ____ }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, K097, K098 }, \
|
||||
{ K100, K101, ____, ____, ____, K105, K106, K107, K108 }, \
|
||||
{ K110, K111, ____, K113, ____, K115, ____, K117, ____ } \
|
||||
}
|
||||
|
||||
#define LAYOUT_b_ansi( \
|
||||
K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K047, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K067, K068, K078, \
|
||||
K080, K090, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K087, K088, K098, \
|
||||
K100, K110, K101, K111, K113, K105, K115, K106, K107, K117, K108 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, ____, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, ____, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, ____, ____, K078 }, \
|
||||
{ K080, ____, K082, K083, K084, K085, K086, K087, K088 }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, ____, K098 }, \
|
||||
{ K100, K101, ____, ____, ____, K105, K106, K107, K108 }, \
|
||||
{ K110, K111, ____, K113, ____, K115, ____, K117, ____ } \
|
||||
}
|
||||
|
||||
#define LAYOUT_b_iso( \
|
||||
K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, K067, K068, K078, \
|
||||
K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K087, K097, K098, \
|
||||
K100, K110, K101, K111, K113, K105, K115, K106, K107, K117, K108 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, ____, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, ____, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, ____, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, ____, K078 }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, K087, ____ }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, K097, K098 }, \
|
||||
{ K100, K101, ____, ____, ____, K105, K106, K107, K108 }, \
|
||||
{ K110, K111, ____, K113, ____, K115, ____, K117, ____ } \
|
||||
}
|
||||
|
||||
#define LAYOUT_a_ansi( \
|
||||
K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K047, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K067, K068, \
|
||||
K080, K090, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K097, K098, \
|
||||
K100, K110, K101, K111, K113, K105, K115, K116, K107, K117, K118 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, ____, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, ____, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, ____, ____, ____ }, \
|
||||
{ K080, ____, K082, K083, K084, K085, K086, ____, ____ }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, K097, K098 }, \
|
||||
{ K100, K101, ____, ____, ____, K105, ____, K107, ____ }, \
|
||||
{ K110, K111, ____, K113, ____, K115, K116, K117, K118 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_a_iso( \
|
||||
K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, K067, K068, \
|
||||
K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K097, K098, \
|
||||
K100, K110, K101, K111, K113, K105, K115, K116, K107, K117, K118 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, ____, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, ____, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, ____, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, ____, ____ }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, ____, ____ }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, K097, K098 }, \
|
||||
{ K100, K101, ____, ____, ____, K105, ____, K107, ____ }, \
|
||||
{ K110, K111, ____, K113, ____, K115, K116, K117, K118 } \
|
||||
}
|
||||
@@ -60,6 +60,10 @@ diode)
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* ws2812 RGB LED */
|
||||
#define RGB_DI_PIN B6
|
||||
#define RGBLED_NUM 17
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
// #define BOOTMAGIC_LITE_ROW 0
|
||||
// #define BOOTMAGIC_LITE_COLUMN 0
|
||||
|
||||
96
keyboards/nightly_boards/alter/rev1/config.h
Normal file
96
keyboards/nightly_boards/alter/rev1/config.h
Normal file
@@ -0,0 +1,96 @@
|
||||
/*
|
||||
Copyright 2020 Neil Brian Ramirez
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x0717
|
||||
#define PRODUCT_ID 0x0002
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Neil Brian Ramirez
|
||||
#define PRODUCT Alter
|
||||
#define DESCRIPTION An Alice layout keyboard
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 8
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { F7, F6, F5, E6, D0, B7, D5, D3, D2, D1 }
|
||||
#define MATRIX_COL_PINS { C7, C6, B6, B5, B0, B1, B2, B3 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
// #define BACKLIGHT_PIN F1
|
||||
// #define BACKLIGHT_BREATHING
|
||||
// #define BACKLIGHT_LEVELS 3
|
||||
|
||||
#define RGB_DI_PIN F1
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLED_NUM 18
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
// /*== all animations enable ==*/
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
// /*== or choose animations ==*/
|
||||
// #define RGBLIGHT_EFFECT_BREATHING
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
// #define RGBLIGHT_EFFECT_SNAKE
|
||||
// #define RGBLIGHT_EFFECT_KNIGHT
|
||||
// #define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||
// /*== customize breathing effect ==*/
|
||||
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||
// /*==== use exp() and sin() ====*/
|
||||
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||
#endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
|
||||
|
||||
/* disable these deprecated features by default */
|
||||
#define NO_ACTION_MACRO
|
||||
#define NO_ACTION_FUNCTION
|
||||
|
||||
82
keyboards/nightly_boards/alter/rev1/info.json
Normal file
82
keyboards/nightly_boards/alter/rev1/info.json
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"keyboard_name": "Alter",
|
||||
"url": "",
|
||||
"maintainer": "Neil Brian Ramirez",
|
||||
"width": 20,
|
||||
"height": 5.25,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x":0.5, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
{"x":4, "y":0},
|
||||
{"x":5, "y":0},
|
||||
{"x":6, "y":0},
|
||||
{"x":7, "y":0},
|
||||
{"x":8, "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":0.25, "y":1},
|
||||
{"x":1.75, "y":1, "w":1.5},
|
||||
{"x":3.25, "y":1},
|
||||
{"x":4.25, "y":1},
|
||||
{"x":5.25, "y":1},
|
||||
{"x":6.25, "y":1},
|
||||
{"x":7.25, "y":1},
|
||||
{"x":11, "y":1},
|
||||
{"x":12, "y":1},
|
||||
{"x":13, "y":1},
|
||||
{"x":14, "y":1},
|
||||
{"x":15, "y":1},
|
||||
{"x":16, "y":1},
|
||||
{"x":17, "y":1},
|
||||
{"x":18, "y":1, "w":1.5},
|
||||
|
||||
{"x":0, "y":2},
|
||||
{"x":1.5, "y":2, "w":1.75},
|
||||
{"x":3.25, "y":2},
|
||||
{"x":4.5, "y":2},
|
||||
{"x":5.5, "y":2},
|
||||
{"x":6.5, "y":2},
|
||||
{"x":7.5, "y":2},
|
||||
{"x":11.25, "y":2},
|
||||
{"x":12.25, "y":2},
|
||||
{"x":13.25, "y":2},
|
||||
{"x":14.25, "y":2},
|
||||
{"x":15.5, "y":2},
|
||||
{"x":16.5, "y":2},
|
||||
{"x":17.5, "y":2, "w":2.25},
|
||||
|
||||
{"x":1.25, "y":3, "w":2.25},
|
||||
{"x":3.5, "y":3},
|
||||
{"x":5, "y":3},
|
||||
{"x":6, "y":3},
|
||||
{"x":7, "y":3},
|
||||
{"x":8, "y":3},
|
||||
{"x":10.75, "y":3},
|
||||
{"x":11.75, "y":3},
|
||||
{"x":12.75, "y":3},
|
||||
{"x":13.75, "y":3},
|
||||
{"x":15.25, "y":3},
|
||||
{"x":16.25, "y":3},
|
||||
{"x":17.25, "y":3, "w":1.75},
|
||||
{"x":19, "y":3},
|
||||
|
||||
{"x":1.25, "y":4, "w":1.5},
|
||||
{"x":5, "y":4, "w":1.5},
|
||||
{"x":6.5, "y":4, "w":2},
|
||||
{"x":8.5, "y":4, "w":1.25},
|
||||
{"x":10.5, "y":4, "w":2.75},
|
||||
{"x":13.25, "y":4, "w":1.5},
|
||||
{"x":18.25, "y":4, "w":1.5}]
|
||||
}
|
||||
}
|
||||
}
|
||||
33
keyboards/nightly_boards/alter/rev1/keymaps/default/keymap.c
Normal file
33
keyboards/nightly_boards/alter/rev1/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,33 @@
|
||||
/* Copyright 2020 Neil Brian Ramirez
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, 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_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_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RGUI, KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
RESET, _______, 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_BRIU, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______ , _______, KC_DEL,
|
||||
KC_BRID, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_HOME, KC_END, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
12
keyboards/nightly_boards/alter/rev1/readme.md
Normal file
12
keyboards/nightly_boards/alter/rev1/readme.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Alter
|
||||
|
||||
An Alice layout keyboard
|
||||
|
||||
* Keyboard Maintainer: [Neil Brian Ramirez](https://github.com/NightlyBoards)
|
||||
* Hardware Supported: atmega32u4
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make nightly_boards/alter/rev1:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
37
keyboards/nightly_boards/alter/rev1/rev1.c
Normal file
37
keyboards/nightly_boards/alter/rev1/rev1.c
Normal file
@@ -0,0 +1,37 @@
|
||||
/* Copyright 2020 Neil Brian Ramirez
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "rev1.h"
|
||||
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D7);
|
||||
setPinOutput(D6);
|
||||
setPinOutput(B4);
|
||||
}
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D7, led_state.num_lock);
|
||||
writePin(D6, led_state.caps_lock);
|
||||
writePin(B4, led_state.scroll_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
46
keyboards/nightly_boards/alter/rev1/rev1.h
Normal file
46
keyboards/nightly_boards/alter/rev1/rev1.h
Normal file
@@ -0,0 +1,46 @@
|
||||
/* Copyright 2020 Neil Brian Ramirez
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT( \
|
||||
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K17, K07, \
|
||||
K20, K30, K21, K31, K22, K32, K23, K24, K34, K25, K35, K26, K36, K27, K37, \
|
||||
K40, K50, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, \
|
||||
K70, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, K67, K77, \
|
||||
K90, K82, K92, K83, K84, K95, K87 \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07 }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17 }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27 }, \
|
||||
{ K30, K31, K32, KC_NO, K34, K35, K36, K37 }, \
|
||||
{ K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \
|
||||
{ K50, K51, K52, K53, K54, K55, K56, KC_NO }, \
|
||||
{ KC_NO, KC_NO, K62, K63, K64, K65, K66, K67 }, \
|
||||
{ K70, K71, K72, K73, K74, K75, K76, K77 }, \
|
||||
{ KC_NO, KC_NO, K82, K83, K84, KC_NO, KC_NO, K87 }, \
|
||||
{ K90, KC_NO, K92, KC_NO, KC_NO, K95, KC_NO, KC_NO }, \
|
||||
}
|
||||
31
keyboards/nightly_boards/alter/rev1/rules.mk
Normal file
31
keyboards/nightly_boards/alter/rev1/rules.mk
Normal file
@@ -0,0 +1,31 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# ATmega32A bootloadHID
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
3
keyboards/percent/skog_lite/keymaps/via/config.h
Normal file
3
keyboards/percent/skog_lite/keymaps/via/config.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
||||
44
keyboards/percent/skog_lite/keymaps/via/keymap.c
Normal file
44
keyboards/percent/skog_lite/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 mechmerlin
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi(
|
||||
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_PSCR,KC_SLCK,KC_PAUS,
|
||||
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_BSPC, KC_INS ,KC_HOME,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_DEL ,KC_END ,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_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT),
|
||||
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
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, 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, 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),
|
||||
|
||||
[2] = LAYOUT_tkl_ansi(
|
||||
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, 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, 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),
|
||||
|
||||
};
|
||||
5
keyboards/percent/skog_lite/keymaps/via/rules.mk
Normal file
5
keyboards/percent/skog_lite/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,5 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
|
||||
MOUSEKEY_ENABLE = no
|
||||
EXTRAKEY_ENABLE = no
|
||||
@@ -34,7 +34,7 @@ enum ilpse_layers {
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
enum skank_keycodes {
|
||||
enum ilpse_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
LOWER,
|
||||
RAISE,
|
||||
@@ -44,30 +44,30 @@ enum skank_keycodes {
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_BSPC,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LALT, LOWER, KC_LCMD, LT(_RAISE, KC_SPC), KC_LALT, KC_RGUI, KC_RCTL
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
|
||||
KC_LCTL, KC_LALT, LOWER, KC_LCMD, KC_SPC, RAISE, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, LOWER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_QUOT,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, LOWER, KC_TRNS, KC_TRNS, RAISE, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
|
||||
KC_TRNS, KC_TRNS, LOWER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_ENT,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, LOWER, KC_TRNS, KC_TRNS, RAISE, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT(
|
||||
RESET, 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_CAPS, 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,
|
||||
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,
|
||||
AG_TOGG, KC_TRNS, LOWER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
AG_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
@@ -18,8 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
enum my_layers {
|
||||
_QWERTY,
|
||||
_FNMS,
|
||||
_NAVMED
|
||||
_NAVMED,
|
||||
_FNMS
|
||||
};
|
||||
|
||||
#define FNMS MO(_FNMS)
|
||||
@@ -35,20 +35,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LCTL, KC_LALT, KC_LCMD, NAVMED, KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
|
||||
[_NAVMED] = LAYOUT_default(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_HOME, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
|
||||
KC_END, _______, _______, _______, _______, _______, KC_MPLY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, EEP_RST,
|
||||
_______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_FNMS] = LAYOUT_default(
|
||||
RGB_TOG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, RESET,
|
||||
VLK_TOG, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN2, _______, _______,
|
||||
_______, BL_INC, BL_DEC, BL_TOGG, BL_BRTG, _______, RGB_SAI, RGB_HUI, RGB_VAI, RGB_SAD, RGB_HUD, RGB_VAD, _______, _______,
|
||||
AG_TOGG, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_NAVMED] = LAYOUT_default(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_HOME, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, RESET,
|
||||
KC_END, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, EEP_RST,
|
||||
_______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
52
keyboards/rart/rart75/config.h
Normal file
52
keyboards/rart/rart75/config.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
Copyright 2020 Alabahuy
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x414C // "AL"
|
||||
#define PRODUCT_ID 0x0075 // "75"
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Alabahuy
|
||||
#define PRODUCT RART75
|
||||
#define DESCRIPTION 75% Mechanical Keyboard
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 16
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { F1, F4, F6, C7, D4, D0 }
|
||||
#define MATRIX_COL_PINS { D5, D3, D2, D1, C6, B6, B5, B4, D7, D6, B3, B1, F7, F5, B2, B7 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define ENCODERS_PAD_A { E6 }
|
||||
#define ENCODERS_PAD_B { B0 }
|
||||
197
keyboards/rart/rart75/info.json
Normal file
197
keyboards/rart/rart75/info.json
Normal file
@@ -0,0 +1,197 @@
|
||||
{
|
||||
"keyboard_name": "RART75",
|
||||
"url": "",
|
||||
"maintainer": "Alabahuy",
|
||||
"width": 16,
|
||||
"height": 6,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label" : "Esc", "x":0, "y":0},
|
||||
{"label" : "F1", "x":1.25, "y":0},
|
||||
{"label" : "F2", "x":2.25, "y":0},
|
||||
{"label" : "F3", "x":3.25, "y":0},
|
||||
{"label" : "F4", "x":4.25, "y":0},
|
||||
{"label" : "F5", "x":5.5, "y":0},
|
||||
{"label" : "F6", "x":6.5, "y":0},
|
||||
{"label" : "F7", "x":7.5, "y":0},
|
||||
{"label" : "F8", "x":8.5, "y":0},
|
||||
{"label" : "F9", "x":9.75, "y":0},
|
||||
{"label" : "F10", "x":10.75, "y":0},
|
||||
{"label" : "F11", "x":11.75, "y":0},
|
||||
{"label" : "F12", "x":12.75, "y":0},
|
||||
{"label" : "Delete", "x":14, "y":0},
|
||||
{"label" : "Insert", "x":15.5, "y":0},
|
||||
|
||||
{"label" : "`", "x":0, "y":1.25},
|
||||
{"label" : "1", "x":1, "y":1.25},
|
||||
{"label" : "2", "x":2, "y":1.25},
|
||||
{"label" : "3", "x":3, "y":1.25},
|
||||
{"label" : "4", "x":4, "y":1.25},
|
||||
{"label" : "5", "x":5, "y":1.25},
|
||||
{"label" : "6", "x":6, "y":1.25},
|
||||
{"label" : "7", "x":7, "y":1.25},
|
||||
{"label" : "8", "x":8, "y":1.25},
|
||||
{"label" : "9", "x":9, "y":1.25},
|
||||
{"label" : "0", "x":10, "y":1.25},
|
||||
{"label" : "-", "x":11, "y":1.25},
|
||||
{"label" : "=", "x":12, "y":1.25},
|
||||
{"label" : "/", "x":13, "y":1.25},
|
||||
{"label" : "Backspace", "x":14, "y":1.25},
|
||||
{"label" : "Page up", "x":15.5, "y":1.25},
|
||||
|
||||
{"label" : "Tab", "x":0, "y":2.25, "w":1.5},
|
||||
{"label" : "Q", "x":1.5, "y":2.25},
|
||||
{"label" : "W", "x":2.5, "y":2.25},
|
||||
{"label" : "E", "x":3.5, "y":2.25},
|
||||
{"label" : "R", "x":4.5, "y":2.25},
|
||||
{"label" : "T", "x":5.5, "y":2.25},
|
||||
{"label" : "Y", "x":6.5, "y":2.25},
|
||||
{"label" : "U", "x":7.5, "y":2.25},
|
||||
{"label" : "I", "x":8.5, "y":2.25},
|
||||
{"label" : "O", "x":9.5, "y":2.25},
|
||||
{"label" : "P", "x":10.5, "y":2.25},
|
||||
{"label" : "[", "x":11.5, "y":2.25},
|
||||
{"label" : "]", "x":12.5, "y":2.25},
|
||||
{"label" : "|", "x":13.5, "y":2.25, "w":1.5},
|
||||
{"label" : "Page down", "x":15.5, "y":2.25},
|
||||
|
||||
{"label" : "Caps lock", "x":0, "y":3.25, "w":1.75},
|
||||
{"label" : "A", "x":1.75, "y":3.25},
|
||||
{"label" : "S", "x":1.75, "y":3.25},
|
||||
{"label" : "D", "x":3.75, "y":3.25},
|
||||
{"label" : "F", "x":4.75, "y":3.25},
|
||||
{"label" : "G", "x":5.75, "y":3.25},
|
||||
{"label" : "H", "x":6.75, "y":3.25},
|
||||
{"label" : "J", "x":7.75, "y":3.25},
|
||||
{"label" : "K", "x":8.75, "y":3.25},
|
||||
{"label" : "L", "x":9.75, "y":3.25},
|
||||
{"label" : ";", "x":10.75, "y":3.25},
|
||||
{"label" : "'", "x":11.75, "y":3.25},
|
||||
{"label" : "Enter", "x":12.75, "y":3.25, "w":2.25},
|
||||
{"label" : "Home", "x":15.5, "y":3.25},
|
||||
|
||||
{"label" : "Shift", "x":0, "y":4.25, "w":2.25},
|
||||
{"label" : "Z", "x":2.25, "y":4.25},
|
||||
{"label" : "X", "x":3.25, "y":4.25},
|
||||
{"label" : "C", "x":4.25, "y":4.25},
|
||||
{"label" : "V", "x":5.25, "y":4.25},
|
||||
{"label" : "B", "x":6.25, "y":4.25},
|
||||
{"label" : "N", "x":7.25, "y":4.25},
|
||||
{"label" : "M", "x":8.25, "y":4.25},
|
||||
{"label" : ",", "x":9.25, "y":4.25},
|
||||
{"label" : ".", "x":10.25, "y":4.25},
|
||||
{"label" : "/", "x":11.25, "y":4.25},
|
||||
{"label" : "Shift", "x":12.25, "y":4.25, "w":1.75},
|
||||
{"label" : "Up", "x":14, "y":4.5},
|
||||
{"label" : "End", "x":15.5, "y":4.25},
|
||||
|
||||
{"label" : "Ctrl", "x":0, "y":5.25, "w":1.25},
|
||||
{"label" : "Windows", "x":1.25, "y":5.25, "w":1.25},
|
||||
{"label" : "Alt", "x":2.5, "y":5.25, "w":1.25},
|
||||
{"label" : "Space", "x":3.75, "y":5.25, "w":2.25},
|
||||
{"label" : "Fn", "x":6, "y":5.25, "w":1.25},
|
||||
{"label" : "Space", "x":7.25, "y":5.25, "w":2.75},
|
||||
{"label" : "Alt", "x":10, "y":5.25 },
|
||||
{"label" : "Windows","x":11, "y":5.25 },
|
||||
{"label" : "Ctrl", "x":12, "y":5.25 },
|
||||
{"label" : "Left", "x":13.25, "y":5.5 },
|
||||
{"label" : "Down", "x":14.25, "y":5.5 },
|
||||
{"label" : "Right", "x":15.25, "y":5.5 }
|
||||
]
|
||||
},
|
||||
|
||||
"LAYOUT_ansi": {
|
||||
"layout": [
|
||||
{"label" : "Esc", "x":0, "y":0},
|
||||
{"label" : "F1", "x":1.25, "y":0},
|
||||
{"label" : "F2", "x":2.25, "y":0},
|
||||
{"label" : "F3", "x":3.25, "y":0},
|
||||
{"label" : "F4", "x":4.25, "y":0},
|
||||
{"label" : "F5", "x":5.5, "y":0},
|
||||
{"label" : "F6", "x":6.5, "y":0},
|
||||
{"label" : "F7", "x":7.5, "y":0},
|
||||
{"label" : "F8", "x":8.5, "y":0},
|
||||
{"label" : "F9", "x":9.75, "y":0},
|
||||
{"label" : "F10", "x":10.75, "y":0},
|
||||
{"label" : "F11", "x":11.75, "y":0},
|
||||
{"label" : "F12", "x":12.75, "y":0},
|
||||
{"label" : "Delete", "x":14, "y":0},
|
||||
{"label" : "Encoder", "x":15.5, "y":0},
|
||||
|
||||
{"label" : "`", "x":0, "y":1.25},
|
||||
{"label" : "1", "x":1, "y":1.25},
|
||||
{"label" : "2", "x":2, "y":1.25},
|
||||
{"label" : "3", "x":3, "y":1.25},
|
||||
{"label" : "4", "x":4, "y":1.25},
|
||||
{"label" : "5", "x":5, "y":1.25},
|
||||
{"label" : "6", "x":6, "y":1.25},
|
||||
{"label" : "7", "x":7, "y":1.25},
|
||||
{"label" : "8", "x":8, "y":1.25},
|
||||
{"label" : "9", "x":9, "y":1.25},
|
||||
{"label" : "0", "x":10, "y":1.25},
|
||||
{"label" : "-", "x":11, "y":1.25},
|
||||
{"label" : "=", "x":12, "y":1.25},
|
||||
{"label" : "Backspace", "x":13, "y":1.25, "w":2},
|
||||
{"label" : "Page up", "x":15.5, "y":1.25},
|
||||
|
||||
{"label" : "Tab", "x":0, "y":2.25, "w":1.5},
|
||||
{"label" : "Q", "x":1.5, "y":2.25},
|
||||
{"label" : "W", "x":2.5, "y":2.25},
|
||||
{"label" : "E", "x":3.5, "y":2.25},
|
||||
{"label" : "R", "x":4.5, "y":2.25},
|
||||
{"label" : "T", "x":5.5, "y":2.25},
|
||||
{"label" : "Y", "x":6.5, "y":2.25},
|
||||
{"label" : "U", "x":7.5, "y":2.25},
|
||||
{"label" : "I", "x":8.5, "y":2.25},
|
||||
{"label" : "O", "x":9.5, "y":2.25},
|
||||
{"label" : "P", "x":10.5, "y":2.25},
|
||||
{"label" : "[", "x":11.5, "y":2.25},
|
||||
{"label" : "]", "x":12.5, "y":2.25},
|
||||
{"label" : "|", "x":13.5, "y":2.25, "w":1.5},
|
||||
{"label" : "Page down", "x":15.5, "y":2.25},
|
||||
|
||||
{"label" : "Caps lock", "x":0, "y":3.25, "w":1.75},
|
||||
{"label" : "A", "x":1.75, "y":3.25},
|
||||
{"label" : "S", "x":1.75, "y":3.25},
|
||||
{"label" : "D", "x":3.75, "y":3.25},
|
||||
{"label" : "F", "x":4.75, "y":3.25},
|
||||
{"label" : "G", "x":5.75, "y":3.25},
|
||||
{"label" : "H", "x":6.75, "y":3.25},
|
||||
{"label" : "J", "x":7.75, "y":3.25},
|
||||
{"label" : "K", "x":8.75, "y":3.25},
|
||||
{"label" : "L", "x":9.75, "y":3.25},
|
||||
{"label" : ";", "x":10.75, "y":3.25},
|
||||
{"label" : "'", "x":11.75, "y":3.25},
|
||||
{"label" : "Enter", "x":12.75, "y":3.25, "w":2.25},
|
||||
{"label" : "Home", "x":15.5, "y":3.25},
|
||||
|
||||
{"label" : "Shift", "x":0, "y":4.25, "w":2.25},
|
||||
{"label" : "Z", "x":2.25, "y":4.25},
|
||||
{"label" : "X", "x":3.25, "y":4.25},
|
||||
{"label" : "C", "x":4.25, "y":4.25},
|
||||
{"label" : "V", "x":5.25, "y":4.25},
|
||||
{"label" : "B", "x":6.25, "y":4.25},
|
||||
{"label" : "N", "x":7.25, "y":4.25},
|
||||
{"label" : "M", "x":8.25, "y":4.25},
|
||||
{"label" : ",", "x":9.25, "y":4.25},
|
||||
{"label" : ".", "x":10.25, "y":4.25},
|
||||
{"label" : "/", "x":11.25, "y":4.25},
|
||||
{"label" : "Shift", "x":12.25, "y":4.25, "w":1.75},
|
||||
{"label" : "Up", "x":14, "y":4.5},
|
||||
{"label" : "End", "x":15.5, "y":4.25},
|
||||
|
||||
{"label" : "Ctrl", "x":0, "y":5.25, "w":1.25},
|
||||
{"label" : "Windows", "x":1.25, "y":5.25, "w":1.25},
|
||||
{"label" : "Alt", "x":2.5, "y":5.25, "w":1.25},
|
||||
{"label" : "Space", "x":3.75, "y":5.25, "w":6.25},
|
||||
{"label" : "Alt", "x":10, "y":5.25 },
|
||||
{"label" : "Windows","x":11, "y":5.25 },
|
||||
{"label" : "Ctrl", "x":12, "y":5.25 },
|
||||
{"label" : "Left", "x":13.25, "y":5.5 },
|
||||
{"label" : "Down", "x":14.25, "y":5.5 },
|
||||
{"label" : "Right", "x":15.25, "y":5.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
48
keyboards/rart/rart75/keymaps/ansi/keymap.c
Normal file
48
keyboards/rart/rart75/keymaps/ansi/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
Copyright 2020 Alabahuy
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_ansi(
|
||||
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, MO(1), KC_INS,
|
||||
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_BSPC, KC_HOME,
|
||||
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_END,
|
||||
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,
|
||||
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,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
}
|
||||
48
keyboards/rart/rart75/keymaps/default/keymap.c
Normal file
48
keyboards/rart/rart75/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
Copyright 2020 Alabahuy
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
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_INS, KC_MPLY,
|
||||
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_DEL, KC_BSPC, KC_HOME,
|
||||
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_END,
|
||||
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,
|
||||
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,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
}
|
||||
15
keyboards/rart/rart75/rart75.c
Normal file
15
keyboards/rart/rart75/rart75.c
Normal file
@@ -0,0 +1,15 @@
|
||||
/* Copyright 2020 Alabahuy
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "rart75.h"
|
||||
46
keyboards/rart/rart75/rart75.h
Normal file
46
keyboards/rart/rart75/rart75.h
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT_all( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K0A, K0B, K0C, K0D, K0E, K0F, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3F, \
|
||||
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4E, K4F, \
|
||||
K50, K51, K52, K53, K54, K57, K58, K59, K5A, K5B, K5E, K5F \
|
||||
) \
|
||||
{ \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, KC_NO, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, K3F }, \
|
||||
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, KC_NO, K4E, K4F }, \
|
||||
{ K50, K51, K52, K53, K54, KC_NO, KC_NO, K57, K58, K59, K5A, K5B, KC_NO, KC_NO, K5E, K5F }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_ansi( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K0A, K0B, K0C, K0D, K0E, K0F, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3F, \
|
||||
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4E, K4F, \
|
||||
K50, K51, K52, K54, K58, K59, K5A, K5B, K5E, K5F \
|
||||
) \
|
||||
{ \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, KC_NO, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, K1F }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, K3F }, \
|
||||
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, KC_NO, K4E, K4F }, \
|
||||
{ K50, K51, K52, KC_NO, K54, KC_NO, KC_NO, KC_NO, K58, K59, K5A, K5B, KC_NO, KC_NO, K5E, K5F }, \
|
||||
}
|
||||
15
keyboards/rart/rart75/readme.md
Normal file
15
keyboards/rart/rart75/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# [RART 75](https://github.com/alabahuy/RART/tree/master/RART75)
|
||||
|
||||

|
||||
|
||||
75% pcb with encoder, based on IMKG (Indonesia Mechanical Keyboard Group)
|
||||
|
||||
* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy)
|
||||
* Hardware Supported: RART75 PCB, Atmega32U4, Mini USB, Encoders
|
||||
* Hardware Availability: Private GB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make rart/rart75:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
34
keyboards/rart/rart75/rules.mk
Normal file
34
keyboards/rart/rart75/rules.mk
Normal file
@@ -0,0 +1,34 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# ATmega32A bootloadHID
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
ENCODER_ENABLE = yes
|
||||
|
||||
29
keyboards/wilba_tech/wt60_d/keymaps/madhatter/keymap.c
Normal file
29
keyboards/wilba_tech/wt60_d/keymaps/madhatter/keymap.c
Normal file
@@ -0,0 +1,29 @@
|
||||
// Default layout for WT60-D
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum my_layers {
|
||||
_QWERTY,
|
||||
_FNMS,
|
||||
};
|
||||
|
||||
#define FNMS MO(_FNMS)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// Default layer
|
||||
[_QWERTY] = LAYOUT_all(
|
||||
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_DEL,
|
||||
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_BSPC,
|
||||
KC_GRV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FNMS,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RGUI, FNMS, KC_RCTL),
|
||||
|
||||
// Fn1 Layer
|
||||
[_FNMS] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSLS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET,
|
||||
AG_TOGG, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_PGUP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
};
|
||||
1
keyboards/wilba_tech/wt60_d/keymaps/madhatter/rules.mk
Normal file
1
keyboards/wilba_tech/wt60_d/keymaps/madhatter/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
MOUSEKEY_ENABLE = yes
|
||||
218
keyboards/x16/config.h
Normal file
218
keyboards/x16/config.h
Normal file
@@ -0,0 +1,218 @@
|
||||
/* Copyright 2019
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4B50
|
||||
#define PRODUCT_ID 0x016A
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER yinxianwei
|
||||
#define PRODUCT x16
|
||||
#define DESCRIPTION Keyboard
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 4
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { E6, F7, D6, B6 }
|
||||
#define MATRIX_COL_PINS { C7, C6, B4, D7 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/*
|
||||
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||
*/
|
||||
//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
|
||||
|
||||
#define BACKLIGHT_PIN B5
|
||||
// #define BACKLIGHT_BREATHING
|
||||
#define BACKLIGHT_LEVELS 5
|
||||
|
||||
// #define RGB_DI_PIN E2
|
||||
// #define RGBLED_NUM 4
|
||||
// #define RGBLIGHT_ANIMATIONS
|
||||
// #ifdef RGB_DI_PIN
|
||||
// #define RGBLED_NUM 16
|
||||
// #define RGBLIGHT_HUE_STEP 8
|
||||
// #define RGBLIGHT_SAT_STEP 8
|
||||
// #define RGBLIGHT_VAL_STEP 8
|
||||
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
// /*== all animations enable ==*/
|
||||
// #define RGBLIGHT_ANIMATIONS
|
||||
// /*== or choose animations ==*/
|
||||
// #define RGBLIGHT_EFFECT_BREATHING
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
// #define RGBLIGHT_EFFECT_SNAKE
|
||||
// #define RGBLIGHT_EFFECT_KNIGHT
|
||||
// #define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||
// #endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* number of backlight levels */
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
/* defined by default; to change, uncomment and set to the combination you want */
|
||||
// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP H
|
||||
//#define MAGIC_KEY_HELP_ALT SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER0_ALT GRAVE
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER B
|
||||
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
//#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
// #define BOOTMAGIC_LITE_ROW 0
|
||||
// #define BOOTMAGIC_LITE_COLUMN 0
|
||||
33
keyboards/x16/info.json
Normal file
33
keyboards/x16/info.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"keyboard_name": "x16",
|
||||
"url": "",
|
||||
"maintainer": "yinxianwei",
|
||||
"width": 4,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_4x4": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
|
||||
{"x":0, "y":1},
|
||||
{"x":1, "y":1},
|
||||
{"x":2, "y":1},
|
||||
{"x":3, "y":1},
|
||||
|
||||
{"x":0, "y":2},
|
||||
{"x":1, "y":2},
|
||||
{"x":2, "y":2},
|
||||
{"x":3, "y":2},
|
||||
|
||||
{"x":0, "y":3},
|
||||
{"x":1, "y":3},
|
||||
{"x":2, "y":3},
|
||||
{"x":3, "y":3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
27
keyboards/x16/keymaps/default/keymap.c
Normal file
27
keyboards/x16/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,27 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┐
|
||||
* │ 7 │ 8 │ 9 │BAC│
|
||||
* ├───┼───┼───┤───┤
|
||||
* │ 4 │ 5 │ 6 │VOU│
|
||||
* ├───┼───┼───┼───┤
|
||||
* │ 1 │ 2 │ 3 │VOD│
|
||||
* ├───┼───┼───┤───┤
|
||||
* │MO1│ 0 │ . │ENT│
|
||||
* └───┴───┴───┴───┘
|
||||
*/
|
||||
[0] = LAYOUT_ortho_4x4(
|
||||
KC_P7, KC_P8, KC_P9, KC_BSPC,
|
||||
KC_P4, KC_P5, KC_P6, KC_VOLU,
|
||||
KC_P1, KC_P2, KC_P3, KC_VOLD,
|
||||
MO(1), KC_P0, KC_DOT, KC_ENT
|
||||
),
|
||||
[1] = LAYOUT_ortho_4x4(
|
||||
RESET, KC_TRNS, KC_TRNS, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY
|
||||
)
|
||||
};
|
||||
13
keyboards/x16/readme.md
Normal file
13
keyboards/x16/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# x16
|
||||
|
||||
A 16 key macropad, with USB C
|
||||
|
||||
* Keyboard Maintainer: QMK Community
|
||||
* Hardware Supported: The PCBs, controllers supported
|
||||
* Hardware Availability: The x16 was discontinued by [x16](https://yinxianwei.github.io/x16/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make x16:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
31
keyboards/x16/rules.mk
Normal file
31
keyboards/x16/rules.mk
Normal file
@@ -0,0 +1,31 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# ATmega32A bootloadHID
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
16
keyboards/x16/x16.c
Normal file
16
keyboards/x16/x16.c
Normal file
@@ -0,0 +1,16 @@
|
||||
/* Copyright 2019
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "x16.h"
|
||||
39
keyboards/x16/x16.h
Normal file
39
keyboards/x16/x16.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Copyright 2019
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT_ortho_4x4( \
|
||||
K01, K02, K03, K04, \
|
||||
K11, K12, K13, K14, \
|
||||
K21, K22, K23, K24, \
|
||||
K31, K32, K33, K34 \
|
||||
) \
|
||||
{ \
|
||||
{ K01, K02, K03, K04 }, \
|
||||
{ K11, K12, K13, K14 }, \
|
||||
{ K21, K22, K23, K24 }, \
|
||||
{ K31, K32, K33, K34 } \
|
||||
}
|
||||
@@ -20,6 +20,12 @@
|
||||
|
||||
#include "musical_notes.h"
|
||||
|
||||
#if __GNUC__ > 5 // don't use for older gcc compilers since check isn't supported.
|
||||
# if __has_include("user_song_list.h")
|
||||
# include "user_song_list.h"
|
||||
# endif // if file exists
|
||||
#endif // __GNUC__
|
||||
|
||||
#define NO_SOUND
|
||||
|
||||
/* Ode to Joy
|
||||
@@ -146,44 +152,126 @@
|
||||
* proof of permission to use them, or public domain status.
|
||||
*/
|
||||
|
||||
#define CLOSE_ENCOUNTERS_5_NOTE
|
||||
#define DOE_A_DEER
|
||||
#define IN_LIKE_FLINT
|
||||
#define IMPERIAL_MARCH
|
||||
#define BASKET_CASE
|
||||
#define COIN_SOUND
|
||||
#define ONE_UP_SOUND
|
||||
#define SONIC_RING
|
||||
#define ZELDA_PUZZLE
|
||||
#define ZELDA_TREASURE
|
||||
#define OVERWATCH_THEME
|
||||
#define MARIO_THEME
|
||||
#define MARIO_GAMEOVER
|
||||
#define MARIO_MUSHROOM
|
||||
#define E1M1_DOOM
|
||||
#define DISNEY_SONG
|
||||
#define NUMBER_ONE
|
||||
#define CABBAGE_SONG
|
||||
#define OLD_SPICE
|
||||
#define VICTORY_FANFARE_SHORT
|
||||
#define ALL_STAR
|
||||
#define RICK_ROLL
|
||||
#define FF_PRELUDE
|
||||
#define TO_BOLDLY_GO
|
||||
#define KATAWARE_DOKI
|
||||
#define MEGALOVANIA
|
||||
#define MICHISHIRUBE
|
||||
#define LIEBESLEID
|
||||
#define MELODIES_OF_LIFE
|
||||
#define EYES_ON_ME
|
||||
#define SONG_OF_THE_ANCIENTS
|
||||
#define NIER_AMUSEMENT_PARK
|
||||
#define COPIED_CITY
|
||||
#define VAGUE_HOPE_COLD_RAIN
|
||||
#define KAINE_SALVATION
|
||||
#define WEIGHT_OF_THE_WORLD
|
||||
#define ISABELLAS_LULLABY
|
||||
#define TERRAS_THEME
|
||||
#define RENAI_CIRCULATION
|
||||
#define PLATINUM_DISCO
|
||||
#define LP_NUMB
|
||||
#ifndef CLOSE_ENCOUNTERS_5_NOTE
|
||||
# define CLOSE_ENCOUNTERS_5_NOTE
|
||||
#endif
|
||||
#ifndef DOE_A_DEER
|
||||
# define DOE_A_DEER
|
||||
#endif
|
||||
#ifndef IN_LIKE_FLINT
|
||||
# define IN_LIKE_FLINT
|
||||
#endif
|
||||
#ifndef IMPERIAL_MARCH
|
||||
# define IMPERIAL_MARCH
|
||||
#endif
|
||||
#ifndef BASKET_CASE
|
||||
# define BASKET_CASE
|
||||
#endif
|
||||
#ifndef COIN_SOUND
|
||||
# define COIN_SOUND
|
||||
#endif
|
||||
#ifndef ONE_UP_SOUND
|
||||
# define ONE_UP_SOUND
|
||||
#endif
|
||||
#ifndef SONIC_RING
|
||||
# define SONIC_RING
|
||||
#endif
|
||||
#ifndef ZELDA_PUZZLE
|
||||
# define ZELDA_PUZZLE
|
||||
#endif
|
||||
#ifndef ZELDA_TREASURE
|
||||
# define ZELDA_TREASURE
|
||||
#endif
|
||||
#ifndef OVERWATCH_THEME
|
||||
# define OVERWATCH_THEME
|
||||
#endif
|
||||
#ifndef MARIO_THEME
|
||||
# define MARIO_THEME
|
||||
#endif
|
||||
#ifndef MARIO_GAMEOVER
|
||||
# define MARIO_GAMEOVER
|
||||
#endif
|
||||
#ifndef MARIO_MUSHROOM
|
||||
# define MARIO_MUSHROOM
|
||||
#endif
|
||||
#ifndef E1M1_DOOM
|
||||
# define E1M1_DOOM
|
||||
#endif
|
||||
#ifndef DISNEY_SONG
|
||||
# define DISNEY_SONG
|
||||
#endif
|
||||
#ifndef NUMBER_ONE
|
||||
# define NUMBER_ONE
|
||||
#endif
|
||||
#ifndef CABBAGE_SONG
|
||||
# define CABBAGE_SONG
|
||||
#endif
|
||||
#ifndef OLD_SPICE
|
||||
# define OLD_SPICE
|
||||
#endif
|
||||
#ifndef VICTORY_FANFARE_SHORT
|
||||
# define VICTORY_FANFARE_SHORT
|
||||
#endif
|
||||
#ifndef ALL_STAR
|
||||
# define ALL_STAR
|
||||
#endif
|
||||
#ifndef RICK_ROLL
|
||||
# define RICK_ROLL
|
||||
#endif
|
||||
#ifndef FF_PRELUDE
|
||||
# define FF_PRELUDE
|
||||
#endif
|
||||
#ifndef TO_BOLDLY_GO
|
||||
# define TO_BOLDLY_GO
|
||||
#endif
|
||||
#ifndef KATAWARE_DOKI
|
||||
# define KATAWARE_DOKI
|
||||
#endif
|
||||
#ifndef MEGALOVANIA
|
||||
# define MEGALOVANIA
|
||||
#endif
|
||||
#ifndef MICHISHIRUBE
|
||||
# define MICHISHIRUBE
|
||||
#endif
|
||||
#ifndef LIEBESLEID
|
||||
# define LIEBESLEID
|
||||
#endif
|
||||
#ifndef MELODIES_OF_LIFE
|
||||
# define MELODIES_OF_LIFE
|
||||
#endif
|
||||
#ifndef EYES_ON_ME
|
||||
# define EYES_ON_ME
|
||||
#endif
|
||||
#ifndef SONG_OF_THE_ANCIENTS
|
||||
# define SONG_OF_THE_ANCIENTS
|
||||
#endif
|
||||
#ifndef NIER_AMUSEMENT_PARK
|
||||
# define NIER_AMUSEMENT_PARK
|
||||
#endif
|
||||
#ifndef COPIED_CITY
|
||||
# define COPIED_CITY
|
||||
#endif
|
||||
#ifndef VAGUE_HOPE_COLD_RAIN
|
||||
# define VAGUE_HOPE_COLD_RAIN
|
||||
#endif
|
||||
#ifndef KAINE_SALVATION
|
||||
# define KAINE_SALVATION
|
||||
#endif
|
||||
#ifndef WEIGHT_OF_THE_WORLD
|
||||
# define WEIGHT_OF_THE_WORLD
|
||||
#endif
|
||||
#ifndef ISABELLAS_LULLABY
|
||||
# define ISABELLAS_LULLABY
|
||||
#endif
|
||||
#ifndef TERRAS_THEME
|
||||
# define TERRAS_THEME
|
||||
#endif
|
||||
#ifndef RENAI_CIRCULATION
|
||||
# define RENAI_CIRCULATION
|
||||
#endif
|
||||
#ifndef PLATINUM_DISCO
|
||||
# define PLATINUM_DISCO
|
||||
#endif
|
||||
#ifndef LP_NUMB
|
||||
# define LP_NUMB
|
||||
#endif
|
||||
|
||||
@@ -249,8 +249,11 @@ void set_single_persistent_default_layer(uint8_t default_layer);
|
||||
|
||||
void tap_random_base64(void);
|
||||
|
||||
#define IS_LAYER_ON(layer) (layer_state & (1UL << (layer)))
|
||||
#define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer)))
|
||||
#define IS_LAYER_ON(layer) layer_state_is(layer)
|
||||
#define IS_LAYER_OFF(layer) !layer_state_is(layer)
|
||||
|
||||
#define IS_LAYER_ON_STATE(state, layer) layer_state_cmp(state, layer)
|
||||
#define IS_LAYER_OFF_STATE(state, layer) !layer_state_cmp(state, layer)
|
||||
|
||||
void matrix_init_kb(void);
|
||||
void matrix_scan_kb(void);
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
/*
|
||||
Copyright 2011 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
* Copyright 2011 Jun Wako <wakojun@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include "keycode.h"
|
||||
@@ -66,6 +66,8 @@ uint8_t mk_wheel_interval = MOUSEKEY_WHEEL_INTERVAL;
|
||||
uint8_t mk_wheel_max_speed = MOUSEKEY_WHEEL_MAX_SPEED;
|
||||
uint8_t mk_wheel_time_to_max = MOUSEKEY_WHEEL_TIME_TO_MAX;
|
||||
|
||||
# ifndef MK_COMBINED
|
||||
|
||||
static uint8_t move_unit(void) {
|
||||
uint16_t unit;
|
||||
if (mousekey_accel & (1 << 0)) {
|
||||
@@ -102,6 +104,46 @@ static uint8_t wheel_unit(void) {
|
||||
return (unit > MOUSEKEY_WHEEL_MAX ? MOUSEKEY_WHEEL_MAX : (unit == 0 ? 1 : unit));
|
||||
}
|
||||
|
||||
# else /* #ifndef MK_COMBINED */
|
||||
|
||||
static uint8_t move_unit(void) {
|
||||
uint16_t unit;
|
||||
if (mousekey_accel & (1 << 0)) {
|
||||
unit = 1;
|
||||
} else if (mousekey_accel & (1 << 1)) {
|
||||
unit = (MOUSEKEY_MOVE_DELTA * mk_max_speed) / 2;
|
||||
} else if (mousekey_accel & (1 << 2)) {
|
||||
unit = MOUSEKEY_MOVE_MAX;
|
||||
} else if (mousekey_repeat == 0) {
|
||||
unit = MOUSEKEY_MOVE_DELTA;
|
||||
} else if (mousekey_repeat >= mk_time_to_max) {
|
||||
unit = MOUSEKEY_MOVE_DELTA * mk_max_speed;
|
||||
} else {
|
||||
unit = (MOUSEKEY_MOVE_DELTA * mk_max_speed * mousekey_repeat) / mk_time_to_max;
|
||||
}
|
||||
return (unit > MOUSEKEY_MOVE_MAX ? MOUSEKEY_MOVE_MAX : (unit == 0 ? 1 : unit));
|
||||
}
|
||||
|
||||
static uint8_t wheel_unit(void) {
|
||||
uint16_t unit;
|
||||
if (mousekey_accel & (1 << 0)) {
|
||||
unit = 1;
|
||||
} else if (mousekey_accel & (1 << 1)) {
|
||||
unit = (MOUSEKEY_WHEEL_DELTA * mk_wheel_max_speed) / 2;
|
||||
} else if (mousekey_accel & (1 << 2)) {
|
||||
unit = MOUSEKEY_WHEEL_MAX;
|
||||
} else if (mousekey_repeat == 0) {
|
||||
unit = MOUSEKEY_WHEEL_DELTA;
|
||||
} else if (mousekey_repeat >= mk_wheel_time_to_max) {
|
||||
unit = MOUSEKEY_WHEEL_DELTA * mk_wheel_max_speed;
|
||||
} else {
|
||||
unit = (MOUSEKEY_WHEEL_DELTA * mk_wheel_max_speed * mousekey_repeat) / mk_wheel_time_to_max;
|
||||
}
|
||||
return (unit > MOUSEKEY_WHEEL_MAX ? MOUSEKEY_WHEEL_MAX : (unit == 0 ? 1 : unit));
|
||||
}
|
||||
|
||||
# endif /* #ifndef MK_COMBINED */
|
||||
|
||||
void mousekey_task(void) {
|
||||
// report cursor and scroll movement independently
|
||||
report_mouse_t const tmpmr = mouse_report;
|
||||
|
||||
@@ -48,9 +48,6 @@
|
||||
#define LCT_CPS LCTL_T(KC_CAPS)
|
||||
#define RSF_SLS RSFT_T(KC_SLSH)
|
||||
|
||||
#define IS_LAYER_ON_STATE(state, layer) ( (state) & (1UL << (layer)))
|
||||
#define IS_LAYER_OFF_STATE(state, layer) (~(state) & (1UL << (layer)))
|
||||
|
||||
// Clear mods, perform action, restore mods
|
||||
#define CLEAN_MODS(action) { \
|
||||
uint8_t mods = get_mods(); \
|
||||
|
||||
@@ -5,7 +5,6 @@ function export_variables {
|
||||
export PATH=$PATH:$util_dir
|
||||
export PATH=$PATH:$util_dir/dfu-programmer
|
||||
export PATH=$PATH:$util_dir/dfu-util-0.9-win64
|
||||
export PATH=$PATH:$util_dir/bootloadHID.2012-12-08/commandline
|
||||
export PATH=$PATH:$util_dir/avr8-gnu-toolchain/bin
|
||||
export PATH=$PATH:$util_dir/gcc-arm-none-eabi/bin
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ function export_variables {
|
||||
export DFU_PROGRAMMER=$download_dir/dfu-programmer/dfu-programmer.exe
|
||||
export DFU_UTIL=$download_dir/dfu-util-0.9-win64/dfu-util.exe
|
||||
export TEENSY_LOADER_CLI=$download_dir/teensy_loader_cli.exe
|
||||
export BOOTLOADHID_PROGRAMMER=$download_dir/bootloadHID.2012-12-08/commandline/bootloadHID.exe
|
||||
}
|
||||
|
||||
export_variables
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# Driver can be one of winusb,libusb,libusbk
|
||||
# Use Windows Powershell and type [guid]::NewGuid() to generate guids
|
||||
winusb,STM32 Bootloader,0483,DF11,6d98a87f-4ecf-464d-89ed-8c684d857a75
|
||||
libusb,USBaspLoader,16C0,05DC,e69affdc-0ef0-427c-aefb-4e593c9d2724
|
||||
libusbk,USBaspLoader,16C0,05DC,e69affdc-0ef0-427c-aefb-4e593c9d2724
|
||||
winusb,Kiibohd DFU Bootloader,1C11,B007,aa5a3f86-b81e-4416-89ad-0c1ea1ed63af
|
||||
libusb,ATmega16U2,03EB,2FEF,007274da-b75f-492e-a288-8fc0aff8339f
|
||||
libusb,ATmega32U2,03EB,2FF0,ddc2c572-cb6e-4f61-a6cc-1a5de941f063
|
||||
|
||||
@@ -20,10 +20,7 @@ function install_avr {
|
||||
rm avr8-gnu-toolchain/bin/make.exe
|
||||
rm avr-gcc-8.3.0-x86-mingw.zip
|
||||
|
||||
# FIXME: As of 2020-05-19, the MSYS2 avrdude cannot flash USBaspLoader devices, for some reason
|
||||
# (warning: cannot set sck period)
|
||||
# However, the avr-gcc toolchain above contains an avrdude which can, so let's just not install this for now
|
||||
#pacman --needed --disable-download-timeout -S mingw-w64-x86_64-avrdude
|
||||
pacman --needed --disable-download-timeout -S mingw-w64-x86_64-avrdude mingw-w64-x86_64-bootloadhid
|
||||
}
|
||||
|
||||
function install_arm {
|
||||
|
||||
@@ -18,10 +18,6 @@ function install_utils {
|
||||
wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip'
|
||||
unzip teensy_loader_cli_windows.zip
|
||||
|
||||
echo "Installing bootloadHID"
|
||||
wget 'https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.zip'
|
||||
unzip bootloadHID.2012-12-08.zip
|
||||
|
||||
echo "Downloading the QMK driver installer"
|
||||
wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i -
|
||||
|
||||
|
||||
Reference in New Issue
Block a user