Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1110fe6c6f | ||
|
|
eefc05e078 | ||
|
|
f1e09dd388 | ||
|
|
0def9ed528 | ||
|
|
c73125eea7 | ||
|
|
306d02aa93 | ||
|
|
b8ddfd34ec | ||
|
|
14eccef7bf | ||
|
|
aab5c44c7d | ||
|
|
563d5919b3 | ||
|
|
0fee906e09 | ||
|
|
c2fd7f1b5b | ||
|
|
faa3e62e70 | ||
|
|
5f5a6fff8b | ||
|
|
f1c33423b0 | ||
|
|
5f8e8540fb | ||
|
|
4f6f7b59cf | ||
|
|
e2e287ec5f |
@@ -197,6 +197,8 @@ If you define these options you will enable the associated feature, which may in
|
|||||||
* Note: Increasing the maximum will increase the firmware size and slow sync on split keyboards.
|
* Note: Increasing the maximum will increase the firmware size and slow sync on split keyboards.
|
||||||
* `#define RGBLIGHT_LAYER_BLINK`
|
* `#define RGBLIGHT_LAYER_BLINK`
|
||||||
* Adds ability to [blink](feature_rgblight.md?id=lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action).
|
* Adds ability to [blink](feature_rgblight.md?id=lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action).
|
||||||
|
* `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF`
|
||||||
|
* If defined, then [lighting layers](feature_rgblight?id=overriding-rgb-lighting-onoff-status) will be shown even if RGB Light is off.
|
||||||
* `#define RGBLED_NUM 12`
|
* `#define RGBLED_NUM 12`
|
||||||
* number of LEDs
|
* number of LEDs
|
||||||
* `#define RGBLIGHT_SPLIT`
|
* `#define RGBLIGHT_SPLIT`
|
||||||
|
|||||||
@@ -278,6 +278,10 @@ void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Overriding RGB Lighting on/off status
|
||||||
|
|
||||||
|
Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `RGB_TOG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`.
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
If you need to change your RGB lighting in code, for example in a macro to change the color whenever you switch layers, QMK provides a set of functions to assist you. See [`rgblight.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight.h) for the full list, but the most commonly used functions include:
|
If you need to change your RGB lighting in code, for example in a macro to change the color whenever you switch layers, QMK provides a set of functions to assist you. See [`rgblight.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight.h) for the full list, but the most commonly used functions include:
|
||||||
|
|||||||
127
docs/ja/feature_mouse_keys.md
Normal file
127
docs/ja/feature_mouse_keys.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
# マウスキー
|
||||||
|
|
||||||
|
<!---
|
||||||
|
original document: 0.8.141:docs/feature_mouse_keys.md
|
||||||
|
git diff 0.8.141 HEAD -- docs/feature_mouse_keys.md | cat
|
||||||
|
-->
|
||||||
|
|
||||||
|
マウスキーは、キーボードを使ってマウスをエミュレートできる機能です。様々な速度でポインタを移動し、5つのボタンを押し、8方向にスクロールすることができます。
|
||||||
|
|
||||||
|
## キーボードにマウスキーを追加
|
||||||
|
|
||||||
|
マウスキーを使うためには、少なくともマウスキーサポートを有効にし、マウスアクションをキーボードのキーにマップする必要があります。
|
||||||
|
|
||||||
|
### マウスキーを有効にする
|
||||||
|
|
||||||
|
マウスキーを有効にするには、キーマップの `rules.mk` に以下の行を追加します:
|
||||||
|
|
||||||
|
```c
|
||||||
|
MOUSEKEY_ENABLE = yes
|
||||||
|
```
|
||||||
|
|
||||||
|
### マウスアクションのマッピング
|
||||||
|
|
||||||
|
キーマップでキー押下をマウスアクションにマップするために、以下のキーコードを使うことができます:
|
||||||
|
|
||||||
|
| キー | エイリアス | 説明 |
|
||||||
|
|----------------|---------|-----------------|
|
||||||
|
| `KC_MS_UP` | `KC_MS_U` | カーソルを上に移動 |
|
||||||
|
| `KC_MS_DOWN` | `KC_MS_D` | カーソルを下に移動 |
|
||||||
|
| `KC_MS_LEFT` | `KC_MS_L` | カーソルを左に移動 |
|
||||||
|
| `KC_MS_RIGHT` | `KC_MS_R` | カーソルを右に移動 |
|
||||||
|
| `KC_MS_BTN1` | `KC_BTN1` | ボタン1を押す |
|
||||||
|
| `KC_MS_BTN2` | `KC_BTN2` | ボタン2を押す |
|
||||||
|
| `KC_MS_BTN3` | `KC_BTN3` | ボタン3を押す |
|
||||||
|
| `KC_MS_BTN4` | `KC_BTN4` | ボタン4を押す |
|
||||||
|
| `KC_MS_BTN5` | `KC_BTN5` | ボタン5を押す |
|
||||||
|
| `KC_MS_WH_UP` | `KC_WH_U` | ホイールを向こう側に回転 |
|
||||||
|
| `KC_MS_WH_DOWN` | `KC_WH_D` | ホイールを手前側に回転 |
|
||||||
|
| `KC_MS_WH_LEFT` | `KC_WH_L` | ホイールを左に倒す |
|
||||||
|
| `KC_MS_WH_RIGHT` | `KC_WH_R` | ホイールを右に倒す |
|
||||||
|
| `KC_MS_ACCEL0` | `KC_ACL0` | 速度を0に設定 |
|
||||||
|
| `KC_MS_ACCEL1` | `KC_ACL1` | 速度を1に設定 |
|
||||||
|
| `KC_MS_ACCEL2` | `KC_ACL2` | 速度を2に設定 |
|
||||||
|
|
||||||
|
## マウスキーの設定
|
||||||
|
|
||||||
|
マウスキーはカーソルを移動するための2つの異なるモードをサポートします:
|
||||||
|
|
||||||
|
* **加速 (デフォルト):** 移動キーを押したままにすると、カーソルが最大速度に達するまでカーソルを加速します。
|
||||||
|
* **定速:** 移動キーを押したままにすると、カーソルを一定の速度で移動します。
|
||||||
|
|
||||||
|
同じ原則がスクロールにも適用されます。
|
||||||
|
|
||||||
|
時間、間隔、遅延の設定オプションは、ミリ秒で指定されます。スクロール速度はデフォルトスクロールステップの倍数として渡されます。例えば、スクロール速度8は、各スクロールアクションがオペレーティングシステムまたはアプリケーションで定義されるデフォルトのスクロールステップの8倍の距離進むことを意味します。
|
||||||
|
|
||||||
|
### 加速モード
|
||||||
|
|
||||||
|
これはデフォルトのモードです。キーマップの `config.h` ファイルの以下の設定を使ってカーソルとスクロールの加速を調整することができます:
|
||||||
|
|
||||||
|
| 定義 | デフォルト | 説明 |
|
||||||
|
|----------------------------|-------|---------------------------------------------------------|
|
||||||
|
| `MOUSEKEY_DELAY` | 300 | 移動キーを押してからカーソルが移動するまでの遅延 |
|
||||||
|
| `MOUSEKEY_INTERVAL` | 50 | カーソル移動間の時間 |
|
||||||
|
| `MOUSEKEY_MAX_SPEED` | 10 | 加速が停止する最大のカーソル速度 |
|
||||||
|
| `MOUSEKEY_TIME_TO_MAX` | 20 | 最大カーソル速度に達するまでの時間 |
|
||||||
|
| `MOUSEKEY_WHEEL_DELAY` | 300 | ホイールキーを押してからホイールが動くまでの遅延 |
|
||||||
|
| `MOUSEKEY_WHEEL_INTERVAL` | 100 | ホイールの動きの間の時間 |
|
||||||
|
| `MOUSEKEY_WHEEL_MAX_SPEED` | 8 | スクロールアクションごとのスクロールステップの最大数 |
|
||||||
|
| `MOUSEKEY_WHEEL_TIME_TO_MAX` | 40 | 最大スクロール速度に達するまでの時間 |
|
||||||
|
|
||||||
|
ヒント:
|
||||||
|
|
||||||
|
* `MOUSEKEY_DELAY` の設定が低すぎるとカーソルが応答しなくなります。設定が高すぎると小さな動きが難しくなります。
|
||||||
|
* カーソルの動きをスムーズにするには、`MOUSEKEY_INTERVAL` の値を低くします。ディスプレイのリフレッシュレートが60Hzの場合、`16` (1/60) に設定することができます。これによりカーソルの速度が大幅に向上するため、`MOUSEKEY_MAX_SPEED` を下げた方が良いかもしれません。
|
||||||
|
* `MOUSEKEY_TIME_TO_MAX` または `MOUSEKEY_WHEEL_TIME_TO_MAX` を `0` に設定すると、それぞれカーソルの速度またはスクロールの加速が無効になります。この方法では、一方を加速しながら他方を一定にすることができますが、これは定速モードでは不可能です。
|
||||||
|
* `MOUSEKEY_WHEEL_INTERVAL` の設定が低すぎるとスクロールがとても速くなります。設定が高すぎるとホイールキーを押したままにした時にスクロールがとても遅くなります
|
||||||
|
|
||||||
|
カーソルの加速は、X Window System MouseKeysAccel 機能と同じアルゴリズムを使います。詳細については [Wikipedia](https://en.wikipedia.org/wiki/Mouse_keys) をご覧ください。
|
||||||
|
|
||||||
|
### 定速モード
|
||||||
|
|
||||||
|
このモードでは、カーソルおよびマウスホイールの両方について複数の異なる速度を定義することができます。加速はありません。`KC_ACL0`、`KC_ACL1` および `KC_ACL2` は、カーソルとスクロールの速度をそれぞれの設定に変更します。
|
||||||
|
|
||||||
|
速度の選択は、一時的とタップ選択のどちらかを選べます:
|
||||||
|
|
||||||
|
* **一時的:** 選択された速度は、それぞれのキーを押している間のみアクティブになります。キーを放すと、マウスキーは変更される前の速度に戻ります。
|
||||||
|
* **タップ選択:** それぞれのキーを押すと選択された速度がアクティブになり、キーを放した後もアクティブのままになります。デフォルトの速度は `KC_ACL1` です。未変更の速度はありません。
|
||||||
|
|
||||||
|
最も遅い速度から最も速い速度までのデフォルトの速度は以下の通りです:
|
||||||
|
|
||||||
|
* **一時的:** `KC_ACL0` < `KC_ACL1` < *変更無し* < `KC_ACL2`
|
||||||
|
* **タップ選択:** `KC_ACL0` < `KC_ACL1` < `KC_ACL2`
|
||||||
|
|
||||||
|
定速モードを使うには、少なくともキーマップの keymaps ディレクトリの `config.h` ファイルに `MK_3_SPEED` を定義する必要があります。
|
||||||
|
|
||||||
|
```c
|
||||||
|
#define MK_3_SPEED
|
||||||
|
```
|
||||||
|
|
||||||
|
一時的モードを有効にするには、`MK_MOMENTARY_ACCEL` も定義します:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#define MK_MOMENTARY_ACCEL
|
||||||
|
```
|
||||||
|
|
||||||
|
カーソル移動あるいはスクロールを調整する場合は、以下の設定を使います:
|
||||||
|
|
||||||
|
| 定義 | デフォルト | 説明 |
|
||||||
|
|---------------------|-------------|-------------------------------------------|
|
||||||
|
| `MK_3_SPEED` | *定義なし* | 定速カーソルを有効にする |
|
||||||
|
| `MK_MOMENTARY_ACCEL` | *定義なし* | 一時的モードを有効にする |
|
||||||
|
| `MK_C_OFFSET_UNMOD` | 16 | 移動ごとのカーソルオフセット (変更無し) |
|
||||||
|
| `MK_C_INTERVAL_UNMOD` | 16 | カーソルの移動間の時間 (変更無し) |
|
||||||
|
| `MK_C_OFFSET_0` | 1 | 移動ごとのカーソルオフセット (`KC_ACL0`) |
|
||||||
|
| `MK_C_INTERVAL_0` | 32 | カーソル移動間の時間 (`KC_ACL0`) |
|
||||||
|
| `MK_C_OFFSET_1` | 4 | 移動ごとのカーソルオフセット (`KC_ACL1`) |
|
||||||
|
| `MK_C_INTERVAL_1` | 16 | カーソル移動間の時間 (`KC_ACL1`) |
|
||||||
|
| `MK_C_OFFSET_2` | 32 | 移動ごとのカーソルオフセット (`KC_ACL2`) |
|
||||||
|
| `MK_C_INTERVAL_2` | 16 | カーソル移動間の時間 (`KC_ACL2`) |
|
||||||
|
| `MK_W_OFFSET_UNMOD` | 1 | スクロールアクションごとのスクロールステップ (変更無し) |
|
||||||
|
| `MK_W_INTERVAL_UNMOD` | 40 | スクロールステップ間の時間 (変更無し) |
|
||||||
|
| `MK_W_OFFSET_0` | 1 | スクロールアクションごとのスクロールステップ (`KC_ACL0`) |
|
||||||
|
| `MK_W_INTERVAL_0` | 360 | スクロールステップ間の時間 (`KC_ACL0`) |
|
||||||
|
| `MK_W_OFFSET_1` | 1 | スクロールアクションごとのスクロールステップ (`KC_ACL1`) |
|
||||||
|
| `MK_W_INTERVAL_1` | 120 | スクロールステップ間の時間 (`KC_ACL1`) |
|
||||||
|
| `MK_W_OFFSET_2` | 1 | スクロールアクションごとのスクロールステップ (`KC_ACL2`) |
|
||||||
|
| `MK_W_INTERVAL_2` | 20 | スクロールステップ間の時間 (`KC_ACL2`) |
|
||||||
@@ -23,6 +23,7 @@ To use these, simply `#include` the corresponding [header file](https://github.c
|
|||||||
|Finnish |`keymap_finnish.h` |
|
|Finnish |`keymap_finnish.h` |
|
||||||
|French |`keymap_french.h` |
|
|French |`keymap_french.h` |
|
||||||
|French (BÉPO) |`keymap_bepo.h` |
|
|French (BÉPO) |`keymap_bepo.h` |
|
||||||
|
|French (Belgium) |`keymap_belgian.h` |
|
||||||
|French (Switzerland) |`keymap_fr_ch.h` |
|
|French (Switzerland) |`keymap_fr_ch.h` |
|
||||||
|French (macOS, ISO) |`keymap_french_osx.h` |
|
|French (macOS, ISO) |`keymap_french_osx.h` |
|
||||||
|German |`keymap_german.h` |
|
|German |`keymap_german.h` |
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
{"label":"Down", "x":11.25, "y":3.25},
|
{"label":"Down", "x":11.25, "y":3.25},
|
||||||
{"label":"Right", "x":12.25, "y":3.25},
|
{"label":"Right", "x":12.25, "y":3.25},
|
||||||
{"label":"0", "x":13.5, "y":3},
|
{"label":"0", "x":13.5, "y":3},
|
||||||
{"label":".", "x":14.5, "y":3},
|
{"label":".", "x":14.5, "y":3}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
1
keyboards/boardsource/3x4/3x4.c
Normal file
1
keyboards/boardsource/3x4/3x4.c
Normal file
@@ -0,0 +1 @@
|
|||||||
|
#include "3x4.h"
|
||||||
12
keyboards/boardsource/3x4/3x4.h
Normal file
12
keyboards/boardsource/3x4/3x4.h
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K01, K02, K03, \
|
||||||
|
K10, K11, K12, K13, \
|
||||||
|
K20, K21, K22, K23 \
|
||||||
|
) { \
|
||||||
|
{K00, K01, K02, K03}, \
|
||||||
|
{K10, K11, K12, K13}, \
|
||||||
|
{K20, K21, K22, K23} \
|
||||||
|
}
|
||||||
144
keyboards/boardsource/3x4/config.h
Normal file
144
keyboards/boardsource/3x4/config.h
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xF7E0
|
||||||
|
#define PRODUCT_ID 0x0412
|
||||||
|
#define DEVICE_VER 0x0000
|
||||||
|
#define MANUFACTURER Boardsource
|
||||||
|
#define PRODUCT 3x4
|
||||||
|
#define DESCRIPTION Little macro pad
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 3
|
||||||
|
#define MATRIX_COLS 4
|
||||||
|
|
||||||
|
#define MATRIX_ROW_PINS { F7, F6, F5,}
|
||||||
|
#define MATRIX_COL_PINS {B6, B2, B3, B1}
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
/* 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* 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_HELP1 H
|
||||||
|
//#define MAGIC_KEY_HELP2 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_ALT1 ESC
|
||||||
|
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||||
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
|
//#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 PAUSE
|
||||||
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
|
//#define MAGIC_KEY_EEPROM E
|
||||||
|
//#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
|
||||||
28
keyboards/boardsource/3x4/info.json
Normal file
28
keyboards/boardsource/3x4/info.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "boardsource 4x3",
|
||||||
|
"url": "https://boardsource.xyz",
|
||||||
|
"maintainer": "boardsource",
|
||||||
|
"width": 4,
|
||||||
|
"height": 3,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "K01", "x": 0, "y": 0 },
|
||||||
|
{ "label": "K02", "x": 1, "y": 0 },
|
||||||
|
{ "label": "K03", "x": 2, "y": 0 },
|
||||||
|
|
||||||
|
{ "label": "K04", "x": 0, "y": 1 },
|
||||||
|
{ "label": "K05", "x": 1, "y": 1 },
|
||||||
|
{ "label": "K06", "x": 2, "y": 1 },
|
||||||
|
|
||||||
|
{ "label": "K07", "x": 0, "y": 2 },
|
||||||
|
{ "label": "K08", "x": 1, "y": 2 },
|
||||||
|
{ "label": "K09", "x": 2, "y": 2 },
|
||||||
|
|
||||||
|
{ "label": "K10", "x": 0, "y": 3 },
|
||||||
|
{ "label": "K11", "x": 1, "y": 3 },
|
||||||
|
{ "label": "K12", "x": 2, "y": 3 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
25
keyboards/boardsource/3x4/keymaps/default/keymap.c
Normal file
25
keyboards/boardsource/3x4/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
#define _MAIN 0
|
||||||
|
#define _RAISE 1
|
||||||
|
#define _LOWER 2
|
||||||
|
|
||||||
|
// Readability keycodes
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_MAIN] = LAYOUT(
|
||||||
|
KC_0, KC_1, KC_4, KC_7,
|
||||||
|
KC_ENT, KC_2, KC_5, KC_8,
|
||||||
|
RAISE, KC_3, KC_6, KC_9
|
||||||
|
),
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
_______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______,
|
||||||
|
_______, _______, _______, RESET
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
14
keyboards/boardsource/3x4/readme.md
Normal file
14
keyboards/boardsource/3x4/readme.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# 3x4
|
||||||
|

|
||||||
|
|
||||||
|
this macro pad / small 12 key was inspired by the plaid look
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Boardsource](https://github.com/daysgobye)
|
||||||
|
* Hardware Supported: 3x4 v1
|
||||||
|
* Hardware Availability: [Boardsource store](https://boardsource.xyz/store/5ecc2008eee64242946c98c1)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make boardsource/3x4: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/boardsource/3x4/rules.mk
Normal file
31
keyboards/boardsource/3x4/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 = caterina
|
||||||
|
|
||||||
|
# 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 = 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 = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
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
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[WINDOWS_LAYER] = LAYOUT(
|
[WINDOWS_LAYER] = 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_PSCR, TG(MAC_LAYER), KC_DEL,
|
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, TO(MAC_LAYER), KC_DEL,
|
||||||
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_BSPC, KC_HOME,
|
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_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_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_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,
|
||||||
@@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
[WINDOWS_FN_LAYER] = LAYOUT(
|
[WINDOWS_FN_LAYER] = LAYOUT(
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_INS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
@@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
[MAC_LAYER] = LAYOUT(
|
[MAC_LAYER] = 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_PSCR, TG(WINDOWS_LAYER), KC_DEL,
|
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, TO(WINDOWS_LAYER), KC_DEL,
|
||||||
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_BSPC, KC_HOME,
|
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_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_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_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,
|
||||||
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
[MAC_FN_LAYER] = LAYOUT(
|
[MAC_FN_LAYER] = LAYOUT(
|
||||||
RESET, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MRWD, KC_MPLY, KC_MFFD, KC__MUTE, KC__VOLDOWN, KC__VOLUP, KC_TRNS, KC_TRNS, KC_TRNS,
|
RESET, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MRWD, KC_MPLY, KC_MFFD, KC__MUTE, KC__VOLDOWN, KC__VOLUP, KC_TRNS, KC_TRNS, KC_INS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
@@ -64,4 +64,3 @@ uint32_t layer_state_set_user(uint32_t state) {
|
|||||||
}
|
}
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
162
keyboards/kyria/keymaps/plattfot/README.md
Normal file
162
keyboards/kyria/keymaps/plattfot/README.md
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
# plattfot's keymap for [Kyria](https://github.com/splitkb/kyria)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Designed to be ease of use when programming, typing in both English
|
||||||
|
and Swedish and navigating around in a tiling window manager, in my
|
||||||
|
case [sway](https://swaywm.org/). Uses the two rotary encoders (lower
|
||||||
|
left/right thumb row) as two palm buttons.
|
||||||
|
|
||||||
|
This keymap avoids [Mod-tap](https://docs.qmk.fm/#/mod_tap) as they do
|
||||||
|
not work for me. [Kyria](https://github.com/splitkb/kyria) has enough
|
||||||
|
thumb keys to make it work without them.
|
||||||
|
|
||||||
|
|
||||||
|
# Base Layer: Default
|
||||||
|
```
|
||||||
|
// ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
// | ` | Q | W | E | R | T | | Y | U | I | O | P | Å |
|
||||||
|
// |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
// | Tab | A | S | D | F | G | | H | J | K | L | ; : | ' " |
|
||||||
|
// |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
// | LShift | Z | X | C | V | B | Lead | RAISE| | LOWER|DBLTAP| N | M | , < | . > | / ? | RShift |
|
||||||
|
// `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
// | MPlay| GUI | LCtrl| Space| LALT | | Enter|BSpace| NAV | LAlt |Worksp|
|
||||||
|
// | | | | | | | | | | |toggle|
|
||||||
|
// `----------------------------------' `----------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
Setup for typing in both English and Swedish (hence the Å in the top
|
||||||
|
right corner, which is just [ on an US layout).
|
||||||
|
|
||||||
|
Modifiers are mostly on the left hand, to make it comfortable when
|
||||||
|
require keyboard and mouse. For example working in a DCC (Digital
|
||||||
|
Content Creation tool) like [Houdini](https://www.sidefx.com/) and
|
||||||
|
[Maya](https://www.autodesk.com/products/maya/overview).
|
||||||
|
|
||||||
|
## Notable features on this layer
|
||||||
|
|
||||||
|
Left rotary encoder
|
||||||
|
- Press: play/pause
|
||||||
|
- Rotate: Volume control
|
||||||
|
|
||||||
|
Right rotary encoder
|
||||||
|
- Press: Call keybinding that toggles between two recent workspaces.
|
||||||
|
For [sway](https://swaywm.org/) that is `workspace
|
||||||
|
back_and_forth`
|
||||||
|
- Rotate: Page up/Page down. Used mouse scrolling at first. But
|
||||||
|
scrolling only works in the window where the mouse pointer
|
||||||
|
is. Which kind of defeated the purpose of having the scroll
|
||||||
|
on the keyboard, as I still needed to move my hand to the
|
||||||
|
mouse and then I could just use the scroll on the mouse.
|
||||||
|
|
||||||
|
[Leader key](https://docs.qmk.fm/#/feature_leader_key) is mainly used
|
||||||
|
for jumping between workspaces. Otherwise I would need to use both
|
||||||
|
hands everytime I need to switch. With the leader key I can jump
|
||||||
|
between 1-5 with just the left hand. The right rotary encoder also
|
||||||
|
helps jumping back and forth between two workspaces by just pressing
|
||||||
|
down my right palm.
|
||||||
|
|
||||||
|
The double tap key, which I based on a code snippet from a
|
||||||
|
[reddit post](https://www.reddit.com/r/olkb/comments/citkbx/double_key_press_modifier_qmkwould_work_like/ev9cue8).
|
||||||
|
When pressed, it will repeat the next key twice. Reason for this is
|
||||||
|
that I found it a bit awkward to hold down the lower key when I need
|
||||||
|
to type a symbol twice. Which happens a lot when programming or
|
||||||
|
running commands on the command line. Does not save me any key presses
|
||||||
|
but more comfortable to type double keys, for example `--` and `&&`.
|
||||||
|
|
||||||
|
# Lower Layer: Symbols
|
||||||
|
```
|
||||||
|
//
|
||||||
|
// ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
// | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
|
||||||
|
// |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
// | | | | _ | \ | - | + | | = | { | } | [ | ] | '' |
|
||||||
|
// |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
// | | [] | {} | () | <> | | | | | | | | | < | > | ? | |
|
||||||
|
// `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
// | Mute | | | | | | | | | | |
|
||||||
|
// | | | | | | | | | | | |
|
||||||
|
// `----------------------------------' `----------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
Contains most of the symbols, only exceptions are those that are
|
||||||
|
already on the default US base layer i.e. quotes, punctuation and
|
||||||
|
forward slash.
|
||||||
|
|
||||||
|
## Notable features on this layer
|
||||||
|
|
||||||
|
Left rotary encoder
|
||||||
|
- Press: mute
|
||||||
|
- Rotate: Skip next/previous song
|
||||||
|
|
||||||
|
The left letter bottom row contains macros to quickly type the
|
||||||
|
different types of brackets and move the cursor to be inside. For
|
||||||
|
example lower+c will type `()←`, where `←` is pressing the left arrow.
|
||||||
|
Same principle for the `''` macro. Really nice to have when
|
||||||
|
programming, and it is editor agnostic.
|
||||||
|
|
||||||
|
# Raise Layer: Function keys
|
||||||
|
```
|
||||||
|
// ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
// | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |
|
||||||
|
// |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
// | | | | | | F11 | | F12 | | | | | |
|
||||||
|
// |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
// | | | | | | |ScLock| | | | Ins | | | | | | |
|
||||||
|
// `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
// | | | | | | | Esc | Del | | RAlt | |
|
||||||
|
// | | | | | | | | | | | |
|
||||||
|
// `----------------------------------' `----------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
Access to the functional keys, which I mostly use to run `emacs`
|
||||||
|
compilation mode.
|
||||||
|
|
||||||
|
Scroll Lock is used to toggle between English and Swedish.
|
||||||
|
|
||||||
|
## Notable features on this layer
|
||||||
|
|
||||||
|
Right rotary encoder
|
||||||
|
- Press: Right Alt, rarely use this, but it is needed for the Swedish
|
||||||
|
layout to type some symbols. But I find I mostly switch back
|
||||||
|
to the English layout if I need to type symbols. Might change
|
||||||
|
this in the future.
|
||||||
|
- Rotate: Moving between tabs in the browser, as described in this
|
||||||
|
[blog post](https://docs.splitkb.com/hc/en-us/articles/360010513760-How-can-I-use-a-rotary-encoder-).
|
||||||
|
|
||||||
|
# Navigation Layer: Number keys, navigation
|
||||||
|
```
|
||||||
|
// ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
// | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
|
||||||
|
// |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
// | | | | | | | | | Left | Up | Down | Right| |
|
||||||
|
// |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
// | | | | | | | | | | | | | | | | | |
|
||||||
|
// `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
// | | | | | | | | | | RCtrl| |
|
||||||
|
// | | | | | | | | | | | |
|
||||||
|
// `----------------------------------' `----------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
Access to the number as well as the arrow keys. Got use to the number
|
||||||
|
row after using [ErgoDox](https://www.ergodox.io/) keyboards for a few
|
||||||
|
years. Do not feel I need a numpad layer, which seems to be quite
|
||||||
|
common with small keyboards like this.
|
||||||
|
|
||||||
|
# Adjust Layer: RGB
|
||||||
|
```
|
||||||
|
//
|
||||||
|
// ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
// | | | | | | | | | | | | | |
|
||||||
|
// |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
// | | TOG | SAI | HUI | VAI | MOD | | | | | | | |
|
||||||
|
// |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
// | | | SAD | HUD | VAD | RMOD | | | | | | | | | | | |
|
||||||
|
// `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
// | | | | | | | | | | | |
|
||||||
|
// | | | | | | | | | | | |
|
||||||
|
// `----------------------------------' `----------------------------------'
|
||||||
|
```
|
||||||
|
|
||||||
|
Right now it only contains adjustment to the underglow.
|
||||||
40
keyboards/kyria/keymaps/plattfot/config.h
Normal file
40
keyboards/kyria/keymaps/plattfot/config.h
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
/* Copyright 2019 Thomas Baart <thomas@splitkb.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
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
#define OLED_DISPLAY_128X64
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ENCODER_DIRECTION_FLIP
|
||||||
|
// Fixing the skipping with the EC11K encoder
|
||||||
|
#define ENCODER_RESOLUTION 2
|
||||||
|
|
||||||
|
#define EE_HANDS
|
||||||
|
|
||||||
|
// The Leader key allows to flexibly assign macros to key sequences.
|
||||||
|
#define LEADER_PER_KEY_TIMING
|
||||||
|
#define LEADER_TIMEOUT 350
|
||||||
|
|
||||||
|
#define TAPPING_TERM 200
|
||||||
437
keyboards/kyria/keymaps/plattfot/keymap.c
Normal file
437
keyboards/kyria/keymaps/plattfot/keymap.c
Normal file
@@ -0,0 +1,437 @@
|
|||||||
|
/* Copyright 2020 Fredrik Salomonsson <plattfot@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
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||||
|
// Macros, where | is the cursor
|
||||||
|
M_LRBRC, // [|]
|
||||||
|
M_LRCBR, // {|}
|
||||||
|
M_LRPRN, // (|)
|
||||||
|
M_LRABR, // <|>
|
||||||
|
M_DQUOT, // '|'
|
||||||
|
// New keys
|
||||||
|
DBL_TAP, // Repeat next key
|
||||||
|
};
|
||||||
|
|
||||||
|
// Double Tap feature based on post from drashna
|
||||||
|
// https://www.reddit.com/r/olkb/comments/citkbx/double_key_press_modifier_qmkwould_work_like/ev9cue8/
|
||||||
|
static bool double_tap_it = false;
|
||||||
|
|
||||||
|
enum layers {
|
||||||
|
_DEFAULT,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_NAV,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/*
|
||||||
|
* Base Layer: Default
|
||||||
|
*
|
||||||
|
* ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
* | ` | Q | W | E | R | T | | Y | U | I | O | P | Å |
|
||||||
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
* | Tab | A | S | D | F | G | | H | J | K | L | ; : | ' " |
|
||||||
|
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
* | LShift | Z | X | C | V | B | Lead | RAISE| | LOWER|DBLTAP| N | M | , < | . > | / ? | RShift |
|
||||||
|
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
* | MPlay| GUI | LCtrl| Space| LALT | | Enter|BSpace| NAV | LAlt |Worksp|
|
||||||
|
* | | | | | | | | | | |toggle|
|
||||||
|
* `----------------------------------' `----------------------------------'
|
||||||
|
*/
|
||||||
|
[_DEFAULT] = LAYOUT(
|
||||||
|
KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
|
||||||
|
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LEAD, OSL(_RAISE), OSL(_LOWER), DBL_TAP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
KC_MPLY, KC_LGUI, KC_LCTL, KC_SPACE, KC_LALT, KC_ENT, KC_BSPC, MO(_NAV), LCTL(KC_LALT), LGUI(KC_B)
|
||||||
|
),
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Lower Layer: Symbols
|
||||||
|
*
|
||||||
|
* ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
|
||||||
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
* | | | | _ | \ | - | + | | = | { | } | [ | ] | '' |
|
||||||
|
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
* | | [] | {} | () | <> | | | | | | | | | < | > | ? | |
|
||||||
|
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
* | Mute | | | | | | | | | | |
|
||||||
|
* | | | | | | | | | | | |
|
||||||
|
* `----------------------------------' `----------------------------------'
|
||||||
|
*/
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
KC_TILDE,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
|
||||||
|
_______, KC_PIPE, KC_UNDS, KC_BSLS, KC_MINS, KC_PLUS, KC_EQUAL,KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, M_DQUOT,
|
||||||
|
_______, M_LRBRC, M_LRCBR, M_LRPRN, M_LRABR, _______, _______, _______, _______, _______, _______, _______, KC_LT, KC_GT, KC_QUES, _______,
|
||||||
|
KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
/*
|
||||||
|
* Raise Layer: Function keys
|
||||||
|
*
|
||||||
|
* ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |
|
||||||
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
* | | | | | | F11 | | F12 | | | | | |
|
||||||
|
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
* | | | | | | |ScLock| | | | Ins | | | | | | |
|
||||||
|
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
* | | | | | | | Esc | Del | | RAlt | |
|
||||||
|
* | | | | | | | | | | | |
|
||||||
|
* `----------------------------------' `----------------------------------'
|
||||||
|
*/
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
||||||
|
_______, _______, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_SLCK, _______, _______, KC_INS, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, KC_ESC, KC_DEL, _______, KC_RALT, _______
|
||||||
|
|
||||||
|
),
|
||||||
|
/*
|
||||||
|
* Navigation Layer: Number keys, navigation
|
||||||
|
*
|
||||||
|
* ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
* | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
|
||||||
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
* | | | | | | | | | Left | Up | Down | Right| |
|
||||||
|
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
* | | | | | | | | | | | | | | | | | |
|
||||||
|
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
* | | | | | | | | | | RCtrl| |
|
||||||
|
* | | | | | | | | | | | |
|
||||||
|
* `----------------------------------' `----------------------------------'
|
||||||
|
*/
|
||||||
|
[_NAV] = LAYOUT(
|
||||||
|
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_RCTL, _______
|
||||||
|
),
|
||||||
|
/*
|
||||||
|
* Adjust Layer: RGB
|
||||||
|
*
|
||||||
|
* ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
* | | | | | | | | | | | | | |
|
||||||
|
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
* | | TOG | SAI | HUI | VAI | MOD | | | | | | | |
|
||||||
|
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
* | | | SAD | HUD | VAD | RMOD | | | | | | | | | | | |
|
||||||
|
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
* | | | | | | | | | | | |
|
||||||
|
* | | | | | | | | | | | |
|
||||||
|
* `----------------------------------' `----------------------------------'
|
||||||
|
*/
|
||||||
|
[_ADJUST] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
// /*
|
||||||
|
// * Layer template
|
||||||
|
// *
|
||||||
|
// * ,-------------------------------------------. ,-------------------------------------------.
|
||||||
|
// * | | | | | | | | | | | | | |
|
||||||
|
// * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||||
|
// * | | | | | | | | | | | | | |
|
||||||
|
// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||||
|
// * | | | | | | | | | | | | | | | | | |
|
||||||
|
// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||||
|
// * | | | | | | | | | | | |
|
||||||
|
// * | | | | | | | | | | | |
|
||||||
|
// * `----------------------------------' `----------------------------------'
|
||||||
|
// */
|
||||||
|
// [_LAYERINDEX] = LAYOUT(
|
||||||
|
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
// ),
|
||||||
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
/* void keyboard_post_init_user(void) { */
|
||||||
|
/* rgblight_setrgb(51, 135, 204); */
|
||||||
|
/* } */
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
if (record->event.pressed) {
|
||||||
|
switch (keycode) {
|
||||||
|
case M_LRPRN:
|
||||||
|
// Double tap gets messed up with macros, turning it off
|
||||||
|
double_tap_it = false;
|
||||||
|
SEND_STRING("()" SS_TAP(X_LEFT));
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
return false;
|
||||||
|
case M_LRCBR:
|
||||||
|
double_tap_it = false;
|
||||||
|
SEND_STRING("{}" SS_TAP(X_LEFT));
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
return false;
|
||||||
|
case M_LRBRC:
|
||||||
|
double_tap_it = false;
|
||||||
|
SEND_STRING("[]" SS_TAP(X_LEFT));
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
return false;
|
||||||
|
case M_LRABR:
|
||||||
|
double_tap_it = false;
|
||||||
|
SEND_STRING("<>" SS_TAP(X_LEFT));
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
return false;
|
||||||
|
case M_DQUOT:
|
||||||
|
double_tap_it = false;
|
||||||
|
SEND_STRING("''" SS_TAP(X_LEFT));
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
return false;
|
||||||
|
case DBL_TAP:
|
||||||
|
double_tap_it = !double_tap_it;
|
||||||
|
return false;
|
||||||
|
case KC_LEAD:
|
||||||
|
double_tap_it = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else if (double_tap_it && keycode != DBL_TAP) {
|
||||||
|
double_tap_it = false;
|
||||||
|
tap_code16(keycode);
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); }
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
static void render_kyria_logo(void) {
|
||||||
|
static const char PROGMEM kyria_logo[] = {
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
};
|
||||||
|
oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_qmk_logo(void) {
|
||||||
|
static const char PROGMEM qmk_logo[] = {
|
||||||
|
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
|
||||||
|
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
|
||||||
|
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
|
||||||
|
|
||||||
|
oled_write_P(qmk_logo, false);
|
||||||
|
}
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
static void render_status(void) {
|
||||||
|
// QMK Logo and version information
|
||||||
|
render_qmk_logo();
|
||||||
|
oled_write_P(PSTR("Kyria rev1.0\n"), false);
|
||||||
|
oled_write_P(PSTR("v" QMK_VERSION "\n"), false);
|
||||||
|
|
||||||
|
// Host Keyboard Layer Status
|
||||||
|
oled_write_P(PSTR("Layer: "), false);
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _DEFAULT:
|
||||||
|
oled_write_P(PSTR("plattfot\n"), false);
|
||||||
|
break;
|
||||||
|
case _LOWER:
|
||||||
|
oled_write_P(PSTR("symbols\n"), false);
|
||||||
|
break;
|
||||||
|
case _RAISE:
|
||||||
|
oled_write_P(PSTR("function keys\n"), false);
|
||||||
|
break;
|
||||||
|
case _NAV:
|
||||||
|
oled_write_P(PSTR("numbers/navi\n"), false);
|
||||||
|
break;
|
||||||
|
case _ADJUST:
|
||||||
|
oled_write_P(PSTR("adjust\n"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_P(PSTR("undefined\n"), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Host Keyboard LED Status and Double tap
|
||||||
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
if (led_state.num_lock) {
|
||||||
|
oled_write_P(PSTR("NUMLCK "), false);
|
||||||
|
} else if (double_tap_it) {
|
||||||
|
oled_write_P(PSTR("Double "), false);
|
||||||
|
} else {
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (led_state.caps_lock) {
|
||||||
|
oled_write_P(PSTR("CAPLCK "), false);
|
||||||
|
} else if (double_tap_it) {
|
||||||
|
oled_write_P(PSTR("Tap "), false);
|
||||||
|
} else {
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
|
||||||
|
} else {
|
||||||
|
render_kyria_logo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENCODER_ENABLE
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) {
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _LOWER:
|
||||||
|
// Skip/Prev song
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_MNXT);
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_MPRV);
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// Volume control
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (index == 1) {
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _RAISE:
|
||||||
|
// Credit to Thomas Baart for this
|
||||||
|
// See https://docs.splitkb.com/hc/en-us/articles/360010513760-How-can-I-use-a-rotary-encoder-
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code16(C(KC_TAB));
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
} else {
|
||||||
|
tap_code16(S(C(KC_TAB)));
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// Scrolling
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_PGDN);
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_PGUP);
|
||||||
|
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
LEADER_EXTERNS();
|
||||||
|
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
LEADER_DICTIONARY() {
|
||||||
|
leading = false;
|
||||||
|
leader_end();
|
||||||
|
// Sway navigation
|
||||||
|
SEQ_ONE_KEY(KC_Q) { // Jump to workspace 1
|
||||||
|
SEND_STRING(SS_LGUI("1"));
|
||||||
|
}
|
||||||
|
SEQ_ONE_KEY(KC_W) { // Jump to workspace 2
|
||||||
|
SEND_STRING(SS_LGUI("2"));
|
||||||
|
}
|
||||||
|
SEQ_ONE_KEY(KC_E) { // Jump to workspace 3
|
||||||
|
SEND_STRING(SS_LGUI("3"));
|
||||||
|
}
|
||||||
|
SEQ_ONE_KEY(KC_R) { // Jump to workspace 4
|
||||||
|
SEND_STRING(SS_LGUI("4"));
|
||||||
|
}
|
||||||
|
SEQ_ONE_KEY(KC_T) { // Jump to workspace 5
|
||||||
|
SEND_STRING(SS_LGUI("5"));
|
||||||
|
}
|
||||||
|
|
||||||
|
SEQ_ONE_KEY(KC_Y) { // Jump to workspace 6
|
||||||
|
SEND_STRING(SS_LGUI("6"));
|
||||||
|
}
|
||||||
|
SEQ_ONE_KEY(KC_U) { // Jump to workspace 7
|
||||||
|
SEND_STRING(SS_LGUI("7"));
|
||||||
|
}
|
||||||
|
SEQ_ONE_KEY(KC_I) { // Jump to workspace 8
|
||||||
|
SEND_STRING(SS_LGUI("8"));
|
||||||
|
}
|
||||||
|
SEQ_ONE_KEY(KC_O) { // Jump to workspace 9
|
||||||
|
SEND_STRING(SS_LGUI("9"));
|
||||||
|
}
|
||||||
|
SEQ_ONE_KEY(KC_P) { // Jump to workspace 0
|
||||||
|
SEND_STRING(SS_LGUI("0"));
|
||||||
|
}
|
||||||
|
SEQ_ONE_KEY(KC_G) { // View scratch pad
|
||||||
|
SEND_STRING(SS_LGUI("-"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sway move window
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_Q) { // Move to workspace 1
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("1")));
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_W) { // Move to workspace 2
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("2")));
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_E) { // Move to workspace 3
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("3")));
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_R) { // Move to workspace 4
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("4")));
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_T) { // Move to workspace 5
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("5")));
|
||||||
|
}
|
||||||
|
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_Y) { // Move to workspace 6
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("6")));
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_U) { // Move to workspace 7
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("7")));
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_I) { // Move to workspace 8
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("8")));
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_O) { // Move to workspace 9
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("9")));
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_P) { // Move to workspace 0
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("0")));
|
||||||
|
}
|
||||||
|
SEQ_TWO_KEYS(KC_M, KC_G) { // Move to scratch pad
|
||||||
|
SEND_STRING(SS_LSFT(SS_LGUI("-")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
5
keyboards/kyria/keymaps/plattfot/rules.mk
Normal file
5
keyboards/kyria/keymaps/plattfot/rules.mk
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
|
||||||
|
ENCODER_ENABLE = yes # Enables the use of one or more encoders
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
LEADER_ENABLE = yes # Enable the Leader Key feature
|
||||||
|
MOUSEKEY_ENABLE = no # Disable mouse, need to save space.
|
||||||
@@ -62,7 +62,7 @@ bool led_update_kb(led_t led_state) {
|
|||||||
if(led_update_user(led_state)) {
|
if(led_update_user(led_state)) {
|
||||||
writePin(B2, led_state.caps_lock);
|
writePin(B2, led_state.caps_lock);
|
||||||
writePin(B9, led_state.scroll_lock);
|
writePin(B9, led_state.scroll_lock);
|
||||||
writePin(C12, led_state.num_lock);
|
writePin(C15, led_state.num_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ MCU = STM32F303
|
|||||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
NKRO_ENABLE = no # USB Nkey Rollover
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
MIDI_ENABLE = no # MIDI support
|
MIDI_ENABLE = no # MIDI support
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
AUDIO_ENABLE = no # Audio output on port C6
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ COMMAND_ENABLE = no # Commands for debug and configuration
|
|||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
NKRO_ENABLE = no # USB Nkey Rollover
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
MIDI_ENABLE = no # MIDI support
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
void matrix_init_keymap(void) {
|
void keyboard_post_init_user(void) {
|
||||||
rgblight_enable_noeeprom();
|
rgblight_enable_noeeprom();
|
||||||
rgblight_sethsv_teal();
|
rgblight_sethsv_teal();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,4 +14,6 @@ Flashing example for this keyboard ([after setting up the bootloadHID flashing e
|
|||||||
|
|
||||||
make percent/canoe:default:flash
|
make percent/canoe:default:flash
|
||||||
|
|
||||||
|
Reset Key: Hold down the key located at K11, commonly programmed as Q while plugging in the keyboard.
|
||||||
|
|
||||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
|
|||||||
@@ -50,3 +50,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
|
||||||
|
|||||||
@@ -42,6 +42,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0x4B4B
|
#define VENDOR_ID 0x4B4B
|
||||||
#define PRODUCT_ID 0x0002
|
#define PRODUCT_ID 0x0003
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER TheRoyalSweatshirt
|
#define MANUFACTURER TheRoyalSweatshirt
|
||||||
#define PRODUCT Liminal
|
#define PRODUCT Liminal
|
||||||
|
|||||||
33
keyboards/xd87/keymaps/mac_underglow/keymap.c
Executable file
33
keyboards/xd87/keymaps/mac_underglow/keymap.c
Executable file
@@ -0,0 +1,33 @@
|
|||||||
|
/* Copyright 2020 Tomasz Adamczyk <siano@sianecki.pl>
|
||||||
|
*
|
||||||
|
* 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_F13, KC_F14, KC_F15,
|
||||||
|
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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
|
||||||
|
[1] = LAYOUT_tkl_ansi(
|
||||||
|
RESET, EEP_RST, DEBUG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_INC,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_BRTG, BL_DEC,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
|
||||||
|
};
|
||||||
13
keyboards/xd87/keymaps/mac_underglow/readme.md
Executable file
13
keyboards/xd87/keymaps/mac_underglow/readme.md
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
# The Mac OS layout for xd87
|
||||||
|
|
||||||
|
With underglow and backlight support.
|
||||||
|
|
||||||
|
## Keymap
|
||||||
|
|
||||||
|
### Layer 0
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Layer 1
|
||||||
|
|
||||||
|

|
||||||
3
keyboards/xd87/keymaps/mac_underglow/rules.mk
Executable file
3
keyboards/xd87/keymaps/mac_underglow/rules.mk
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
BOOTMAGIC_ENABLE = lite
|
||||||
|
COMMAND_ENABLE = no
|
||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ enum layers {
|
|||||||
|
|
||||||
#define LOWER MO(_LOWER)
|
#define LOWER MO(_LOWER)
|
||||||
#define RAISE MO(_RAISE)
|
#define RAISE MO(_RAISE)
|
||||||
#define SHRAISE LM(_RAISE, MOD_LSFT)
|
#define TGLOWER TG(_LOWER)
|
||||||
|
|
||||||
static bool is_ctl_pressed;
|
static bool is_ctl_pressed;
|
||||||
static bool is_esc_pressed;
|
static bool is_esc_pressed;
|
||||||
@@ -18,45 +18,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[_QWERTY] = LAYOUT_ortho_4x12 (
|
[_QWERTY] = LAYOUT_ortho_4x12 (
|
||||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_UP, KC_SLSH,
|
KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
KC_LCTL,KC_LGUI,KC_LALT,KC_RALT,LOWER, KC_SPC, KC_SPC, RAISE, SHRAISE,KC_LEFT,KC_DOWN,KC_RGHT
|
KC_LCTL,KC_LGUI,KC_LALT,KC_RALT,LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT
|
||||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
[_LOWER] = LAYOUT_ortho_4x12 (
|
[_LOWER] = LAYOUT_ortho_4x12 (
|
||||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||||
_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,_______,
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,KC_F11, KC_F12, KC_INS, KC_HOME,KC_PGUP,_______,_______,_______,_______,_______,_______,
|
_______,KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS,KC_VOLU,KC_PSCR,KC_SLCK,KC_PAUS,_______,_______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,KC_DEL, KC_END, KC_PGDN,_______,_______,_______,KC_BTN1,KC_MS_U,KC_BTN2,
|
_______,KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE,KC_VOLD,KC_MUTE,_______,_______,_______,_______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MS_L,KC_MS_D,KC_MS_R
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
|
||||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
[_RAISE] = LAYOUT_ortho_4x12 (
|
[_RAISE] = LAYOUT_ortho_4x12 (
|
||||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||||
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_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_DEL,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
KC_CAPS,_______,_______,_______,_______,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______,
|
KC_CAPS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,_______,_______,_______,KC_MINS,KC_EQL, _______,_______,KC_VOLU,_______,
|
_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_BSPC,KC_VOLD,KC_MUTE
|
_______,_______,_______,_______,TGLOWER,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP,KC_END
|
||||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t layer_state_set_user(uint32_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
#ifdef JOTANCK_LEDS
|
#ifdef JOTANCK_LEDS
|
||||||
writePin(JOTANCK_LED2, (get_highest_layer(state) == _RAISE));
|
writePin(JOTANCK_LED1, (get_highest_layer(state) == _LOWER));
|
||||||
#endif
|
#endif
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@ bool led_update_user(led_t led_state) {
|
|||||||
|
|
||||||
#ifdef JOTANCK_LEDS
|
#ifdef JOTANCK_LEDS
|
||||||
// CapsLock led
|
// CapsLock led
|
||||||
writePin(JOTANCK_LED1, led_state.caps_lock);
|
writePin(JOTANCK_LED2, led_state.caps_lock);
|
||||||
#endif
|
#endif
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -630,9 +630,6 @@ void matrix_init_quantum() {
|
|||||||
#ifdef OUTPUT_AUTO_ENABLE
|
#ifdef OUTPUT_AUTO_ENABLE
|
||||||
set_output(OUTPUT_AUTO);
|
set_output(OUTPUT_AUTO);
|
||||||
#endif
|
#endif
|
||||||
#ifdef DIP_SWITCH_ENABLE
|
|
||||||
dip_switch_init();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
matrix_init_kb();
|
matrix_init_kb();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -628,6 +628,13 @@ void rgblight_set_layer_state(uint8_t layer, bool enabled) {
|
|||||||
if (rgblight_status.timer_enabled == false) {
|
if (rgblight_status.timer_enabled == false) {
|
||||||
rgblight_mode_noeeprom(rgblight_config.mode);
|
rgblight_mode_noeeprom(rgblight_config.mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ifdef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
|
||||||
|
// If not enabled, then nothing else will actually set the LEDs...
|
||||||
|
if (!rgblight_config.enable) {
|
||||||
|
rgblight_set();
|
||||||
|
}
|
||||||
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool rgblight_get_layer_state(uint8_t layer) {
|
bool rgblight_get_layer_state(uint8_t layer) {
|
||||||
@@ -665,9 +672,9 @@ static void rgblight_layers_write(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ifdef RGBLIGHT_LAYER_BLINK
|
# ifdef RGBLIGHT_LAYER_BLINK
|
||||||
uint8_t _blinked_layer_mask = 0;
|
rgblight_layer_mask_t _blinked_layer_mask = 0;
|
||||||
uint16_t _blink_duration = 0;
|
uint16_t _blink_duration = 0;
|
||||||
static uint16_t _blink_timer;
|
static uint16_t _blink_timer;
|
||||||
|
|
||||||
void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms) {
|
void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms) {
|
||||||
rgblight_set_layer_state(layer, true);
|
rgblight_set_layer_state(layer, true);
|
||||||
@@ -693,16 +700,11 @@ void rgblight_unblink_layers(void) {
|
|||||||
__attribute__((weak)) void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); }
|
__attribute__((weak)) void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); }
|
||||||
|
|
||||||
#ifndef RGBLIGHT_CUSTOM_DRIVER
|
#ifndef RGBLIGHT_CUSTOM_DRIVER
|
||||||
|
|
||||||
void rgblight_set(void) {
|
void rgblight_set(void) {
|
||||||
LED_TYPE *start_led;
|
LED_TYPE *start_led;
|
||||||
uint8_t num_leds = rgblight_ranges.clipping_num_leds;
|
uint8_t num_leds = rgblight_ranges.clipping_num_leds;
|
||||||
|
|
||||||
# ifdef RGBLIGHT_LAYERS
|
|
||||||
if (rgblight_layers != NULL) {
|
|
||||||
rgblight_layers_write();
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
|
|
||||||
if (!rgblight_config.enable) {
|
if (!rgblight_config.enable) {
|
||||||
for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) {
|
for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) {
|
||||||
led[i].r = 0;
|
led[i].r = 0;
|
||||||
@@ -714,6 +716,16 @@ void rgblight_set(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ifdef RGBLIGHT_LAYERS
|
||||||
|
if (rgblight_layers != NULL
|
||||||
|
# ifndef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
|
||||||
|
&& rgblight_config.enable
|
||||||
|
# endif
|
||||||
|
) {
|
||||||
|
rgblight_layers_write();
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
# ifdef RGBLIGHT_LED_MAP
|
# ifdef RGBLIGHT_LED_MAP
|
||||||
LED_TYPE led0[RGBLED_NUM];
|
LED_TYPE led0[RGBLED_NUM];
|
||||||
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
|
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
|
||||||
|
|||||||
@@ -86,6 +86,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#ifdef VIA_ENABLE
|
#ifdef VIA_ENABLE
|
||||||
# include "via.h"
|
# include "via.h"
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef DIP_SWITCH_ENABLE
|
||||||
|
# include "dip_switch.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
// Only enable this if console is enabled to print to
|
// Only enable this if console is enabled to print to
|
||||||
#if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE)
|
#if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE)
|
||||||
@@ -269,6 +272,10 @@ void keyboard_init(void) {
|
|||||||
keymap_config.nkro = 1;
|
keymap_config.nkro = 1;
|
||||||
eeconfig_update_keymap(keymap_config.raw);
|
eeconfig_update_keymap(keymap_config.raw);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef DIP_SWITCH_ENABLE
|
||||||
|
dip_switch_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
keyboard_post_init_kb(); /* Always keep this last */
|
keyboard_post_init_kb(); /* Always keep this last */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -208,19 +208,13 @@ elif grep ID /etc/os-release | grep -q solus; then
|
|||||||
printf "\n$SOLUS_INFO\n"
|
printf "\n$SOLUS_INFO\n"
|
||||||
|
|
||||||
elif grep ID /etc/os-release | grep -q void; then
|
elif grep ID /etc/os-release | grep -q void; then
|
||||||
# musl Void systems don't have glibc cross compilers avaliable in their repos.
|
|
||||||
# glibc Void systems do have musl cross compilers though, for some reason.
|
|
||||||
# So, default to musl, and switch to glibc if it is installed.
|
|
||||||
CROSS_ARM=cross-arm-linux-musleabi
|
|
||||||
if xbps-query glibc > /dev/null; then # Check is glibc if installed
|
|
||||||
CROSS_ARM=cross-arm-linux-gnueabi
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo xbps-install \
|
sudo xbps-install \
|
||||||
avr-binutils \
|
avr-binutils \
|
||||||
avr-gcc \
|
avr-gcc \
|
||||||
avr-libc \
|
avr-libc \
|
||||||
$CROSS_ARM \
|
cross-arm-none-eabi-binutils \
|
||||||
|
cross-arm-none-eabi-gcc \
|
||||||
|
cross-arm-none-eabi-newlib \
|
||||||
avrdude \
|
avrdude \
|
||||||
dfu-programmer \
|
dfu-programmer \
|
||||||
dfu-util \
|
dfu-util \
|
||||||
|
|||||||
Reference in New Issue
Block a user