forked from mirror/qmk_firmware
Compare commits
84 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
972f8ba69a | ||
|
|
9ac0023a6a | ||
|
|
49be4860f7 | ||
|
|
d6eee3e0f2 | ||
|
|
468661280b | ||
|
|
068ab2800c | ||
|
|
ac1309cd75 | ||
|
|
6200907417 | ||
|
|
0daccebaf9 | ||
|
|
b21e093057 | ||
|
|
b51a187d77 | ||
|
|
33587254a0 | ||
|
|
ab10ce4932 | ||
|
|
a8f893ed2c | ||
|
|
837571ef7f | ||
|
|
cab1347387 | ||
|
|
08b2d08593 | ||
|
|
d9bb42e37b | ||
|
|
0c6155ec42 | ||
|
|
b512afc347 | ||
|
|
3c3c5965f1 | ||
|
|
4c93c350a6 | ||
|
|
b1d8efeb59 | ||
|
|
209fd753cb | ||
|
|
1e4f0d9dcf | ||
|
|
fce12f0075 | ||
|
|
de29364827 | ||
|
|
47b76f556b | ||
|
|
90583a1668 | ||
|
|
e2c6dadfbf | ||
|
|
ed350a1aa6 | ||
|
|
088d6abf54 | ||
|
|
2881517097 | ||
|
|
ade989962a | ||
|
|
424b9ff709 | ||
|
|
af98005b02 | ||
|
|
9b922d55dd | ||
|
|
74c9c3e9c2 | ||
|
|
4db9aa65b2 | ||
|
|
504d443ee3 | ||
|
|
0f0ebde0aa | ||
|
|
0972789e76 | ||
|
|
2aeacf9db7 | ||
|
|
ac3b9333d8 | ||
|
|
3366c5628c | ||
|
|
1b5d7616d3 | ||
|
|
d5eb673426 | ||
|
|
20589fb050 | ||
|
|
d52e9321e9 | ||
|
|
325009587a | ||
|
|
670603590e | ||
|
|
2c9957eb7e | ||
|
|
f00e56eb0b | ||
|
|
8392729d74 | ||
|
|
0014c32375 | ||
|
|
0967d4c8a9 | ||
|
|
0b90877b4b | ||
|
|
4742a3a48f | ||
|
|
0c175d63cf | ||
|
|
fd4759dcfa | ||
|
|
80015f7fb0 | ||
|
|
2218879d68 | ||
|
|
a2d5468df3 | ||
|
|
541e749aa8 | ||
|
|
74aff52bff | ||
|
|
7ee2b0f1ee | ||
|
|
022e2748af | ||
|
|
8b9c5a9c33 | ||
|
|
356561c438 | ||
|
|
30843f8329 | ||
|
|
1e9d91d4ef | ||
|
|
b61613ccb4 | ||
|
|
ac92f4b721 | ||
|
|
6a5c07680c | ||
|
|
2bc2a51618 | ||
|
|
af81e3e63d | ||
|
|
02ac0f89c4 | ||
|
|
710d37b3eb | ||
|
|
71ce2b0d79 | ||
|
|
3161f10b1f | ||
|
|
af3627db25 | ||
|
|
83a1c4763a | ||
|
|
04b9286605 | ||
|
|
8d4fcd678a |
@@ -82,6 +82,22 @@ Example code before change:
|
||||
void encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
encoder_update_user(index, clockwise);
|
||||
}
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
} else if (index == 1) { /* Second encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_DOWN);
|
||||
} else {
|
||||
tap_code(KC_UP);
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Example code after change:
|
||||
@@ -90,6 +106,25 @@ Example code after change:
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
return encoder_update_user(index, clockwise);
|
||||
}
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
} else if (index == 1) { /* Second encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_DOWN);
|
||||
} else {
|
||||
tap_code(KC_UP);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
// If you return true, this will allow the keyboard level code to run, as well.
|
||||
//Returning false will override the keyboard level code. Depending on how the keyboard level function is set up.
|
||||
}
|
||||
```
|
||||
|
||||
## Core Changes :id=core-changes
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# タップダンス: 1つのキーが3つ、5つまたは100の異なる動作をします
|
||||
|
||||
<!---
|
||||
original document: 0.10.33:docs/feature_tap_dance.md
|
||||
git diff 0.10.33 HEAD -- docs/feature_tap_dance.md | cat
|
||||
original document: 0.13.15:docs/feature_tap_dance.md
|
||||
git diff 0.13.15 HEAD -- docs/feature_tap_dance.md | cat
|
||||
-->
|
||||
|
||||
## イントロダクション :id=introduction
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
`TAPPING_TERM` の時間は、あなたのタップダンスのキーのタップとタップの間の時間として許可された最大の時間で、ミリ秒単位で計測されます。例えば、もし、あなたがこの上にある `#define` ステートメントを使い、1回タップすると `Space` が送信され、2回タップすると `Enter` が送信されるタップダンスキーをセットアップした場合、175ミリ秒以内に2回キーをタップすれば `ENT` だけが送信されるでしょう。もし、1回タップしてから175ミリ秒以上待ってからもう一度タップすると、`SPC SPC` が送信されます。
|
||||
|
||||
次に、いくつかのタップダンスのキーを定義するためには、`TD()` マクロを使うのが最も簡単です。これは数字を受け取り、この数字は後で `tap_dance-actions` 配列のインデックスとして使われます。
|
||||
次に、いくつかのタップダンスのキーを定義するためには、`TD()` マクロを使うのが最も簡単です。これは数字を受け取り、この数字は後で `tap_dance_actions` 配列のインデックスとして使われます。
|
||||
|
||||
その後、`tap_dance_actions` 配列を使って、タップダンスキーを押した時のアクションを定義します。現在は、5つの可能なオプションがあります:
|
||||
|
||||
@@ -85,7 +85,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
|
||||
};
|
||||
|
||||
// キーコードの代わりにタップダンスキーを追加します
|
||||
// キーマップにキーコードの代わりにタップダンスの項目を追加します
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ...
|
||||
TD(TD_ESC_CAPS)
|
||||
@@ -215,20 +215,22 @@ qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
`keymap.c` ファイルの先頭、つまりキーマップの前に、以下のコードを追加します。
|
||||
|
||||
```c
|
||||
typedef enum {
|
||||
TD_NONE,
|
||||
TD_UNKNOWN,
|
||||
TD_SINGLE_TAP,
|
||||
TD_SINGLE_HOLD,
|
||||
TD_DOUBLE_TAP,
|
||||
TD_DOUBLE_HOLD,
|
||||
TD_DOUBLE_SINGLE_TAP, // Send two single taps
|
||||
TD_TRIPLE_TAP,
|
||||
TD_TRIPLE_HOLD
|
||||
} td_state_t;
|
||||
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
uint8_t state;
|
||||
} tap;
|
||||
|
||||
enum {
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD,
|
||||
DOUBLE_TAP,
|
||||
DOUBLE_HOLD,
|
||||
DOUBLE_SINGLE_TAP, // シングルタップを2回送信
|
||||
TRIPLE_TAP,
|
||||
TRIPLE_HOLD
|
||||
};
|
||||
td_state_t state;
|
||||
} td_tap_t;
|
||||
|
||||
// タップダンスの列挙型
|
||||
enum {
|
||||
@@ -236,7 +238,7 @@ enum {
|
||||
SOME_OTHER_DANCE
|
||||
};
|
||||
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state);
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
// xタップダンスのための関数。キーマップで利用できるようにするため、ここに置きます。
|
||||
void x_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
@@ -273,63 +275,63 @@ void x_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||
* 一般的な単語で2回続けて使われる文字でないこと。例えば 'pepper' 中の 'p'。もしタップダンス機能が
|
||||
* 文字 'p' に存在する場合、'pepper' という単語は入力するのが非常にいらだたしいものになるでしょう。
|
||||
*
|
||||
* 3つ目の点については、'DOUBLE_SINGLE_TAP' が存在しますが、これは完全にはテストされていません
|
||||
* 3つ目の点については、'TD_DOUBLE_SINGLE_TAP' が存在しますが、これは完全にはテストされていません
|
||||
*
|
||||
*/
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (state->interrupted || !state->pressed) return SINGLE_TAP;
|
||||
if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
|
||||
// キーは割り込まれていませんが、まだ押し続けられています。'HOLD' を送信することを意味します。
|
||||
else return SINGLE_HOLD;
|
||||
else return TD_SINGLE_HOLD;
|
||||
} else if (state->count == 2) {
|
||||
// DOUBLE_SINGLE_TAP は "pepper" と入力することと、'pp' と入力したときに実際に
|
||||
// TD_DOUBLE_SINGLE_TAP は "pepper" と入力することと、'pp' と入力したときに実際に
|
||||
// ダブルタップしたい場合とを区別するためのものです。
|
||||
// この戻り値の推奨されるユースケースは、'ダブルタップ' 動作やマクロではなく、
|
||||
// そのキーの2つのキー入力を送信したい場合です。
|
||||
if (state->interrupted) return DOUBLE_SINGLE_TAP;
|
||||
else if (state->pressed) return DOUBLE_HOLD;
|
||||
else return DOUBLE_TAP;
|
||||
if (state->interrupted) return TD_DOUBLE_SINGLE_TAP;
|
||||
else if (state->pressed) return TD_DOUBLE_HOLD;
|
||||
else return TD_DOUBLE_TAP;
|
||||
}
|
||||
|
||||
// 誰も同じ文字を3回入力しようとしていないと仮定します(少なくとも高速には)。
|
||||
// タップダンスキーが 'KC_W' で、"www." と高速に入力したい場合、ここに例外を追加して
|
||||
// 'TRIPLE_SINGLE_TAP' を返し、'DOUBLE_SINGLE_TAP' のようにその列挙型を定義する必要があります。
|
||||
// 'TD_TRIPLE_SINGLE_TAP' を返し、'TD_DOUBLE_SINGLE_TAP' のようにその列挙型を定義する必要があります。
|
||||
if (state->count == 3) {
|
||||
if (state->interrupted || !state->pressed) return TRIPLE_TAP;
|
||||
else return TRIPLE_HOLD;
|
||||
} else return 8; // マジックナンバー。いつかこのメソッドはより多くの押下に対して機能するよう拡張されるでしょう
|
||||
if (state->interrupted || !state->pressed) return TD_TRIPLE_TAP;
|
||||
else return TD_TRIPLE_HOLD;
|
||||
} else return TD_UNKNOWN;
|
||||
}
|
||||
|
||||
//'x' タップダンスの 'tap' のインスタンスを生成します。
|
||||
static tap xtap_state = {
|
||||
//'x' タップダンスの 'td_tap_t' のインスタンスを生成します。
|
||||
static td_tap_t xtap_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
.state = TD_NONE
|
||||
};
|
||||
|
||||
void x_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
xtap_state.state = cur_dance(state);
|
||||
switch (xtap_state.state) {
|
||||
case SINGLE_TAP: register_code(KC_X); break;
|
||||
case SINGLE_HOLD: register_code(KC_LCTRL); break;
|
||||
case DOUBLE_TAP: register_code(KC_ESC); break;
|
||||
case DOUBLE_HOLD: register_code(KC_LALT); break;
|
||||
case TD_SINGLE_TAP: register_code(KC_X); break;
|
||||
case TD_SINGLE_HOLD: register_code(KC_LCTRL); break;
|
||||
case TD_DOUBLE_TAP: register_code(KC_ESC); break;
|
||||
case TD_DOUBLE_HOLD: register_code(KC_LALT); break;
|
||||
// 最後の case は高速入力用です。キーが `f` であると仮定します:
|
||||
// 例えば、`buffer` という単語を入力するとき、`Esc` ではなく `ff` を送信するようにします。
|
||||
// 高速入力時に `ff` と入力するには、次の文字は `TAPPING_TERM` 以内に入力する必要があります。
|
||||
// `TAPPING_TERM` はデフォルトでは 200ms です。
|
||||
case DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
|
||||
case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
|
||||
}
|
||||
}
|
||||
|
||||
void x_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (xtap_state.state) {
|
||||
case SINGLE_TAP: unregister_code(KC_X); break;
|
||||
case SINGLE_HOLD: unregister_code(KC_LCTRL); break;
|
||||
case DOUBLE_TAP: unregister_code(KC_ESC); break;
|
||||
case DOUBLE_HOLD: unregister_code(KC_LALT);
|
||||
case DOUBLE_SINGLE_TAP: unregister_code(KC_X);
|
||||
case TD_SINGLE_TAP: unregister_code(KC_X); break;
|
||||
case TD_SINGLE_HOLD: unregister_code(KC_LCTRL); break;
|
||||
case TD_DOUBLE_TAP: unregister_code(KC_ESC); break;
|
||||
case TD_DOUBLE_HOLD: unregister_code(KC_LALT);
|
||||
case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X);
|
||||
}
|
||||
xtap_state.state = 0;
|
||||
xtap_state.state = TD_NONE;
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
@@ -357,9 +359,11 @@ enum td_keycodes {
|
||||
|
||||
// 必要な数のタップダンス状態を含むタイプを定義します
|
||||
typedef enum {
|
||||
SINGLE_TAP,
|
||||
SINGLE_HOLD,
|
||||
DOUBLE_SINGLE_TAP
|
||||
TD_NONE,
|
||||
TD_UNKNOWN,
|
||||
TD_SINGLE_TAP,
|
||||
TD_SINGLE_HOLD,
|
||||
TD_DOUBLE_SINGLE_TAP
|
||||
} td_state_t;
|
||||
|
||||
// タップダンスの状態の型のグローバルインスタンスを作ります
|
||||
@@ -368,7 +372,7 @@ static td_state_t td_state;
|
||||
// タップダンス関数を宣言します:
|
||||
|
||||
// 現在のタップダンスの状態を特定するための関数
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state);
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
// それぞれのタップダンスキーコードに適用する `finished` と `reset` 関数
|
||||
void altlp_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
@@ -379,14 +383,14 @@ void altlp_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||
|
||||
```c
|
||||
// 返却するタップダンス状態を特定します
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (state->interrupted || !state->pressed) return SINGLE_TAP;
|
||||
else return SINGLE_HOLD;
|
||||
if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
|
||||
else return TD_SINGLE_HOLD;
|
||||
}
|
||||
|
||||
if (state->count == 2) return DOUBLE_SINGLE_TAP;
|
||||
else return 3; // 上記で返却する最大の状態の値より大きい任意の数
|
||||
if (state->count == 2) return TD_DOUBLE_SINGLE_TAP;
|
||||
else return TD_UNKNOWN; // 上記で返却する最大の状態の値より大きい任意の数
|
||||
}
|
||||
|
||||
// 定義する各タップダンスキーコードのとりうる状態を制御します:
|
||||
@@ -394,13 +398,13 @@ uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
td_state = cur_dance(state);
|
||||
switch (td_state) {
|
||||
case SINGLE_TAP:
|
||||
case TD_SINGLE_TAP:
|
||||
register_code16(KC_LPRN);
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
case TD_SINGLE_HOLD:
|
||||
register_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_on(_MY_LAYER)` を使います
|
||||
break;
|
||||
case DOUBLE_SINGLE_TAP: // タップ時間内に2つの括弧 `((` の入れ子を可能にします
|
||||
case TD_DOUBLE_SINGLE_TAP: // タップ時間内に2つの括弧 `((` の入れ子を可能にします
|
||||
tap_code16(KC_LPRN);
|
||||
register_code16(KC_LPRN);
|
||||
}
|
||||
@@ -408,13 +412,13 @@ void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
|
||||
void altlp_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch (td_state) {
|
||||
case SINGLE_TAP:
|
||||
case TD_SINGLE_TAP:
|
||||
unregister_code16(KC_LPRN);
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
case TD_SINGLE_HOLD:
|
||||
unregister_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_off(_MY_LAYER)` を使います
|
||||
break;
|
||||
case DOUBLE_SINGLE_TAP:
|
||||
case TD_DOUBLE_SINGLE_TAP:
|
||||
unregister_code16(KC_LPRN);
|
||||
}
|
||||
}
|
||||
@@ -431,20 +435,22 @@ qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
|
||||
タップダンスは、MO(layer) と TG(layer) 機能を模倣することにも使用できます。この例では、1回タップすると `KC_QUOT` 、1回押してそのまま押し続けたら `MO(_MY_LAYER)` 、2回タップしたときは `TG(_MY_LAYER)` として機能するキーを設定します。
|
||||
|
||||
最初のステップは、あなたの `keymap.c` ファイルの最初のあたりに以下のコードを追加します。
|
||||
最初のステップは、あなたの `keymap.c` ファイルの最初のあたりに以下のコードを追加することです。
|
||||
|
||||
```c
|
||||
// 必要な数のタップダンス状態のタイプを定義します
|
||||
typedef enum {
|
||||
TD_NONE,
|
||||
TD_UNKNOWN,
|
||||
TD_SINGLE_TAP,
|
||||
TD_SINGLE_HOLD,
|
||||
TD_DOUBLE_TAP
|
||||
} td_state_t;
|
||||
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
uint8_t state;
|
||||
} tap;
|
||||
|
||||
// 必要な数のタップダンス状態のタイプを定義します
|
||||
enum {
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD,
|
||||
DOUBLE_TAP
|
||||
};
|
||||
td_state_t state;
|
||||
} td_tap_t;
|
||||
|
||||
enum {
|
||||
QUOT_LAYR, // カスタムタップダンスキー。他のタップダンスキーはこの列挙型に追加します
|
||||
@@ -453,7 +459,7 @@ enum {
|
||||
// タップダンスキーで使われる関数を宣言します
|
||||
|
||||
// 全てのタップダンスに関連する関数
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state);
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
// 個別のタップダンスに関連する関数
|
||||
void ql_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
@@ -464,31 +470,31 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||
|
||||
```c
|
||||
// 現在のタップダンスの状態を決定します
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
td_state_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (!state->pressed) return SINGLE_TAP;
|
||||
else return SINGLE_HOLD;
|
||||
} else if (state->count == 2) return DOUBLE_TAP;
|
||||
else return 8;
|
||||
if (!state->pressed) return TD_SINGLE_TAP;
|
||||
else return TD_SINGLE_HOLD;
|
||||
} else if (state->count == 2) return TD_DOUBLE_TAP;
|
||||
else return TD_UNKNOWN;
|
||||
}
|
||||
|
||||
// この例のタップダンスキーに関連付けられた "tap" 構造体を初期化します
|
||||
static tap ql_tap_state = {
|
||||
static td_tap_t ql_tap_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
.state = TD_NONE
|
||||
};
|
||||
|
||||
// タップダンスキーの動作をコントロールする関数
|
||||
void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
ql_tap_state.state = cur_dance(state);
|
||||
switch (ql_tap_state.state) {
|
||||
case SINGLE_TAP:
|
||||
case TD_SINGLE_TAP:
|
||||
tap_code(KC_QUOT);
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
case TD_SINGLE_HOLD:
|
||||
layer_on(_MY_LAYER);
|
||||
break;
|
||||
case DOUBLE_TAP:
|
||||
case TD_DOUBLE_TAP:
|
||||
// レイヤーが既にセットされているか確認します
|
||||
if (layer_state_is(_MY_LAYER)) {
|
||||
// レイヤーが既にセットされていたら、オフにします。
|
||||
@@ -503,10 +509,10 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
|
||||
void ql_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
// キーを押し続けていて今離したら、レイヤーをオフに切り替えます。
|
||||
if (ql_tap_state.state == SINGLE_HOLD) {
|
||||
if (ql_tap_state.state == TD_SINGLE_HOLD) {
|
||||
layer_off(_MY_LAYER);
|
||||
}
|
||||
ql_tap_state.state = 0;
|
||||
ql_tap_state.state = TD_NONE;
|
||||
}
|
||||
|
||||
// タップダンスキーを機能に関連付けます
|
||||
@@ -519,7 +525,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
|
||||
`cur_dance()` と `ql_tap_state` の使い方は、上の例と似ています。
|
||||
|
||||
`ql_finished` 関数における `case:SINGLE_TAP` は、上の例と似ています。`SINGLE_HOLD` の case では、`ql_reset()` と連動してタップダンスキーを押している間 `_MY_LAYER` に切り替わり、キーを離した時に `_MY_LAYER` から離れます。これは、`MO(_MY_LAYER)` に似ています。`DOUBLE_TAP` の case では、`_MY_LAYER` がアクティブレイヤーかどうかを確認することによって動きます。そして、その結果に基づいてレイヤーのオン・オフをトグルします。これは `TG(_MY_LAYER)` に似ています。
|
||||
`ql_finished` 関数における `case: TD_SINGLE_TAP` は、上の例と似ています。`TD_SINGLE_HOLD` の case では、`ql_reset()` と連動してタップダンスキーを押している間 `_MY_LAYER` に切り替わり、キーを離した時に `_MY_LAYER` から離れます。これは、`MO(_MY_LAYER)` に似ています。`TD_DOUBLE_TAP` の case では、`_MY_LAYER` がアクティブレイヤーかどうかを確認することによって動きます。そして、その結果に基づいてレイヤーのオン・オフをトグルします。これは `TG(_MY_LAYER)` に似ています。
|
||||
|
||||
`tap_dance_actions[]` は、上の例に似ています。 `ACTION_TAP_DANCE_FN_ADVANCED()` の代わりに `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` を使ったことに注意してください。
|
||||
この理由は、私は、非タップダンスキーを使うにあたり `TAPPING_TERM` が短い(175ミリ秒以内)方が好きなのですが、タップダンスのアクションを確実に完了させるには短すぎるとわかったからです——そのため、ここでは時間を275ミリ秒に増やしています。
|
||||
|
||||
@@ -1,86 +1,91 @@
|
||||
# Language-specific Keycodes
|
||||
|
||||
Keyboards are able to support a wide range of languages. However, they do not send the actual characters produced by pressing their keys - instead, they send numerical codes. In the USB HID spec, these are called "usages", although they are more often referred to as "scancodes" or "keycodes" when in the context of keyboards.
|
||||
Less than 256 usages are defined in the HID Keyboard/Keypad usage page, and some of those do nothing on modern operating systems. So, how is this language support achieved?
|
||||
Keyboards are able to support a wide range of languages. However, this support is not actually achieved within the keyboard itself - instead, it sends numerical codes, which the operating system maps to the appropriate characters depending on the user's configured keyboard layout. By default (and per the HID spec), this is the US ANSI layout. For example, when a Swedish person presses the key with the `å` character printed on it, the keyboard is *actually* sending the keycode for `[`.
|
||||
|
||||
In a nutshell, the operating system maps the usages it receives to the appropriate character based on the user's configured keyboard layout. For example, when a Swedish person presses the key with the `å` character printed on it, the keyboard is *actually* sending the keycode for `[`.
|
||||
Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap.
|
||||
|
||||
Obviously, this could get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap.
|
||||
|
||||
To use these, simply `#include` the corresponding [header file](https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras) in your `keymap.c`, and add the keycodes defined in them in place of the `KC_` prefixed ones:
|
||||
|
||||
|Layout |Header |
|
||||
|---------------------------|--------------------------------|
|
||||
|Canadian Multilingual (CSA)|`keymap_canadian_multilingual.h`|
|
||||
|Croatian |`keymap_croatian.h` |
|
||||
|Czech |`keymap_czech.h` |
|
||||
|Danish |`keymap_danish.h` |
|
||||
|Dutch (Belgium) |`keymap_belgian.h` |
|
||||
|English (Ireland) |`keymap_irish.h` |
|
||||
|English (UK) |`keymap_uk.h` |
|
||||
|English (US Extended) |`keymap_us_extended.h` |
|
||||
|English (US International) |`keymap_us_international.h` |
|
||||
|English (US International, Linux)|`keymap_us_international_linux.h`|
|
||||
|Estonian |`keymap_estonian.h` |
|
||||
|Finnish |`keymap_finnish.h` |
|
||||
|French |`keymap_french.h` |
|
||||
|French (AFNOR) |`keymap_french_afnor.h` |
|
||||
|French (BÉPO) |`keymap_bepo.h` |
|
||||
|French (Belgium) |`keymap_belgian.h` |
|
||||
|French (Switzerland) |`keymap_fr_ch.h` |
|
||||
|French (macOS, ISO) |`keymap_french_osx.h` |
|
||||
|German |`keymap_german.h` |
|
||||
|German (Switzerland) |`keymap_german_ch.h` |
|
||||
|German (macOS) |`keymap_german_osx.h` |
|
||||
|German (Neo2)* |`keymap_neo2.h` |
|
||||
|Greek* |`keymap_greek.h` |
|
||||
|Hebrew* |`keymap_hebrew.h` |
|
||||
|Hungarian |`keymap_hungarian.h` |
|
||||
|Icelandic |`keymap_icelandic.h` |
|
||||
|Italian |`keymap_italian.h` |
|
||||
|Italian (macOS, ANSI) |`keymap_italian_osx_ansi.h` |
|
||||
|Italian (macOS, ISO) |`keymap_italian_osx_iso.h` |
|
||||
|Japanese |`keymap_jp.h` |
|
||||
|Korean |`keymap_korean.h` |
|
||||
|Latvian |`keymap_latvian.h` |
|
||||
|Lithuanian (ĄŽERTY) |`keymap_lithuanian_azerty.h` |
|
||||
|Lithuanian (QWERTY) |`keymap_lithuanian_qwerty.h` |
|
||||
|Norwegian |`keymap_norwegian.h` |
|
||||
|Polish |`keymap_polish.h` |
|
||||
|Portuguese |`keymap_portuguese.h` |
|
||||
|Portuguese (macOS, ISO) |`keymap_portuguese_osx_iso.h` |
|
||||
|Portuguese (Brazil) |`keymap_br_abnt2.h` |
|
||||
|Romanian |`keymap_romanian.h` |
|
||||
|Russian* |`keymap_russian.h` |
|
||||
|Serbian* |`keymap_serbian.h` |
|
||||
|Serbian (Latin) |`keymap_serbian_latin.h` |
|
||||
|Slovak |`keymap_slovak.h` |
|
||||
|Slovenian |`keymap_slovenian.h` |
|
||||
|Spanish |`keymap_spanish.h` |
|
||||
|Spanish (Dvorak) |`keymap_spanish_dvorak.h` |
|
||||
|Swedish |`keymap_swedish.h` |
|
||||
|Turkish (F) |`keymap_turkish_f.h` |
|
||||
|Turkish (Q) |`keymap_turkish_q.h` |
|
||||
|
||||
There are also a few which are not quite language-specific, but useful if you are not using a QWERTY layout:
|
||||
|
||||
|Layout |Header |
|
||||
|-------------------|------------------------|
|
||||
|Colemak |`keymap_colemak.h` |
|
||||
|Dvorak |`keymap_dvorak.h` |
|
||||
|Dvorak (French) |`keymap_dvorak_fr.h` |
|
||||
|Dvorak (Programmer)|`keymap_dvp.h` |
|
||||
|Norman |`keymap_norman.h` |
|
||||
|Plover* |`keymap_plover.h` |
|
||||
|Plover (Dvorak)* |`keymap_plover_dvorak.h`|
|
||||
|Steno* |`keymap_steno.h` |
|
||||
|Workman |`keymap_workman.h` |
|
||||
|Workman (ZXCVM) |`keymap_workman_zxcvm.h`|
|
||||
Simply `#include` one of the keycode headers below at the top of your `keymap.c`, and assign the keycodes defined in the header in place of the `KC_` prefixed ones.
|
||||
|
||||
## Sendstring Support
|
||||
|
||||
By default, `SEND_STRING()` assumes a US ANSI keyboard layout is set. If you are using a different layout, you can also `#include "sendstring_*.h"` (as above) in your keymap to override the lookup tables used for mapping ASCII characters to keycodes.
|
||||
By default, `SEND_STRING()` assumes a US ANSI keyboard layout is set. If you are using a different layout, you can include one of the Sendstring LUT headers below in your `keymap.c` to override the lookup tables used for mapping ASCII characters to keycodes. You do not need to include the corresponding `keymap_*.h` header, as it is implicit when including the Sendstring header.
|
||||
|
||||
An important thing to note here is that `SEND_STRING()` only operates on [ASCII text](https://en.wikipedia.org/wiki/ASCII#Character_set). This means that you cannot pass it a string containing Unicode characters - this unfortunately includes accented characters that may be present in your desired layout.
|
||||
Many layouts make certain characters, such as Grave or Tilde, available only as [dead keys](https://en.wikipedia.org/wiki/Dead_key), so you must add a space immediately after it in the string you want to send, to prevent it from potentially combining with the next character.
|
||||
Certain other layouts have no Sendstring header as they do not use a Latin-derived alphabet (for example Greek and Russian), and thus there is no way to input most of the ASCII character set. These are marked above with a `*`.
|
||||
Certain other layouts have no Sendstring header as they do not use a Latin-derived alphabet (for example Greek and Russian), and thus there is no way to input most of the ASCII character set.
|
||||
|
||||
## Header Files
|
||||
|
||||
These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras).
|
||||
|
||||
|Layout |Keycodes Header |Sendstring LUT Header |
|
||||
|---------------------------------|---------------------------------|------------------------------------|
|
||||
|Canadian Multilingual (CSA) |`keymap_canadian_multilingual.h` |`sendstring_canadian_multilingual.h`|
|
||||
|Croatian |`keymap_croatian.h` |`sendstring_croatian.h` |
|
||||
|Czech |`keymap_czech.h` |`sendstring_czech.h` |
|
||||
|Danish |`keymap_danish.h` |`sendstring_danish.h` |
|
||||
|Dutch (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` |
|
||||
|English (Ireland) |`keymap_irish.h` | |
|
||||
|English (UK) |`keymap_uk.h` |`sendstring_uk.h` |
|
||||
|English (US Extended) |`keymap_us_extended.h` | |
|
||||
|English (US International) |`keymap_us_international.h` |`sendstring_us_international.h` |
|
||||
|English (US International, Linux)|`keymap_us_international_linux.h`| |
|
||||
|Estonian |`keymap_estonian.h` |`sendstring_estonian.h` |
|
||||
|Finnish |`keymap_finnish.h` |`sendstring_finnish.h` |
|
||||
|French |`keymap_french.h` |`sendstring_french.h` |
|
||||
|French (AFNOR) |`keymap_french_afnor.h` |`sendstring_french_afnor.h` |
|
||||
|French (BÉPO) |`keymap_bepo.h` |`sendstring_bepo.h` |
|
||||
|French (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` |
|
||||
|French (Switzerland) |`keymap_fr_ch.h` |`sendstring_fr_ch.h` |
|
||||
|French (macOS, ISO) |`keymap_french_osx.h` |`sendstring_french_osx.h` |
|
||||
|German |`keymap_german.h` |`sendstring_german.h` |
|
||||
|German (Switzerland) |`keymap_german_ch.h` |`sendstring_german_ch.h` |
|
||||
|German (macOS) |`keymap_german_osx.h` |`sendstring_german_osx.h` |
|
||||
|German (Neo2) |`keymap_neo2.h` | |
|
||||
|Greek |`keymap_greek.h` | |
|
||||
|Hebrew |`keymap_hebrew.h` | |
|
||||
|Hungarian |`keymap_hungarian.h` |`sendstring_hungarian.h` |
|
||||
|Icelandic |`keymap_icelandic.h` |`sendstring_icelandic.h` |
|
||||
|Italian |`keymap_italian.h` |`sendstring_italian.h` |
|
||||
|Italian (macOS, ANSI) |`keymap_italian_osx_ansi.h` |`sendstring_italian_osx_ansi.h` |
|
||||
|Italian (macOS, ISO) |`keymap_italian_osx_iso.h` |`sendstring_italian_osx_iso.h` |
|
||||
|Japanese |`keymap_jp.h` |`sendstring_jis.h` |
|
||||
|Korean |`keymap_korean.h` | |
|
||||
|Latvian |`keymap_latvian.h` |`sendstring_latvian.h` |
|
||||
|Lithuanian (ĄŽERTY) |`keymap_lithuanian_azerty.h` |`sendstring_lithuanian_azerty.h` |
|
||||
|Lithuanian (QWERTY) |`keymap_lithuanian_qwerty.h` |`sendstring_lithuanian_qwerty.h` |
|
||||
|Norwegian |`keymap_norwegian.h` |`sendstring_norwegian.h` |
|
||||
|Polish |`keymap_polish.h` | |
|
||||
|Portuguese |`keymap_portuguese.h` |`sendstring_portuguese.h` |
|
||||
|Portuguese (macOS, ISO) |`keymap_portuguese_osx_iso.h` |`sendstring_portuguese_osx_iso.h` |
|
||||
|Portuguese (Brazil) |`keymap_br_abnt2.h` |`sendstring_br_abnt2.h` |
|
||||
|Romanian |`keymap_romanian.h` |`sendstring_romanian.h` |
|
||||
|Russian |`keymap_russian.h` | |
|
||||
|Serbian |`keymap_serbian.h` | |
|
||||
|Serbian (Latin) |`keymap_serbian_latin.h` |`sendstring_serbian_latin.h` |
|
||||
|Slovak |`keymap_slovak.h` |`sendstring_slovak.h` |
|
||||
|Slovenian |`keymap_slovenian.h` |`sendstring_slovenian.h` |
|
||||
|Spanish |`keymap_spanish.h` |`sendstring_spanish.h` |
|
||||
|Spanish (Dvorak) |`keymap_spanish_dvorak.h` |`sendstring_spanish_dvorak.h` |
|
||||
|Swedish |`keymap_swedish.h` |`sendstring_swedish.h` |
|
||||
|Swedish (macOS, ANSI) |`keymap_swedish_osx_ansi.h` | |
|
||||
|Swedish (macOS, ISO) |`keymap_swedish_osx_iso.h` | |
|
||||
|Swedish Pro (macOS, ANSI) |`keymap_swedish_pro_osx_ansi.h` | |
|
||||
|Swedish Pro (macOS, ISO) |`keymap_swedish_pro_osx_iso.h` | |
|
||||
|Turkish (F) |`keymap_turkish_f.h` |`sendstring_turkish_f.h` |
|
||||
|Turkish (Q) |`keymap_turkish_q.h` |`sendstring_turkish_q.h` |
|
||||
|
||||
There are also a few which are not quite language-specific, but useful if you are not using a QWERTY layout:
|
||||
|
||||
|Layout |Keycodes Header |Sendstring LUT Header |
|
||||
|-------------------|------------------------|----------------------------|
|
||||
|Colemak |`keymap_colemak.h` |`sendstring_colemak.h` |
|
||||
|Dvorak |`keymap_dvorak.h` |`sendstring_dvorak.h` |
|
||||
|Dvorak (French) |`keymap_dvorak_fr.h` |`sendstring_dvorak_fr.h` |
|
||||
|Dvorak (Programmer)|`keymap_dvp.h` |`sendstring_dvp.h` |
|
||||
|Norman |`keymap_norman.h` |`sendstring_norman.h` |
|
||||
|Plover |`keymap_plover.h` | |
|
||||
|Plover (Dvorak) |`keymap_plover_dvorak.h`| |
|
||||
|Steno |`keymap_steno.h` | |
|
||||
|Workman |`keymap_workman.h` |`sendstring_workman.h` |
|
||||
|Workman (ZXCVM) |`keymap_workman_zxcvm.h`|`sendstring_workman_zxcvm.h`|
|
||||
|
||||
70
keyboards/absinthe/keymaps/via/keymap.c
Normal file
70
keyboards/absinthe/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,70 @@
|
||||
/* Copyright 2021 alittlepeace
|
||||
*
|
||||
* 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_default(
|
||||
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_GRV, 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_BSPC, KC_DEL, KC_END, KC_PGDN,
|
||||
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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_default(
|
||||
_______, 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,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_default(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[3] = LAYOUT_default(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
|
||||
};
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
switch(get_highest_layer(layer_state)){
|
||||
case 1:
|
||||
if (clockwise){
|
||||
tap_code(KC_VOLU);
|
||||
} else{
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (clockwise) {
|
||||
tap_code(KC_WH_D);
|
||||
} else {
|
||||
tap_code(KC_WH_U);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
2
keyboards/absinthe/keymaps/via/rules.mk
Normal file
2
keyboards/absinthe/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
@@ -13,4 +13,5 @@
|
||||
* 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 "al1.h"
|
||||
|
||||
@@ -13,41 +13,39 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef AL1_H
|
||||
#define AL1_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define XXX KC_NO
|
||||
|
||||
#define LAYOUT( \
|
||||
K500, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K415, K414,\
|
||||
K501, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K215, K413,\
|
||||
K502, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
|
||||
K503, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K412,\
|
||||
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 \
|
||||
) \
|
||||
{ \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015}, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115}, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215}, \
|
||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315}, \
|
||||
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415}, \
|
||||
{ K500, K501, K502, K503, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \
|
||||
k50, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k4F, k4E, \
|
||||
k51, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k2F, k4D, \
|
||||
k52, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \
|
||||
k53, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k4C, \
|
||||
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, 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, k2E, k2F }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
|
||||
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \
|
||||
{ k50, k51, k52, k53, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
|
||||
}
|
||||
|
||||
#define LAYOUT_split_bs( \
|
||||
K500, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K512, K012, K013, K014, K015, K415, K414, \
|
||||
K501, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K215, K413,\
|
||||
K502, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
|
||||
K503, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K412,\
|
||||
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 \
|
||||
) \
|
||||
{ \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015}, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115}, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215}, \
|
||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315}, \
|
||||
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415}, \
|
||||
{ K500, K501, K502, K503, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K512, KC_NO, KC_NO, KC_NO} \
|
||||
k50, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k5C, k0C, k0D, k0E, k0F, k4F, k4E, \
|
||||
k51, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k2F, k4D, \
|
||||
k52, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \
|
||||
k53, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k4C, \
|
||||
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, 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, k2E, k2F }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
|
||||
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \
|
||||
{ k50, k51, k52, k53, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, k5C, XXX, XXX, XXX } \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -15,62 +15,42 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6050
|
||||
#define DEVICE_VER 0x0104
|
||||
#define MANUFACTURER Alsoran
|
||||
#define PRODUCT AL1
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6050
|
||||
#define DEVICE_VER 0x0104
|
||||
#define MANUFACTURER Alsoran
|
||||
#define PRODUCT AL1
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 7
|
||||
#define MATRIX_COLS 20
|
||||
|
||||
/*
|
||||
* 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)
|
||||
*
|
||||
*/
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define LED_NUM_LOCK_PIN D0
|
||||
#define LED_CAPS_LOCK_PIN B7
|
||||
#define LED_SCROLL_LOCK_PIN D1
|
||||
#define LED_PIN_ON_STATE 0
|
||||
|
||||
#define BACKLIGHT_PIN B6
|
||||
#define BACKLIGHT_BREATHING
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#define BACKLIGHT_BREATHING
|
||||
|
||||
/* 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).
|
||||
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||
//#define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
@@ -93,54 +73,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
//#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.
|
||||
@@ -156,27 +88,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* 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
|
||||
|
||||
#endif
|
||||
/* disable these deprecated features by default */
|
||||
#define NO_ACTION_MACRO
|
||||
#define NO_ACTION_FUNCTION
|
||||
|
||||
@@ -1,15 +1,212 @@
|
||||
{
|
||||
"keyboard_name": "AL1",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 20.5,
|
||||
"height": 5.25,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Num Lock", "x":16.5, "y":0}, {"label":"/", "x":17.5, "y":0}, {"label":"*", "x":18.5, "y":0}, {"label":"-", "x":19.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"7", "x":16.5, "y":1}, {"label":"8", "x":17.5, "y":1}, {"label":"9", "x":18.5, "y":1}, {"label":"+", "x":19.5, "y":1, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":16.5, "y":2}, {"label":"5", "x":17.5, "y":2}, {"label":"6", "x":18.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"↑", "x":15.25, "y":3.25}, {"label":"1", "x":16.5, "y":3}, {"label":"2", "x":17.5, "y":3}, {"label":"3", "x":18.5, "y":3}, {"label":"Enter", "x":19.5, "y":3, "h":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":7}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":11.75, "y":4}, {"label":"Menu", "x":12.75, "y":4, "w":1.25}, {"label":"←", "x":14.25, "y":4.25}, {"label":"↓", "x":15.25, "y":4.25}, {"label":"→", "x":16.25, "y":4.25}, {"label":"0", "x":17.5, "y":4}, {"label":".", "x":18.5, "y":4}]
|
||||
},
|
||||
"LAYOUT_split_bs": {
|
||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Num Lock", "x":16.5, "y":0}, {"label":"/", "x":17.5, "y":0}, {"label":"*", "x":18.5, "y":0}, {"label":"-", "x":19.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"7", "x":16.5, "y":1}, {"label":"8", "x":17.5, "y":1}, {"label":"9", "x":18.5, "y":1}, {"label":"+", "x":19.5, "y":1, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":16.5, "y":2}, {"label":"5", "x":17.5, "y":2}, {"label":"6", "x":18.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"↑", "x":15.25, "y":3.25}, {"label":"1", "x":16.5, "y":3}, {"label":"2", "x":17.5, "y":3}, {"label":"3", "x":18.5, "y":3}, {"label":"Enter", "x":19.5, "y":3, "h":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":7}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":11.75, "y":4}, {"label":"Menu", "x":12.75, "y":4, "w":1.25}, {"label":"←", "x":14.25, "y":4.25}, {"label":"↓", "x":15.25, "y":4.25}, {"label":"→", "x":16.25, "y":4.25}, {"label":"0", "x":17.5, "y":4}, {"label":".", "x":18.5, "y":4}]
|
||||
"keyboard_name": "AL1",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 20.5,
|
||||
"height": 5.25,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"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": 12, "y": 0},
|
||||
{"x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"x": 15.25, "y": 0},
|
||||
|
||||
{"x": 16.5, "y": 0},
|
||||
{"x": 17.5, "y": 0},
|
||||
{"x": 18.5, "y": 0},
|
||||
{"x": 19.5, "y": 0},
|
||||
|
||||
{"x": 0, "y": 1, "w": 1.5},
|
||||
{"x": 1.5, "y": 1},
|
||||
{"x": 2.5, "y": 1},
|
||||
{"x": 3.5, "y": 1},
|
||||
{"x": 4.5, "y": 1},
|
||||
{"x": 5.5, "y": 1},
|
||||
{"x": 6.5, "y": 1},
|
||||
{"x": 7.5, "y": 1},
|
||||
{"x": 8.5, "y": 1},
|
||||
{"x": 9.5, "y": 1},
|
||||
{"x": 10.5, "y": 1},
|
||||
{"x": 11.5, "y": 1},
|
||||
{"x": 12.5, "y": 1},
|
||||
{"x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"x": 15.25, "y": 1},
|
||||
|
||||
{"x": 16.5, "y": 1},
|
||||
{"x": 17.5, "y": 1},
|
||||
{"x": 18.5, "y": 1},
|
||||
{"x": 19.5, "y": 1, "h": 2},
|
||||
|
||||
{"x": 0, "y": 2, "w": 1.75},
|
||||
{"x": 1.75, "y": 2},
|
||||
{"x": 2.75, "y": 2},
|
||||
{"x": 3.75, "y": 2},
|
||||
{"x": 4.75, "y": 2},
|
||||
{"x": 5.75, "y": 2},
|
||||
{"x": 6.75, "y": 2},
|
||||
{"x": 7.75, "y": 2},
|
||||
{"x": 8.75, "y": 2},
|
||||
{"x": 9.75, "y": 2},
|
||||
{"x": 10.75, "y": 2},
|
||||
{"x": 11.75, "y": 2},
|
||||
{"x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"x": 16.5, "y": 2},
|
||||
{"x": 17.5, "y": 2},
|
||||
{"x": 18.5, "y": 2},
|
||||
|
||||
{"x": 0, "y": 3, "w": 2.25},
|
||||
{"x": 2.25, "y": 3},
|
||||
{"x": 3.25, "y": 3},
|
||||
{"x": 4.25, "y": 3},
|
||||
{"x": 5.25, "y": 3},
|
||||
{"x": 6.25, "y": 3},
|
||||
{"x": 7.25, "y": 3},
|
||||
{"x": 8.25, "y": 3},
|
||||
{"x": 9.25, "y": 3},
|
||||
{"x": 10.25, "y": 3},
|
||||
{"x": 11.25, "y": 3},
|
||||
{"x": 12.25, "y": 3, "w": 1.75},
|
||||
{"x": 14, "y": 3},
|
||||
|
||||
{"x": 15.25, "y": 3.25},
|
||||
|
||||
{"x": 16.5, "y": 3},
|
||||
{"x": 17.5, "y": 3},
|
||||
{"x": 18.5, "y": 3},
|
||||
{"x": 19.5, "y": 3, "h": 2},
|
||||
|
||||
{"x": 0, "y": 4, "w": 1.25},
|
||||
{"x": 1.25, "y": 4},
|
||||
{"x": 2.25, "y": 4, "w": 1.25},
|
||||
{"x": 3.5, "y": 4, "w": 7},
|
||||
{"x": 10.5, "y": 4, "w": 1.25},
|
||||
{"x": 11.75, "y": 4},
|
||||
{"x": 12.75, "y": 4, "w": 1.25},
|
||||
|
||||
{"x": 14.25, "y": 4.25},
|
||||
{"x": 15.25, "y": 4.25},
|
||||
{"x": 16.25, "y": 4.25},
|
||||
|
||||
{"x": 17.5, "y": 4},
|
||||
{"x": 18.5, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_split_bs": {
|
||||
"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": 12, "y": 0},
|
||||
{"x": 13, "y": 0},
|
||||
{"x": 14, "y": 0},
|
||||
|
||||
{"x": 15.25, "y": 0},
|
||||
|
||||
{"x": 16.5, "y": 0},
|
||||
{"x": 17.5, "y": 0},
|
||||
{"x": 18.5, "y": 0},
|
||||
{"x": 19.5, "y": 0},
|
||||
|
||||
{"x": 0, "y": 1, "w": 1.5},
|
||||
{"x": 1.5, "y": 1},
|
||||
{"x": 2.5, "y": 1},
|
||||
{"x": 3.5, "y": 1},
|
||||
{"x": 4.5, "y": 1},
|
||||
{"x": 5.5, "y": 1},
|
||||
{"x": 6.5, "y": 1},
|
||||
{"x": 7.5, "y": 1},
|
||||
{"x": 8.5, "y": 1},
|
||||
{"x": 9.5, "y": 1},
|
||||
{"x": 10.5, "y": 1},
|
||||
{"x": 11.5, "y": 1},
|
||||
{"x": 12.5, "y": 1},
|
||||
{"x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"x": 15.25, "y": 1},
|
||||
|
||||
{"x": 16.5, "y": 1},
|
||||
{"x": 17.5, "y": 1},
|
||||
{"x": 18.5, "y": 1},
|
||||
{"x": 19.5, "y": 1, "h": 2},
|
||||
|
||||
{"x": 0, "y": 2, "w": 1.75},
|
||||
{"x": 1.75, "y": 2},
|
||||
{"x": 2.75, "y": 2},
|
||||
{"x": 3.75, "y": 2},
|
||||
{"x": 4.75, "y": 2},
|
||||
{"x": 5.75, "y": 2},
|
||||
{"x": 6.75, "y": 2},
|
||||
{"x": 7.75, "y": 2},
|
||||
{"x": 8.75, "y": 2},
|
||||
{"x": 9.75, "y": 2},
|
||||
{"x": 10.75, "y": 2},
|
||||
{"x": 11.75, "y": 2},
|
||||
{"x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"x": 16.5, "y": 2},
|
||||
{"x": 17.5, "y": 2},
|
||||
{"x": 18.5, "y": 2},
|
||||
|
||||
{"x": 0, "y": 3, "w": 2.25},
|
||||
{"x": 2.25, "y": 3},
|
||||
{"x": 3.25, "y": 3},
|
||||
{"x": 4.25, "y": 3},
|
||||
{"x": 5.25, "y": 3},
|
||||
{"x": 6.25, "y": 3},
|
||||
{"x": 7.25, "y": 3},
|
||||
{"x": 8.25, "y": 3},
|
||||
{"x": 9.25, "y": 3},
|
||||
{"x": 10.25, "y": 3},
|
||||
{"x": 11.25, "y": 3},
|
||||
{"x": 12.25, "y": 3, "w": 1.75},
|
||||
{"x": 14, "y": 3},
|
||||
|
||||
{"x": 15.25, "y": 3.25},
|
||||
|
||||
{"x": 16.5, "y": 3},
|
||||
{"x": 17.5, "y": 3},
|
||||
{"x": 18.5, "y": 3},
|
||||
{"x": 19.5, "y": 3, "h": 2},
|
||||
|
||||
{"x": 0, "y": 4, "w": 1.25},
|
||||
{"x": 1.25, "y": 4},
|
||||
{"x": 2.25, "y": 4, "w": 1.25},
|
||||
{"x": 3.5, "y": 4, "w": 7},
|
||||
{"x": 10.5, "y": 4, "w": 1.25},
|
||||
{"x": 11.75, "y": 4},
|
||||
{"x": 12.75, "y": 4, "w": 1.25},
|
||||
|
||||
{"x": 14.25, "y": 4.25},
|
||||
{"x": 15.25, "y": 4.25},
|
||||
{"x": 16.25, "y": 4.25},
|
||||
|
||||
{"x": 17.5, "y": 4},
|
||||
{"x": 18.5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,36 +13,23 @@
|
||||
* 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_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_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\
|
||||
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_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\
|
||||
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_P4, KC_P5, KC_P6, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT ),
|
||||
LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
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_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
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_P4, KC_P5, KC_P6,
|
||||
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_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||
),
|
||||
|
||||
[1] = 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_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\
|
||||
KC_TAB, KC_Q, KC_W, KC_E, RESET, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\
|
||||
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_P4, KC_P5, KC_P6, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_TRNS, KC_RGUI, KC_RCTRL, BL_TOGG, BL_DEC, BL_INC, KC_P0, KC_PDOT ),
|
||||
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, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
# The default keymap for al1
|
||||
@@ -1,32 +1,35 @@
|
||||
/* Copyright 2018 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_split_bs(\
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRAVE, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||
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_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\
|
||||
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_P4, KC_P5, KC_P6, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT ),
|
||||
[1] = LAYOUT_split_bs(\
|
||||
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_GRAVE, KC_DELETE, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, RESET, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\
|
||||
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_P4, KC_P5, KC_P6, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_TRNS, KC_RGUI, KC_RCTRL, BL_TOGG, BL_DEC, BL_INC, KC_P0, KC_PDOT ),
|
||||
LAYOUT_split_bs(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
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_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
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_P4, KC_P5, KC_P6,
|
||||
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_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||
),
|
||||
|
||||
LAYOUT_split_bs(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,201 +1,92 @@
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include "print.h"
|
||||
#include "debug.h"
|
||||
#include "util.h"
|
||||
#include "matrix.h"
|
||||
|
||||
#ifndef DEBOUNCE
|
||||
# define DEBOUNCE 5
|
||||
#endif
|
||||
static uint8_t debouncing = DEBOUNCE;
|
||||
|
||||
static matrix_row_t matrix[MATRIX_ROWS];
|
||||
static matrix_row_t matrix_debouncing[MATRIX_ROWS];
|
||||
|
||||
static uint8_t read_rows(void);
|
||||
static void init_rows(void);
|
||||
static void unselect_cols(void);
|
||||
static void select_col(uint8_t col);
|
||||
|
||||
inline uint8_t matrix_rows(void) {
|
||||
return MATRIX_ROWS;
|
||||
}
|
||||
|
||||
inline uint8_t matrix_cols(void) {
|
||||
return MATRIX_COLS;
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_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) {
|
||||
}
|
||||
|
||||
void matrix_init(void) {
|
||||
// initialize row and col
|
||||
unselect_cols();
|
||||
init_rows();
|
||||
|
||||
// initialize matrix state: all keys off
|
||||
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
|
||||
matrix[i] = 0;
|
||||
matrix_debouncing[i] = 0;
|
||||
}
|
||||
matrix_init_quantum();
|
||||
}
|
||||
|
||||
uint8_t matrix_scan(void) {
|
||||
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
|
||||
select_col(col);
|
||||
_delay_us(3);
|
||||
uint8_t rows = read_rows();
|
||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||
bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<<col);
|
||||
bool curr_bit = rows & (1<<row);
|
||||
if (prev_bit != curr_bit) {
|
||||
matrix_debouncing[row] ^= ((matrix_row_t)1<<col);
|
||||
debouncing = DEBOUNCE;
|
||||
}
|
||||
}
|
||||
unselect_cols();
|
||||
}
|
||||
|
||||
if (debouncing) {
|
||||
if (--debouncing) {
|
||||
_delay_ms(1);
|
||||
} else {
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
matrix[i] = matrix_debouncing[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
matrix_scan_quantum();
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool matrix_is_modified(void) {
|
||||
if (debouncing)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool matrix_is_on(uint8_t row, uint8_t col) {
|
||||
return (matrix[row] & ((matrix_row_t)1<<col));
|
||||
}
|
||||
|
||||
inline matrix_row_t matrix_get_row(uint8_t row) {
|
||||
return matrix[row];
|
||||
}
|
||||
|
||||
void matrix_print(void) {
|
||||
print("\nr/c 0123456789ABCDEF\n");
|
||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||
xprintf("%02X: %032lb\n", row, bitrev32(matrix_get_row(row)));
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t matrix_key_count(void) {
|
||||
uint8_t count = 0;
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
count += bitpop32(matrix[i]);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
/* Row pin configuration
|
||||
*
|
||||
* row: 0 1 2 3 4 5
|
||||
* pin: C7 B1 B2 C6 B4 B5
|
||||
*
|
||||
*/
|
||||
static void init_rows(void)
|
||||
{
|
||||
DDRC &= ~0b11000000;
|
||||
DDRB &= ~0b00110110;
|
||||
PORTC |= 0b11000000;
|
||||
PORTB |= 0b00110110;
|
||||
}
|
||||
#include "gpio.h"
|
||||
|
||||
static uint8_t read_rows(void) {
|
||||
return (PINC&(1<<PC7) ? 0 : (1<<0)) |
|
||||
(PINB&(1<<PB1) ? 0 : (1<<1)) |
|
||||
(PINB&(1<<PB2) ? 0 : (1<<2)) |
|
||||
(PINC&(1<<PC6) ? 0 : (1<<3)) |
|
||||
(PINB&(1<<PB4) ? 0 : (1<<4)) |
|
||||
(PINB&(1<<PB5) ? 0 : (1<<5));
|
||||
}
|
||||
|
||||
/* Row pin configuration
|
||||
* pin: D3 D7 D6 D5 D4
|
||||
* row: off 0 x x x x
|
||||
* 0 1 0 0 0 0
|
||||
* 1 1 0 0 0 1
|
||||
* 2 1 0 0 1 0
|
||||
* 3 1 0 0 1 1
|
||||
* 4 1 0 1 0 0
|
||||
* 5 1 0 1 0 1
|
||||
* 6 1 0 1 1 0
|
||||
* 7 1 0 1 1 1
|
||||
* 8 1 1 0 0 0
|
||||
* 9 1 1 0 0 1
|
||||
* 10 1 1 0 1 0
|
||||
* 11 1 1 0 1 1
|
||||
* 12 1 1 1 0 0
|
||||
* 13 1 1 1 0 1
|
||||
* 14 1 1 1 1 0
|
||||
* 15 1 1 1 1 1
|
||||
*/
|
||||
static void unselect_cols(void)
|
||||
{
|
||||
// output high(DDR:1, PORT:1) to unselect
|
||||
DDRB |= (1 << PD3);
|
||||
PORTB |= (1 << PD3);
|
||||
return (readPin(C7) ? 0 : 1) |
|
||||
(readPin(B1) ? 0 : 2) |
|
||||
(readPin(B2) ? 0 : 4) |
|
||||
(readPin(C6) ? 0 : 8) |
|
||||
(readPin(B4) ? 0 : 16) |
|
||||
(readPin(B5) ? 0 : 32);
|
||||
}
|
||||
|
||||
static void select_col(uint8_t col) {
|
||||
DDRD |= (1<<PD3 | 1<<PD4 | 1<<PD5 | 1<<PD6 | 1<<PD7);
|
||||
writePinLow(D3);
|
||||
|
||||
PORTD &= ~(1<<PD3);
|
||||
|
||||
if (col & (1<<0)) {
|
||||
PORTD |= (1<<PD4);
|
||||
}
|
||||
else {
|
||||
PORTD &= ~(1<<PD4);
|
||||
}
|
||||
if (col & (1<<1)) {
|
||||
PORTD |= (1<<PD5);
|
||||
}
|
||||
else {
|
||||
PORTD &= ~(1<<PD5);
|
||||
}
|
||||
if (col & (1<<2)) {
|
||||
PORTD |= (1<<PD6);
|
||||
}
|
||||
else {
|
||||
PORTD &= ~(1<<PD6);
|
||||
}
|
||||
if (col & (1<<3)) {
|
||||
PORTD |= (1<<PD7);
|
||||
}
|
||||
else {
|
||||
PORTD &= ~(1<<PD7);
|
||||
}
|
||||
writePin(D4, (col & 1));
|
||||
writePin(D5, (col & 2));
|
||||
writePin(D6, (col & 4));
|
||||
writePin(D7, (col & 8));
|
||||
}
|
||||
|
||||
static void unselect_cols(void) {
|
||||
writePinHigh(D3);
|
||||
}
|
||||
|
||||
void matrix_init_custom(void) {
|
||||
/* 74HC154 col pin configuration
|
||||
* pin: D3 D7 D6 D5 D4
|
||||
* row: off 0 x x x x
|
||||
* 0 1 0 0 0 0
|
||||
* 1 1 0 0 0 1
|
||||
* 2 1 0 0 1 0
|
||||
* 3 1 0 0 1 1
|
||||
* 4 1 0 1 0 0
|
||||
* 5 1 0 1 0 1
|
||||
* 6 1 0 1 1 0
|
||||
* 7 1 0 1 1 1
|
||||
* 8 1 1 0 0 0
|
||||
* 9 1 1 0 0 1
|
||||
* 10 1 1 0 1 0
|
||||
* 11 1 1 0 1 1
|
||||
* 12 1 1 1 0 0
|
||||
* 13 1 1 1 0 1
|
||||
* 14 1 1 1 1 0
|
||||
* 15 1 1 1 1 1
|
||||
*/
|
||||
setPinOutput(D3);
|
||||
writePinHigh(D3);
|
||||
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D5);
|
||||
setPinOutput(D6);
|
||||
setPinOutput(D7);
|
||||
|
||||
|
||||
/* Row pin configuration
|
||||
*
|
||||
* row: 0 1 2 3 4 5
|
||||
* pin: C7 B1 B2 C6 B4 B5
|
||||
*
|
||||
*/
|
||||
setPinInputHigh(C7);
|
||||
setPinInputHigh(B1);
|
||||
setPinInputHigh(B2);
|
||||
setPinInputHigh(C6);
|
||||
setPinInputHigh(B4);
|
||||
setPinInputHigh(B5);
|
||||
}
|
||||
|
||||
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||
bool changed = false;
|
||||
|
||||
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
|
||||
select_col(col);
|
||||
matrix_io_delay();
|
||||
uint8_t rows = read_rows();
|
||||
|
||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||
bool prev_bit = current_matrix[row] & ((matrix_row_t)1 << col);
|
||||
bool curr_bit = rows & (1 << row);
|
||||
|
||||
if (prev_bit != curr_bit) {
|
||||
current_matrix[row] ^= ((matrix_row_t)1 << col);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
unselect_cols();
|
||||
}
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
@@ -2,15 +2,12 @@
|
||||
|
||||

|
||||
|
||||
Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Olivia](https://github.com/olivia)
|
||||
Hardware Supported: AL1 PCB
|
||||
Hardware Availability: [GroupBuy](https://geekhack.org/index.php?topic=93258.0)
|
||||
|
||||
Ported from [TriangleLab](https://github.com/TriangleLab)'s repo: https://github.com/TriangleLab/AL1-Firmware/tree/master/keyboards/al1
|
||||
* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Olivia](https://github.com/olivia)
|
||||
* Hardware Supported: AL1 PCB
|
||||
* Hardware Availability: [GroupBuy](https://geekhack.org/index.php?topic=93258.0)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make al1:default
|
||||
make al1:splitbs
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
||||
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).
|
||||
|
||||
@@ -2,19 +2,12 @@
|
||||
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 = no # Virtual DIP switch configuration
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
@@ -23,11 +16,10 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
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 = yes # Enable keyboard backlight functionality on B7 by default
|
||||
RGBLIGHT_ENABLE = no
|
||||
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
|
||||
CUSTOM_MATRIX = yes
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
CUSTOM_MATRIX = lite
|
||||
SRC += matrix.c
|
||||
|
||||
@@ -1,11 +1,51 @@
|
||||
/* Copyright 2021 Joshua T.
|
||||
*
|
||||
* 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
|
||||
|
||||
// Layer definitions
|
||||
// Do not allow one macro to contain the other macro
|
||||
#define DYNAMIC_MACRO_NO_NESTING
|
||||
|
||||
#define L_COLEMAK 0
|
||||
#define L_NUM 1
|
||||
#define L_EXTEND 2
|
||||
#define L_FUNC 3
|
||||
#define L_LL_R 4
|
||||
#define L_LL_E 5
|
||||
#define L_LL_I 6
|
||||
// "THE most important tap hold configuration setting"
|
||||
// https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt
|
||||
// https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
// This one is a style choice. Play with it both on and off to see which
|
||||
// one suits you better.
|
||||
// https://precondition.github.io/home-row-mods#permissive-hold
|
||||
// https://docs.qmk.fm/#/tap_hold?id=permissive-hold
|
||||
#define PERMISSIVE_HOLD
|
||||
|
||||
// If you press a dual-role key for longer than TAPPING_TERM, then
|
||||
// release it without pressing another key, without this setting nothing
|
||||
// would happen. With this setting, it sends the key's tap function.
|
||||
// https://precondition.github.io/home-row-mods#retro-tapping
|
||||
#define RETRO_TAPPING
|
||||
|
||||
// Disable some unused features to save space
|
||||
#undef LOCKING_SUPPORT_ENABLE
|
||||
#undef LOCKING_RESYNC_ENABLE
|
||||
|
||||
/////
|
||||
// Flags for stuff in my userspace
|
||||
|
||||
#define USER_INCLUDE_GAMING_LAYER
|
||||
#define USER_INCLUDE_MACRO_LAYER
|
||||
|
||||
// "Super Alt-Tab"
|
||||
// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab
|
||||
#define USER_SUPER_ALT_TAB_TIMEOUT 500
|
||||
|
||||
@@ -1,78 +1,95 @@
|
||||
/*
|
||||
* Keyboard: Atreus
|
||||
* Keymap: replicaJunction
|
||||
* Version: 2.1
|
||||
/* Copyright 2021 Joshua T.
|
||||
*
|
||||
* 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 "replicaJunction.h"
|
||||
|
||||
#define BSP_SYM LT(L_SYMBOLS, KC_BSPC)
|
||||
#define SPC_NAV LT(L_NAVIGATION, KC_SPC)
|
||||
#define EQL_FUN LT(L_FN, KC_EQL)
|
||||
|
||||
#define ESC_SFT LSFT_T(KC_ESC)
|
||||
#define TAB_SFT RSFT_T(KC_TAB)
|
||||
|
||||
#define DF_TYPE DF(L_BASE)
|
||||
#define DF_GAME DF(L_GAMING)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[L_COLEMAK] = LAYOUT(
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
|
||||
KC_A, KC_R_LT, KC_S_LT, KC_T, KC_G, KC_M, KC_N, KC_E_LT, KC_I_LT, KC_O,
|
||||
KX_Z_MT, KX_X_MT, KX_C_MT, KX_D_MT, KC_V, KC_K, KX_H_MT, KX_COMT, KX_DOMT, KX_SLMT,
|
||||
TD_LAYR, KC_LGUI, KC_TAB, KC_LSFT, KX_BKNM, KX_DCTL, KX_NALT, KX_SPAC, KC_RSFT, KC_MINS, KC_QUOT, KC_EQL
|
||||
)
|
||||
,
|
||||
[L_BASE] = LAYOUT(
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
|
||||
KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O,
|
||||
KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH,
|
||||
KC_ESC, KC_LGUI,KC_TAB, ESC_SFT,BSP_SYM,CTL_DEL,ALT_ENT,SPC_NAV,TAB_SFT,KC_MINS,KC_QUOT,EQL_FUN
|
||||
),
|
||||
|
||||
[L_NUM] = LAYOUT(
|
||||
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_SLSH, KC_COLN, KC_7, KC_8, KC_9, KC_SLSH,
|
||||
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_PIPE, KC_HASH, KC_4, KC_5, KC_6, KC_ASTR,
|
||||
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BSLS, KC_BSPC, KC_1, KC_2, KC_3, KC_MINS,
|
||||
_______, KC_AMPR, KC_TILD, KC_GRV, ooooooo, _______, KC_ENT, MO_FUNC, KC_0, KC_DOT, KC_EQL, KC_PLUS
|
||||
)
|
||||
,
|
||||
[L_GAMING] = LAYOUT(
|
||||
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
|
||||
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
|
||||
_______,_______,KC_C, KC_D, _______, _______,_______,_______,_______,_______,
|
||||
_______,KC_TAB, KC_LALT,KC_LSFT,KC_SPC, KC_LCTL,KC_LALT,KC_BSPC,KC_BTN1,KC_BTN2,KC_BTN3,_______
|
||||
),
|
||||
|
||||
[L_EXTEND] = LAYOUT(
|
||||
_______, _______, _______, KC_APP, KX_CGR, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL,
|
||||
KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
|
||||
_______, _______, _______, KX_SRCH, KX_PAST, _______, KX_STAB, KC_TAB, _______, KC_INS,
|
||||
_______, _______, _______, _______, MO_FUNC, KC_DEL, KC_ENT, _______, _______, _______, _______, KC_PSCR
|
||||
)
|
||||
,
|
||||
[L_NUMBERS] = LAYOUT(
|
||||
_______,_______,_______,_______,_______, KC_HASH,KC_7, KC_8, KC_9, KC_SLSH,
|
||||
_______,_______,_______,_______,_______, KC_PLUS,KC_4, KC_5, KC_6, KC_ASTR,
|
||||
_______,_______,_______,_______,_______, KC_MINS,KC_1, KC_2, KC_3, KC_BSLS,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,KC_0, KC_0, KC_DOT, KC_ENT
|
||||
),
|
||||
|
||||
[L_FUNC] = LAYOUT(
|
||||
_______, _______, M_LCLIK, M_RCLIK, M_MCLIK, KC_VOLU, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, M_WHLUP, KC_MUTE, KC_F5, KC_F6, KC_F7, KC_F8,
|
||||
M_LEFT, M_DOWN, M_UP, M_RIGHT, M_WHLDN, KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
,
|
||||
[L_SYMBOLS] = LAYOUT(
|
||||
KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX, XXXXXXX,KC_LBRC,KC_UNDS,KC_RBRC,XXXXXXX,
|
||||
KC_BSLS,KC_LPRN,KC_DQUO,KC_RPRN,KC_HASH, KC_PERC,KC_LCBR,KC_EQL, KC_RCBR,KC_PIPE,
|
||||
KC_EXLM,KC_COLN,KC_ASTR,KC_PLUS,XXXXXXX, XXXXXXX,KC_AMPR,KC_CIRC,KC_TILD,KC_GRV,
|
||||
_______,_______,_______,_______,ooooooo,_______,_______,ooooooo,CAPWORD,_______,_______,_______
|
||||
),
|
||||
|
||||
[L_LL_R] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, KC_COLN, KC_P7, KC_P8, KC_P9, KC_PSLS,
|
||||
_______, ooooooo, KC_AMPR, KC_PIPE, _______, KC_HASH, KC_P4, KC_P5, KC_P6, KC_PAST,
|
||||
_______, _______, _______, _______, _______, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PMNS,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, KC_PLUS
|
||||
)
|
||||
,
|
||||
[L_NAVIGATION] = LAYOUT(
|
||||
OS_UNDO,OS_CUT, OS_PAST,OS_COPY,OS_SALL, KC_PGUP,KC_HOME,KC_UP, KC_END, KC_DEL,
|
||||
KC_LGUI,KC_LALT,KC_LSFT,KC_LCTL,_______, KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_BSPC,
|
||||
WIN_V, _______,_______,OS_FIND,SEARCH, _______,SFT_TAB,KC_TAB, KC_APP, KC_PSCR,
|
||||
_______,_______,_______,NUMWORD,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______
|
||||
),
|
||||
|
||||
[L_LL_E] = LAYOUT(
|
||||
RJ_MAKE, RJ_EQ, RJ_LEQ, RJ_GEQ, RJ_GEQR, _______, _______, _______, _______, _______,
|
||||
_______, _______, RJ_SELS, RJ_DUND, _______, _______, _______, ooooooo, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
,
|
||||
[L_FN] = LAYOUT(
|
||||
RESET, _______,_______,_______,_______, KC_VOLU,KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
MS_JIGL,_______,_______,_______,_______, KC_MUTE,KC_F5, KC_F6, KC_F7, KC_F8,
|
||||
_______,K_SECR1,K_SECR2,K_SECR3,K_SECR4, KC_VOLD,KC_F1, KC_F2, KC_F3, KC_F4,
|
||||
DF_TYPE,DF_GAME,_______,_______,_______,KC_LCTL,KC_LALT,_______,_______,_______,_______,ooooooo
|
||||
),
|
||||
|
||||
[L_LL_I] = LAYOUT(
|
||||
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_SLSH, _______, KC_UNDS, KC_GRV, _______, _______,
|
||||
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_MINS, KC_QUOT, ooooooo, _______,
|
||||
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_TILD, KC_DQT, _______, _______,
|
||||
_______, KC_AMPR, KC_LABK, KC_RABK, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
[L_MACROS] = LAYOUT(
|
||||
QK_MAKE,_______,DM_REC2,DM_REC1,DM_RSTP, _______,SHEBANG,_______,_______,_______,
|
||||
QK_FLSH,_______,DM_PLY2,DM_PLY1,_______, PRG_NE, PRG_EQ, PRG_GEQ,PRG_LEQ,PRG_ARR,
|
||||
QK_VERS,_______,_______,_______,_______, _______,PS_ITEM,FS_PIPE,_______,FS_ARR,
|
||||
_______,_______,_______,_______,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______
|
||||
)
|
||||
|
||||
|
||||
// Template
|
||||
// [L_FUNC] = LAYOUT(
|
||||
// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
|
||||
// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
|
||||
// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||
// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
|
||||
// ),
|
||||
|
||||
};
|
||||
|
||||
// Uncomment any of these to add keyboard-specific code. Otherwise, they
|
||||
// will use user defaults defined in the replicaJunction.h header file.
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
return update_tri_layer_state(state, L_SYMBOLS, L_NAVIGATION, L_MACROS);
|
||||
}
|
||||
|
||||
// bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||
// return true;
|
||||
// }
|
||||
|
||||
// void matrix_init_keymap(void) {};
|
||||
|
||||
// void matrix_scan_keymap(void) {};
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
[{r:10,rx:1,y:-0.1,x:2},"F"],
|
||||
[{y:-0.65,x:1},"W",{x:1},"P"],
|
||||
[{y:-0.75},"Q"],
|
||||
[{y:-0.9,x:4},"B"],
|
||||
[{y:-0.7,x:2},"S"],
|
||||
[{y:-0.65,x:1,c:"#45b866"},"R",{x:1,c:"#cccccc"},"T"],
|
||||
[{y:-0.75},"A"],
|
||||
[{y:-0.9,x:4},"G"],
|
||||
[{y:-0.7,x:2},"C\n\n\n<i class='fa fa-windows'></i>"],
|
||||
[{y:-0.65,x:1},"X\n\n\nCtrl",{x:1},"D\n\n\nCtrlAlt"],
|
||||
[{y:-0.75},"Z"],
|
||||
[{y:-0.9,x:4},"V\n\n\nAlt"],
|
||||
[{y:-0.75,x:5,h:1.5},"Del\nCtrl"],
|
||||
[{y:-0.95,x:2},"Tab"],
|
||||
[{y:-0.65,x:1,a:7,fa:[7]},"<i class='fa fa-windows'></i>",{x:1,a:4,f:3},"Shift"],
|
||||
[{y:-0.75,f:3},"Layer tap"],
|
||||
[{y:-0.9,x:4,f:3},"<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>"],
|
||||
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,f:3},"U"],
|
||||
[{y:-0.65,x:1,f:3},"L",{x:1,f:3},"Y"],
|
||||
[{y:-0.75,x:4,f:3},":\n;"],
|
||||
[{y:-0.9,f:3},"J"],
|
||||
[{y:-0.7,x:2,c:"#ffb07b",f:3},"E"],
|
||||
[{y:-0.65,x:1,c:"#cccccc",f:3},"N",{x:1,c:"#5dcde3",f:3},"I"],
|
||||
[{y:-0.75,x:4,c:"#cccccc",f:3},"O"],
|
||||
[{y:-0.9,f:3},"M"],
|
||||
[{y:-0.7,x:2,f:3},"<\n,\n\nCtrlAlt"],
|
||||
[{y:-0.65,x:1,f:3},"H\n\n\nAlt",{x:1,f:3},">\n.\n\n<i class='fa fa-windows'></i>"],
|
||||
[{y:-0.75,x:4,f:3},"?\n/\n\nCtrl"],
|
||||
[{y:-0.9,f:3},"K"],
|
||||
[{y:-0.75,x:-1,f:3,h:1.5},"Enter\nAlt"],
|
||||
[{y:-0.95,x:2,f:3},"_\n-"],
|
||||
[{y:-0.65,x:1,f:3},"Shift",{x:1,f:3},"\"\n'"],
|
||||
[{y:-0.75,x:4,f:3},"+\n="],
|
||||
[{y:-0.9,c:"#ffe08d",f:3},"Space"]
|
||||
@@ -1,34 +0,0 @@
|
||||
[{r:10,rx:1,y:-0.1,x:2},"<="],
|
||||
[{y:-0.65,x:1},"==",{x:1},">="],
|
||||
[{y:-0.75},"make"],
|
||||
[{y:-0.9,x:4},"=>"],
|
||||
[{y:-0.7,x:2},"select *"],
|
||||
[{y:-0.65,x:1,a:7},"",{x:1,a:4},"$_"],
|
||||
[{y:-0.75,a:7},""],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{y:-0.7,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75},""],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{y:-0.75,x:5,h:1.5},""],
|
||||
[{y:-0.95,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75},""],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75,x:4},""],
|
||||
[{y:-0.9},""],
|
||||
[{y:-0.7,x:2,c:"#ffb07b"},""],
|
||||
[{y:-0.65,x:1,c:"#cccccc"},"",{x:1},""],
|
||||
[{y:-0.75,x:4},""],
|
||||
[{y:-0.9},""],
|
||||
[{y:-0.7,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75,x:4},""],
|
||||
[{y:-0.9},""],
|
||||
[{y:-0.75,x:-1,h:1.5},""],
|
||||
[{y:-0.95,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75,x:4},""],
|
||||
[{y:-0.9},""]
|
||||
@@ -1,35 +0,0 @@
|
||||
[{r:10,rx:1,y:-0.1,x:2},"RClick"],
|
||||
[{y:-0.65,x:1,a:7},"",{x:1,a:4},"LClick"],
|
||||
[{y:-0.75,a:7},""],
|
||||
[{y:-0.9,x:4,a:4},"MClick"],
|
||||
[{y:-0.7,x:2},"Alt"],
|
||||
[{y:-0.65,x:1},"Shift",{x:1},"Ctrl"],
|
||||
[{y:-0.75,a:7,fa:[7]},"<i class='fa fa-windows'></i>"],
|
||||
[{y:-0.9,x:4,a:4,fa:[5,0,0,0,0,0,0,0,0,0,7]},"<i class='kb kb-Unicode-Scroll-1'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Top-4'></i>"],
|
||||
[{y:-0.7,x:2,fa:[0,0,0,0,0,0,0,0,0,0,7]},"<i class='fa fa-mouse-pointer'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Up'></i>"],
|
||||
[{y:-0.65,x:1},"<i class='fa fa-mouse-pointer'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Down'></i>",{x:1},"<i class='fa fa-mouse-pointer'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Right'></i>"],
|
||||
[{y:-0.75},"<i class='fa fa-mouse-pointer'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Left'></i>"],
|
||||
[{y:-0.9,x:4,fa:[5,0,0,0,0,0,0,0,0,0,7]},"<i class='kb kb-Unicode-Scroll-1'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Bottom-4'></i>"],
|
||||
[{y:-0.75,x:5,a:7,h:1.5},""],
|
||||
[{y:-0.95,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75},""],
|
||||
[{y:-0.9,x:4,c:"#ffe08d"},""],
|
||||
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,c:"#cccccc",a:4,f:3},"F10"],
|
||||
[{y:-0.65,x:1,f:3},"F9",{x:1,f:3},"F11"],
|
||||
[{y:-0.75,x:4,f:3},"F12"],
|
||||
[{y:-0.9,a:7},""],
|
||||
[{y:-0.7,x:2,a:4,f:3},"F6"],
|
||||
[{y:-0.65,x:1,f:3},"F5",{x:1,f:3},"F7"],
|
||||
[{y:-0.75,x:4,f:3},"F8"],
|
||||
[{y:-0.9,a:7},""],
|
||||
[{y:-0.7,x:2,a:4,f:3},"F2"],
|
||||
[{y:-0.65,x:1,f:3},"F1",{x:1,f:3},"F3"],
|
||||
[{y:-0.75,x:4,f:3},"F4"],
|
||||
[{y:-0.9,a:7},""],
|
||||
[{y:-0.75,x:-1,h:1.5},""],
|
||||
[{y:-0.95,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75,x:4},""],
|
||||
[{y:-0.9,c:"#ffe08d"},""]
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
[{r:10,rx:1,y:-0.1,x:2},"{"],
|
||||
[{y:-0.65,x:1},"@",{x:1},"}"],
|
||||
[{y:-0.75},"!"],
|
||||
[{y:-0.9,x:4},"/"],
|
||||
[{y:-0.7,x:2},"("],
|
||||
[{y:-0.65,x:1},"$",{x:1},")"],
|
||||
[{y:-0.75},"#"],
|
||||
[{y:-0.9,x:4},"|"],
|
||||
[{y:-0.7,x:2},"["],
|
||||
[{y:-0.65,x:1},"^",{x:1},"]"],
|
||||
[{y:-0.75},"%"],
|
||||
[{y:-0.9,x:4},"\\"],
|
||||
[{y:-0.75,x:5,a:7,h:1.5},""],
|
||||
[{y:-0.95,x:2,a:4},"<"],
|
||||
[{y:-0.65,x:1},"&",{x:1},">"],
|
||||
[{y:-0.75,a:7},""],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,a:4},"`"],
|
||||
[{y:-0.65,x:1},"_",{x:1,a:7},""],
|
||||
[{y:-0.75,x:4},""],
|
||||
[{y:-0.9},""],
|
||||
[{y:-0.7,x:2,a:4},"'"],
|
||||
[{y:-0.65,x:1},"-",{x:1,c:"#5dcde3",a:7},""],
|
||||
[{y:-0.75,x:4,c:"#cccccc"},""],
|
||||
[{y:-0.9},""],
|
||||
[{y:-0.7,x:2,a:4},"\""],
|
||||
[{y:-0.65,x:1},"~",{x:1,a:7},""],
|
||||
[{y:-0.75,x:4},""],
|
||||
[{y:-0.9},""],
|
||||
[{y:-0.75,x:-1,h:1.5},""],
|
||||
[{y:-0.95,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75,x:4},""],
|
||||
[{y:-0.9},""]
|
||||
@@ -1,34 +0,0 @@
|
||||
[{r:10,rx:1,y:-0.1,x:2,a:7},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75},""],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{y:-0.7,x:2,a:4},"&"],
|
||||
[{y:-0.65,x:1,c:"#45b866",a:7},"",{x:1,c:"#cccccc",a:4},"|"],
|
||||
[{y:-0.75,a:7},""],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{y:-0.7,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75},""],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{y:-0.75,x:5,h:1.5},""],
|
||||
[{y:-0.95,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75},""],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,a:4},"8"],
|
||||
[{y:-0.65,x:1},"7",{x:1},"9"],
|
||||
[{y:-0.75,x:4},"/"],
|
||||
[{y:-0.9},":"],
|
||||
[{y:-0.7,x:2},"5"],
|
||||
[{y:-0.65,x:1},"4",{x:1},"6"],
|
||||
[{y:-0.75,x:4},"*"],
|
||||
[{y:-0.9},"#"],
|
||||
[{y:-0.7,x:2},"2"],
|
||||
[{y:-0.65,x:1},"1",{x:1},"3"],
|
||||
[{y:-0.75,x:4},"-"],
|
||||
[{y:-0.9},"<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>"],
|
||||
[{y:-0.75,x:-1,a:7,h:1.5},""],
|
||||
[{y:-0.95,x:2,a:4},"."],
|
||||
[{y:-0.65,x:1},"0",{x:1},"="],
|
||||
[{y:-0.75,x:4},"+"],
|
||||
[{y:-0.9},"Space"]
|
||||
@@ -1,34 +0,0 @@
|
||||
[{r:10,rx:1,y:-0.1,x:2,a:7},""],
|
||||
[{y:-0.65,x:1},"",{x:1,fa:[7]},"<i class='kb kb-Hamburger-Menu'></i>"],
|
||||
[{y:-0.75},""],
|
||||
[{y:-0.9,x:4},"<i class='fa fa-terminal'></i>"],
|
||||
[{y:-0.7,x:2,a:4,f:3},"Alt"],
|
||||
[{y:-0.65,x:1,f:3},"Shift",{x:1,f:3},"Ctrl"],
|
||||
[{y:-0.75,a:7},"<i class='fa fa-windows'></i>"],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{y:-0.7,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},"<i class='fa fa-search'></i>"],
|
||||
[{y:-0.75},""],
|
||||
[{y:-0.9,x:4},"<i class='fa fa-clipboard'></i>"],
|
||||
[{y:-0.75,x:5,h:1.5},""],
|
||||
[{y:-0.95,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75},""],
|
||||
[{y:-0.9,x:4},""],
|
||||
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2},"<i class='kb kb-Arrows-Up'></i>"],
|
||||
[{y:-0.65,x:1,a:4,f:3},"Home",{x:1,f:3},"End"],
|
||||
[{y:-0.75,x:4,f:3},"Delete"],
|
||||
[{y:-0.9,f:3},"PgUp"],
|
||||
[{y:-0.7,x:2,a:7},"<i class='kb kb-Arrows-Down'></i>"],
|
||||
[{y:-0.65,x:1},"<i class='kb kb-Arrows-Left'></i>",{x:1},"<i class='kb kb-Arrows-Right'></i>"],
|
||||
[{y:-0.75,x:4,a:4,f:3},"Bksp"],
|
||||
[{y:-0.9,f:3},"PgDn"],
|
||||
[{y:-0.7,x:2,f:3},"Tab"],
|
||||
[{y:-0.65,x:1,f:3},"Shift+\n\n\n\n\n\nTab",{x:1,a:7},""],
|
||||
[{y:-0.75,x:4,a:4,f:3},"Insert"],
|
||||
[{y:-0.9,a:7},""],
|
||||
[{y:-0.75,x:-1,h:1.5},""],
|
||||
[{y:-0.95,x:2},""],
|
||||
[{y:-0.65,x:1},"",{x:1},""],
|
||||
[{y:-0.75,x:4,a:4,f:3},"Prnt Scrn"],
|
||||
[{y:-0.9,c:"#ffe08d",a:7},""]
|
||||
@@ -1,103 +1,7 @@
|
||||
# replicaJunction - Atreus Layout
|
||||
|
||||
This layout is designed to make the absolute most out of the Atreus 40% keyboard.
|
||||
I no longer actively use this keyboard. I've replaced it with the [Keyboardio Atreus](../../../keyboardio/atreus/keymaps/replicaJunction/readme.md).
|
||||
|
||||
This layout is probably not perfect for you. That's okay! Use it for ideas as you design your own perfect layout.
|
||||
I still try to make sure the layout compiles, but I'm no longer tweaking it or adding new features.
|
||||
|
||||
Most of the custom logic in this keyboard is actually not in these files. Instead, it's in the directory `/users/replicaJunction` (from the root of the QMK repo). This allows me to share macros and custom logic between multiple keyboards. A `process_record_keyboard()` function defined weakly in `replicaJunction.h` allows keyboards to process records individually as well without overriding the `process_record_user()` function. (My Ergodox uses this to handle its LEDs, for example.)
|
||||
|
||||
The default letter layout in this keymap is [Colemak-ModDH](https://colemakmods.github.io/mod-dh/). I use the "matrix version" of that layout, which retains the M key on the home row as in normal Colemak.
|
||||
|
||||
## Design Goals
|
||||
|
||||
I designed this layout with the following goals in mind:
|
||||
|
||||
* Nothing may interfere with ordinary typing.
|
||||
* Symbols need to be accessible quickly and organized in a manner I can remember.
|
||||
* Limit more difficult finger movements (and pinky usage in general).
|
||||
|
||||
### Nothing may interfere with ordinary typing
|
||||
|
||||
For a long time, this meant that I couldn't use letters or home row keys as dual-role keys. I'm a fast typer, and I'm sometimes already typing the next letter before I've fully released the previous one. Normal keyboards don't care about this, but if I started adding dual-role functionality to letters, I found that I would sometimes type the next letter before releasing the layer toggle, and the letter I tried to send would still be sent under the layer I thought I'd left off.
|
||||
|
||||
Fortunately, though, QMK has addressed this with the `PERMISSIVE_HOLD` flag. [Details are on the QMK docs page.](https://docs.qmk.fm/#/feature_advanced_keycodes?id=permissive-hold)
|
||||
|
||||
Using that flag, I'm comfortable having layer shift keys on the home row, and this goes a long way to eliminate finger stress.
|
||||
|
||||
### Sympols need to be accessible quickly
|
||||
|
||||
Symbols are available under my left hand by holding the I key (on my right hand). I've grouped parenthesis, slashes, and braces together; the remaining symbols are ordered in the same way as they appear on USA keycap legends (for example, 1 is !, so that symbol is first in my lineup). Practically, I just had to get used to these other "misc" symbols.
|
||||
|
||||
This also means that some symbols are accessible in more than one way. For example, the carats (greater than and less than) are available both in the "normal" location (Shift+Comma / Shift+Period) and on the symbol layer. I make regular changes to some of the symbols I don't use as commonly as I think of them.
|
||||
|
||||
### Limit more difficult finger movements
|
||||
|
||||
This is why I kept trying to put layer toggles on the home row keys instead of just placing them on random thumb keys. I suffer from RSI, and it's important for me to watch out for more "stressful" finger movements.
|
||||
|
||||
The home row is the easiest row for your fingers to hit, followed by the upper row, and the lower row is noticeably more difficult to press. Because of this, I favored the upper row over the lower one any time I had the option to do so.
|
||||
|
||||
## Features
|
||||
|
||||
### ZXC Mods
|
||||
|
||||
Keys on the bottom row of each half of this keyboard can be held to send modifier keys. I've tried to map this in a relatively logical manner:
|
||||
|
||||
* Z / Slash: Ctrl
|
||||
* X / Period: GUI
|
||||
* C / Comma: Ctrl+Alt
|
||||
* D / H: Alt
|
||||
|
||||
Combined with Shift keys on the thumbs, this makes all modifiers quick to access on either hand.
|
||||
|
||||
### Layer tap dance
|
||||
|
||||
The lower-left key on the left hand can be used to apply or remove layers based on a number of taps:
|
||||
|
||||
* 1 tap sends Escape, and also disables any persistent layers.
|
||||
* 2 taps enables the Number pad layer.
|
||||
* 5 or more taps resets the keyboard.
|
||||
|
||||
## Extend Layer
|
||||
|
||||
[Originally found on the Colemak forums](https://forum.colemak.com/topic/2014-extend-extra-extreme/), having a QMK-powered keyboard allows a super easy implementation of this concept. The idea is to place commonly-used keys under easy reach of your hands. Since I work with text often, my most common needs are things like Ctrl+Shift+arrow keys, and they're easy to access using this layer. (While technically it's four keypresses instead of just three, since it takes one key to enter the layer, that one key is a thumb button and the other three are all on the home row, so I find it much more comfortable than modifiers on a traditional keyboard.)
|
||||
|
||||
Also featured in this layer is easy access to Tab, plus a Shift+Tab key. Alt-Tabbing back and forth, along with Ctrl-Tab, are super easy and friendly. When I need Ctrl+Alt+Delete, I typically use the ones found on this layer.
|
||||
|
||||
## Layout Images
|
||||
|
||||
Colored keys indicate keys that swap to another layer when held.
|
||||
|
||||
These images are located in the `kle` folder of this directory. Also included is the "raw data" from Keyboard-Layout-Editor in a corresponding text file.
|
||||
|
||||
### Base layer
|
||||
|
||||

|
||||
|
||||
### R layer
|
||||
|
||||

|
||||
|
||||
### E layer
|
||||
|
||||

|
||||
|
||||
### I layer
|
||||
|
||||

|
||||
|
||||
### Space layer
|
||||
|
||||

|
||||
|
||||
### Function layer
|
||||
|
||||

|
||||
|
||||
## Credits
|
||||
|
||||
* [Drashna](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme.md)
|
||||
* User / keymap function ideas
|
||||
* [Jeremy](https://github.com/qmk/qmk_firmware/blob/master/keyboards/atreus/keymaps/jeremy/readme.md)
|
||||
* Sanity check on the Function keys (_of course they should be in rows of 4, not rows of 3 like a number pad. Why did I ever use anything else?_)
|
||||
* [DreymaR of the Colemak forums](https://forum.colemak.com/topic/2014-extend-extra-extreme/)
|
||||
* Original idea of the Extend layer
|
||||
Most of the interesting features in this layout are defined in [my userspace folder](../../../../users/replicaJunction/readme.md). Refer to the documentation and code there for more details.
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
# https://docs.qmk.fm/getting_started_make_guide.html
|
||||
# Userspace options
|
||||
USER_CAPS_WORD_ENABLE = yes
|
||||
USER_MOUSE_JIGGLE_ENABLE = yes
|
||||
USER_NUM_WORD_ENABLE = yes
|
||||
USER_SECRETS_ENABLE = yes
|
||||
|
||||
MOUSEKEY_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = yes
|
||||
# KEY_LOCK_ENABLE = yes
|
||||
# CONSOLE_ENABLE = no
|
||||
# COMMAND_ENABLE = no
|
||||
DYNAMIC_MACRO_ENABLE = yes
|
||||
|
||||
# Use the "Unicode map" method
|
||||
# UNICODE_ENABLE = no
|
||||
# UNICODEMAP_ENABLE = yes
|
||||
# Extra features that are nice but takes space. Enable only if they're
|
||||
# used in the layout.
|
||||
WPM_ENABLE = no
|
||||
# EXTRAKEY_ENABLE = no # For volume keys and similar
|
||||
# MOUSEKEY_ENABLE = no # Them mouse keys yo
|
||||
KEY_OVERRIDE_ENABLE = no
|
||||
LEADER_ENABLE = no
|
||||
TAP_DANCE_ENABLE = no
|
||||
# RGBLIGHT_ENABLE = no # Keyboard RGB underglow
|
||||
RGB_MATRIX_ENABLE = no
|
||||
|
||||
# Features I definitely don't care aboud
|
||||
LTO_ENABLE = yes
|
||||
CONSOLE_ENABLE = no
|
||||
VERBOSE = no
|
||||
DEBUG_MATRIX_SCAN_RATE = no
|
||||
DEBUG_MATRIX = no
|
||||
MAGIC_ENABLE = no
|
||||
SPACE_CADET_ENABLE = no
|
||||
GRAVE_ESC_ENABLE = no
|
||||
|
||||
66
keyboards/basketweave/keymaps/via/keymap.c
Normal file
66
keyboards/basketweave/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,66 @@
|
||||
/* Copyright 2021 null-ll
|
||||
*
|
||||
* 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_default( /* base */
|
||||
KC_GESC, 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_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_MUTE,
|
||||
KC_DEL, 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, KC_UP,
|
||||
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
|
||||
[1] = LAYOUT_default( /* fn */
|
||||
/* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */
|
||||
KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
|
||||
/* ins tab Q W E R T Y U I O P [ ] \ rotary */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
|
||||
/* del caps A S D F G H J K L ; ' enter */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS,
|
||||
/* shift Z X C V B B N M , . / shift up */
|
||||
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP,
|
||||
/* ctrl alt space fn space alt ctrl left down right */
|
||||
KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END
|
||||
),
|
||||
|
||||
[2] = LAYOUT_default( /* extra */
|
||||
/* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
/* ins tab Q W E R T Y U I O P [ ] \ rotary */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
/* del caps A S D F G H J K L ; ' enter */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS,
|
||||
/* shift Z X C V B B N M , . / shift up */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
/* ctrl alt space fn space alt ctrl left down right */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
2
keyboards/basketweave/keymaps/via/rules.mk
Normal file
2
keyboards/basketweave/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
57
keyboards/bastardkb/skeletyl/config.h
Normal file
57
keyboards/bastardkb/skeletyl/config.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright 2021 Quentin LEBASTARD <qlebastard@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"
|
||||
#define VENDOR_ID 0xA8F8
|
||||
#define PRODUCT_ID 0x1830
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Bastard Keyboards
|
||||
#define PRODUCT Skeletyl
|
||||
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 5
|
||||
#define RGBLIGHT_LIMIT_VAL 180
|
||||
#define MATRIX_ROW_PINS { B5, F7, F6, B6 }
|
||||
#define MATRIX_COL_PINS { E6, C6, B1, B3, B2 }
|
||||
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
|
||||
#define RGB_DI_PIN D2
|
||||
#define RGBLED_NUM 36
|
||||
#define RGBLED_SPLIT { 18, 18 }
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define SOFT_SERIAL_PIN D0
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
#define MASTER_RIGHT
|
||||
|
||||
// RGB matrix support
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
# define SPLIT_TRANSPORT_MIRROR
|
||||
# define DRIVER_LED_TOTAL 36 // Number of LEDs
|
||||
# define RGB_MATRIX_SPLIT { 18, 18 }
|
||||
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50
|
||||
# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||
# ifndef RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
# define RGB_DISABLE_WHEN_USB_SUSPENDED true
|
||||
# endif
|
||||
# define RGB_MATRIX_KEYPRESSES
|
||||
#endif
|
||||
49
keyboards/bastardkb/skeletyl/info.json
Normal file
49
keyboards/bastardkb/skeletyl/info.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"keyboard_name": "Skeletyl",
|
||||
"url": "https://www.bastardkb.com",
|
||||
"maintainer": "Quentin Lebastard",
|
||||
"width": 17,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x5_3": {
|
||||
"layout": [
|
||||
{"label":"L00", "x":0, "y":0},
|
||||
{"label":"L01", "x":1, "y":0},
|
||||
{"label":"L02", "x":2, "y":0},
|
||||
{"label":"L03", "x":3, "y":0},
|
||||
{"label":"L04", "x":4, "y":0},
|
||||
{"label":"R00", "x":11, "y":0},
|
||||
{"label":"R01", "x":12, "y":0},
|
||||
{"label":"R02", "x":13, "y":0},
|
||||
{"label":"R03", "x":14, "y":0},
|
||||
{"label":"R04", "x":15, "y":0},
|
||||
{"label":"L10", "x":0, "y":1},
|
||||
{"label":"L11", "x":1, "y":1},
|
||||
{"label":"L12", "x":2, "y":1},
|
||||
{"label":"L13", "x":3, "y":1},
|
||||
{"label":"L14", "x":4, "y":1},
|
||||
{"label":"R10", "x":11, "y":1},
|
||||
{"label":"R11", "x":12, "y":1},
|
||||
{"label":"R12", "x":13, "y":1},
|
||||
{"label":"R13", "x":14, "y":1},
|
||||
{"label":"R14", "x":15, "y":1},
|
||||
{"label":"L20", "x":0, "y":2},
|
||||
{"label":"L21", "x":1, "y":2},
|
||||
{"label":"L22", "x":2, "y":2},
|
||||
{"label":"L23", "x":3, "y":2},
|
||||
{"label":"L24", "x":4, "y":2},
|
||||
{"label":"R20", "x":11, "y":2},
|
||||
{"label":"R21", "x":12, "y":2},
|
||||
{"label":"R22", "x":13, "y":2},
|
||||
{"label":"R23", "x":14, "y":2},
|
||||
{"label":"R24", "x":15, "y":2},
|
||||
{"label":"L33", "x":4, "y":3},
|
||||
{"label":"L34", "x":5, "y":3},
|
||||
{"label":"L31", "x":6, "y":3},
|
||||
{"label":"R33", "x":9, "y":3},
|
||||
{"label":"R34", "x":10, "y":3},
|
||||
{"label":"R31", "x":11, "y":3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
70
keyboards/bastardkb/skeletyl/keymaps/default/keymap.c
Normal file
70
keyboards/bastardkb/skeletyl/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright 2021 Quentin LEBASTARD <qlebastard@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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_split_3x5_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
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_LGUI, KC_SPC , MO(1), MO(2), KC_ENT , KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
|
||||
),
|
||||
|
||||
[1] = LAYOUT_split_3x5_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, KC_SPC, _______, MO(3), KC_ENT, KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[2] = LAYOUT_split_3x5_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, KC_SPC, MO(3), _______, KC_ENT, KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[3] = LAYOUT_split_3x5_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT
|
||||
//`--------------------------' `--------------------------'
|
||||
)
|
||||
};
|
||||
17
keyboards/bastardkb/skeletyl/readme.md
Normal file
17
keyboards/bastardkb/skeletyl/readme.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Skeletyl
|
||||
|
||||
A very small keyboard made for ergonomic enthusiasts.
|
||||
|
||||
* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/)
|
||||
* Hardware Supported: elite-C V4
|
||||
* Hardware Availability: [Bastardkb.com](https://bastardkb.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make bastardkb/skeletyl:default
|
||||
|
||||
This keyboard is made to be used with the Miryoku layout, do not use the default keymap.
|
||||
|
||||
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 [keyboard build instructions](http://docs.bastardkb.com/)
|
||||
33
keyboards/bastardkb/skeletyl/rules.mk
Normal file
33
keyboards/bastardkb/skeletyl/rules.mk
Normal file
@@ -0,0 +1,33 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
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 = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE)
|
||||
RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
SPLIT_KEYBOARD = yes
|
||||
TAP_DANCE_ENABLE = no
|
||||
LTO_ENABLE = yes
|
||||
|
||||
AUDIO_SUPPORTED = no
|
||||
RGB_MATRIX_SUPPORTED = yes
|
||||
RGBLIGHT_SUPPORTED = yes
|
||||
|
||||
LAYOUTS = split_3x5_3
|
||||
81
keyboards/bastardkb/skeletyl/skeletyl.c
Normal file
81
keyboards/bastardkb/skeletyl/skeletyl.c
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Copyright 2021 Quentin LEBASTARD <qlebastard@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 "skeletyl.h"
|
||||
|
||||
/**
|
||||
* LEDs index.
|
||||
*
|
||||
* ╭────────────────────╮ ╭────────────────────╮
|
||||
* 2 3 8 9 12 30 27 26 21 20
|
||||
* ├────────────────────┤ ├────────────────────┤
|
||||
* 1 4 7 10 13 31 28 25 22 19
|
||||
* ├────────────────────┤ ├────────────────────┤
|
||||
* 0 5 6 11 14 32 29 24 23 18
|
||||
* ╰────────────────────╯ ╰────────────────────╯
|
||||
* 15 16 17 35 34 33
|
||||
* ╰────────────╯ ╰────────────╯
|
||||
*/
|
||||
// clang-format off
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
led_config_t g_led_config = { {
|
||||
/* Key Matrix to LED index. */
|
||||
// Left split.
|
||||
{ 2, 3, 8, 9, 12 }, // Top row
|
||||
{ 1, 4, 7, 10, 13 }, // Middle row
|
||||
{ 0, 5, 6, 11, 14 }, // Bottom row
|
||||
{ 17, NO_LED, 15, 16, NO_LED }, // Thumb cluster
|
||||
// Right split.
|
||||
{ 20, 21, 26, 27, 30 }, // Top row
|
||||
{ 19, 22, 25, 28, 31 }, // Middle row
|
||||
{ 18, 23, 24, 29, 32 }, // Bottom row
|
||||
{ 35, NO_LED, 33, 34, NO_LED }, // Thumb cluster
|
||||
}, {
|
||||
/* LED index to physical position. */
|
||||
// Left split.
|
||||
/* index=0 */ { 0, 42 }, { 0, 21 }, { 0, 0 }, // col 1 (left most)
|
||||
/* index=3 */ { 18, 0 }, { 18, 21 }, { 18, 42 }, // col 2
|
||||
/* index=6 */ { 36, 42 }, { 36, 21 }, { 36, 0 },
|
||||
/* index=9 */ { 54, 0 }, { 54, 21 }, { 54, 42 },
|
||||
/* index=12 */ { 72, 0 }, { 72, 21 }, { 72, 42 },
|
||||
/* index=15 */ { 72, 64 }, { 90, 64 }, { 108, 64 }, // Thumb cluster
|
||||
// Right split.
|
||||
/* index=18 */ { 224, 42 }, { 224, 21 }, { 224, 0 }, // col 10 (right most)
|
||||
/* index=21 */ { 206, 0 }, { 206, 21 }, { 206, 42 }, // col 9
|
||||
/* index=24 */ { 188, 42 }, { 188, 21 }, { 188, 0 },
|
||||
/* index=27 */ { 170, 0 }, { 170, 21 }, { 170, 42 },
|
||||
/* index=30 */ { 152, 0 }, { 152, 21 }, { 152, 42 },
|
||||
/* index=33 */ { 152, 64 }, { 134, 64 }, { 116, 64 }, // Thumb cluster
|
||||
}, {
|
||||
/* LED index to flag. */
|
||||
// Left split.
|
||||
/* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1
|
||||
/* index=3 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2
|
||||
/* index=6 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
|
||||
/* index=9 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
|
||||
/* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
|
||||
/* index=15 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster
|
||||
// Right split.
|
||||
/* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10
|
||||
/* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9
|
||||
/* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
|
||||
/* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
|
||||
/* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
|
||||
/* index=33 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster
|
||||
} };
|
||||
#endif
|
||||
// clang-format on
|
||||
38
keyboards/bastardkb/skeletyl/skeletyl.h
Normal file
38
keyboards/bastardkb/skeletyl/skeletyl.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright 2021 Quentin LEBASTARD <qlebastard@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
|
||||
#define LAYOUT_split_3x5_3( \
|
||||
k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \
|
||||
k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \
|
||||
k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \
|
||||
k33, k34, k31, k71, k74, k73 \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04 }, \
|
||||
{ k10, k11, k12, k13, k14 }, \
|
||||
{ k20, k21, k22, k23, k24 }, \
|
||||
{ k31, KC_NO, k33, k34, KC_NO }, \
|
||||
{ k40, k41, k42, k43, k44 }, \
|
||||
{ k50, k51, k52, k53, k54 }, \
|
||||
{ k60, k61, k62, k63, k64 }, \
|
||||
{ k71, KC_NO, k73, k74, KC_NO }, \
|
||||
}
|
||||
// clang-format on
|
||||
@@ -21,3 +21,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
SPLIT_KEYBOARD = yes
|
||||
|
||||
LAYOUTS = split_3x5_3
|
||||
|
||||
55
keyboards/cest73/tkm/config.h
Normal file
55
keyboards/cest73/tkm/config.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Copyright 2021 cest73
|
||||
*
|
||||
* 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 0xBADD
|
||||
#define PRODUCT_ID 0xAA55
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER cest73
|
||||
#define PRODUCT TKM-2021 R1.03
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 11
|
||||
#define MATRIX_COLS 10
|
||||
|
||||
/* matrix sz handy ruler: 1 2 3 4 5 6 7 8 9 10 11 12 */
|
||||
/* key matrix pins */
|
||||
/* row handy ruler: r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 */
|
||||
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, C6, C7, D0 }
|
||||
/* column handy ruler: c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 */
|
||||
#define MATRIX_COL_PINS { D1, D2, D3, D4, D5, D6, D7, F0, F1, F4 }
|
||||
#define UNUSED_PINS { AF }
|
||||
|
||||
//NOTE: if D6 pin shows any issues in exploatation the LED on the Teensy is to be removed
|
||||
|
||||
#define LED_NUM_LOCK_PIN F6
|
||||
#define LED_CAPS_LOCK_PIN F5
|
||||
#define LED_SCROLL_LOCK_PIN F7
|
||||
#define LED_PIN_ON_STATE 0
|
||||
//TODO change the E6 pin to either B5, B6, B7 or C6 to utilize hardware PWM on a future PCB revision
|
||||
#define BACKLIGHT_PIN E6
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* force n-key rollover*/
|
||||
#define FORCE_NKRO
|
||||
128
keyboards/cest73/tkm/info.json
Normal file
128
keyboards/cest73/tkm/info.json
Normal file
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"keyboard_name": "TKM 2021",
|
||||
"url": "https://geekhack.org/index.php?topic=110499",
|
||||
"maintainer": "cest73 (aka fire-h0und)",
|
||||
"width": 21,
|
||||
"height": 6.75,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label":"Fn", "x":0, "y":0},
|
||||
{"label":"PrtSc", "x":1, "y":0},
|
||||
{"label":"Scroll Lock", "x":2, "y":0},
|
||||
{"label":"Pause", "x":3, "y":0},
|
||||
{"label":"Esc", "x":4.5, "y":0},
|
||||
{"label":"F1", "x":6, "y":0},
|
||||
{"label":"F2", "x":7, "y":0},
|
||||
{"label":"F3", "x":8, "y":0},
|
||||
{"label":"F4", "x":9, "y":0},
|
||||
{"label":"F5", "x":10.25, "y":0},
|
||||
{"label":"F6", "x":11.25, "y":0},
|
||||
{"label":"F7", "x":12.25, "y":0},
|
||||
{"label":"F8", "x":13.25, "y":0},
|
||||
{"label":"F9", "x":14.5, "y":0},
|
||||
{"label":"F10", "x":15.5, "y":0},
|
||||
{"label":"F11", "x":16.5, "y":0},
|
||||
{"label":"F12", "x":17.5, "y":0},
|
||||
{"label":"Home", "x":19, "y":0},
|
||||
{"label":"PgUp", "x":20, "y":0},
|
||||
|
||||
{"label":"-", "x":0, "y":1.5},
|
||||
{"label":"*", "x":1, "y":1.5},
|
||||
{"label":"/", "x":2, "y":1.5},
|
||||
{"label":"Num Lock", "x":3, "y":1.5},
|
||||
{"label":"~", "x":4.5, "y":1.5},
|
||||
{"label":"!", "x":5.5, "y":1.5},
|
||||
{"label":"\"", "x":6.5, "y":1.5},
|
||||
{"label":"\u00a3", "x":7.5, "y":1.5},
|
||||
{"label":"$", "x":8.5, "y":1.5},
|
||||
{"label":"%", "x":9.5, "y":1.5},
|
||||
{"label":"^", "x":10.5, "y":1.5},
|
||||
{"label":"&", "x":11.5, "y":1.5},
|
||||
{"label":"*", "x":12.5, "y":1.5},
|
||||
{"label":"(", "x":13.5, "y":1.5},
|
||||
{"label":")", "x":14.5, "y":1.5},
|
||||
{"label":"_", "x":15.5, "y":1.5},
|
||||
{"label":"+", "x":16.5, "y":1.5},
|
||||
{"label":"Backspace", "x":17.5, "y":1.5},
|
||||
{"label":"Backspace", "x":18.5, "y":1.5},
|
||||
{"label":"Insert", "x":20, "y":1.5},
|
||||
|
||||
{"label":"+", "x":0, "y":2.5},
|
||||
{"label":"9", "x":1, "y":2.5},
|
||||
{"label":"8", "x":2, "y":2.5},
|
||||
{"label":"7", "x":3, "y":2.5},
|
||||
{"label":"Tab", "x":4.5, "y":2.5, "w":1.5},
|
||||
{"label":"Q", "x":6, "y":2.5},
|
||||
{"label":"W", "x":7, "y":2.5},
|
||||
{"label":"E", "x":8, "y":2.5},
|
||||
{"label":"R", "x":9, "y":2.5},
|
||||
{"label":"T", "x":10, "y":2.5},
|
||||
{"label":"Y", "x":11, "y":2.5},
|
||||
{"label":"U", "x":12, "y":2.5},
|
||||
{"label":"I", "x":13, "y":2.5},
|
||||
{"label":"O", "x":14, "y":2.5},
|
||||
{"label":"P", "x":15, "y":2.5},
|
||||
{"label":"{", "x":16, "y":2.5},
|
||||
{"label":"}", "x":17, "y":2.5},
|
||||
{"label":"Backslash", "x":18, "y":2.5, "w":1.5},
|
||||
{"label":"Delete", "x":20, "y":2.5},
|
||||
|
||||
{"label":"+", "x":0, "y":3.5},
|
||||
{"label":"6", "x":1, "y":3.5},
|
||||
{"label":"5", "x":2, "y":3.5},
|
||||
{"label":"4", "x":3, "y":3.5},
|
||||
{"label":"CAPS", "x":4.5, "y":3.5, "w":1.25},
|
||||
{"label":"A", "x":6.25, "y":3.5},
|
||||
{"label":"S", "x":7.25, "y":3.5},
|
||||
{"label":"D", "x":8.25, "y":3.5},
|
||||
{"label":"F", "x":9.25, "y":3.5},
|
||||
{"label":"G", "x":10.25, "y":3.5},
|
||||
{"label":"H", "x":11.25, "y":3.5},
|
||||
{"label":"J", "x":12.25, "y":3.5},
|
||||
{"label":"K", "x":13.25, "y":3.5},
|
||||
{"label":"L", "x":14.25, "y":3.5},
|
||||
{"label":":", "x":15.25, "y":3.5},
|
||||
{"label":"@", "x":16.25, "y":3.5},
|
||||
{"label":"|", "x":17.25, "y":3.5},
|
||||
{"label":"Enter", "x":18.25, "y":3.5, "w":1.25},
|
||||
{"label":"PgDn", "x":20, "y":3.5},
|
||||
|
||||
{"label":"Enter", "x":0, "y":4.5},
|
||||
{"label":"3", "x":1, "y":4.5},
|
||||
{"label":"2", "x":2, "y":4.5},
|
||||
{"label":"1", "x":3, "y":4.5},
|
||||
{"label":"Shift", "x":4.5, "y":4.5, "w":1.25},
|
||||
{"label":"|", "x":5.75, "y":4.5},
|
||||
{"label":"Z", "x":6.75, "y":4.5},
|
||||
{"label":"X", "x":7.75, "y":4.5},
|
||||
{"label":"C", "x":8.75, "y":4.5},
|
||||
{"label":"V", "x":9.75, "y":4.5},
|
||||
{"label":"B", "x":10.75, "y":4.5},
|
||||
{"label":"N", "x":11.75, "y":4.5},
|
||||
{"label":"M", "x":12.75, "y":4.5},
|
||||
{"label":"<", "x":13.75, "y":4.5},
|
||||
{"label":">", "x":14.75, "y":4.5},
|
||||
{"label":"?", "x":15.75, "y":4.5},
|
||||
{"label":"Shift", "x":16.75, "y":4.5, "w":1.75},
|
||||
{"label":"\u2191", "x":18.75, "y":4.75},
|
||||
{"label":"End", "x":20, "y":4.5},
|
||||
|
||||
{"label":"Enter", "x":0, "y":5.5},
|
||||
{"label":".", "x":1, "y":5.5},
|
||||
{"label":",", "x":2, "y":5.5},
|
||||
{"label":"0", "x":3, "y":5.5},
|
||||
{"label":"Ctrl", "x":4.5, "y":5.5, "w":1.25},
|
||||
{"label":"Win", "x":5.75, "y":5.5},
|
||||
{"label":"Alt", "x":6.75, "y":5.5, "w":1.25},
|
||||
{"label":"Space", "x":8, "y":5.5, "w":6.25},
|
||||
{"label":"AltGr", "x":14.25, "y":5.5},
|
||||
{"label":"Menu", "x":15.25, "y":5.5},
|
||||
{"label":"Ctrl", "x":16.25, "y":5.5, "w":1.25},
|
||||
{"label":"\u2190", "x":17.75, "y":5.75},
|
||||
{"label":"\u2193", "x":18.75, "y":5.75},
|
||||
{"label":"\u2192", "x":19.75, "y":5.75}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
79
keyboards/cest73/tkm/keymaps/default/keymap.c
Normal file
79
keyboards/cest73/tkm/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,79 @@
|
||||
/* Copyright 2021 cest73
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN
|
||||
};
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┐ ┌───┐ ┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┐
|
||||
* │Fn │PSc│Scr│Pse│ │Esc│ │F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12│ │Hme│PgU│
|
||||
* └───┴───┴───┴───┘ └───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┘
|
||||
*
|
||||
* ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
|
||||
* │ - │ * │ / │Num│ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsl│Bsp│ │Ins│
|
||||
* ├───┼───┼───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤
|
||||
* │ + │ 9 │ 8 │ 7 │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│
|
||||
* ├───┼───┼───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│ ├───┤
|
||||
* │ = │ 6 │ 5 │ 4 │ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Etl│ Ent│ │PgD│
|
||||
* ├───┼───┼───┼───┤ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┘ ├───┤
|
||||
* │Tab│ 3 │ 2 │ 1 │ │Shft│Shl│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐│End│
|
||||
* ├───┼───┼───┼───┤ ├────┼───┼───┴┬──┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴──┬───┘│ ↑ │└───┘
|
||||
* │Ent│ . │ , │ 0 │ │Ctrl│GUI│Alt │ │Alt│Mnu│Ctrl│┌───┼───┼───┐
|
||||
* └───┴───┴───┴───┘ └────┴───┴────┴────────────────────────┴───┴───┴────┘│ ← │ ↓ │ → │
|
||||
* └───┴───┴───┘
|
||||
*/
|
||||
/*
|
||||
* ┌───┬───┬───┬───┐ ┌───┐ ┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┐
|
||||
* │ │ │ │ │ │Rst│ │ │ │ │ ││ │ │ │ ││ │ │ │ │ │ │ │
|
||||
* └───┴───┴───┴───┘ └───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┘
|
||||
*
|
||||
* ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┼───┼───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┼───┼───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│ ├───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ← │ ↑ │ ↓ │ → │ │ │ │ Ent│ │ │
|
||||
* ├───┼───┼───┼───┤ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┘ ├───┤
|
||||
* │ │ │ │ │ │Shft│ │ │ │ │ │ │ │ │ │ │ │ Shift│┌───┐│ │
|
||||
* ├───┼───┼───┼───┤ ├────┼───┼───┴┬──┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴──┬───┘│ ↑ │└───┘
|
||||
* │ │ │ │ │ │Ctrl│GUI│Alt │ │Alt│Mnu│Ctrl│┌───┼───┼───┐
|
||||
* └───┴───┴───┴───┘ └────┴───┴────┴────────────────────────┴───┴───┴────┘│ ← │ ↓ │ → │
|
||||
* └───┴───┴───┘
|
||||
*/
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_all(
|
||||
MO(1), KC_PSCR, KC_SLCK, KC_PAUS, 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_HOME, KC_PGUP,
|
||||
KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, 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_BSPC, KC_INS,
|
||||
KC_PPLS, KC_P9, KC_P8, KC_P7, 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_PEQL, KC_P6, KC_P5, KC_P4, 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_PGDN,
|
||||
KC_TAB, KC_P3, KC_P2, KC_P1, 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_END,
|
||||
KC_PENT, KC_PDOT, KC_PCMM, KC_P0, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[_FN] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, 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_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
22
keyboards/cest73/tkm/readme.md
Normal file
22
keyboards/cest73/tkm/readme.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Ten Key Mirrored - 2021
|
||||
|
||||

|
||||
|
||||
Another take on left side numpad and this time mirrored too for the ever more spacious mouse playground.
|
||||
|
||||
* Keyboard Maintainer: cest73 (aka fire-h0und)
|
||||
* Hardware Supported: TKM-2021 (multiple layouts and switch options including ALPS, ISO and BAE)
|
||||
* Hardware Availability: https://geekhack.org/index.php?topic=110499
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
qmk compile -kb cest73/tkm -km default
|
||||
|
||||
As the board uses Teensy 2.0 as a daughter board, to bring the board into flash mode is it sufficient to press the button present on the Teensy.
|
||||
|
||||
[TKM-2021 PCB](https://geekhack.org/index.php?action=dlattach;topic=110499.0;attach=268641;image)
|
||||
|
||||
Despite many hours gazing over the schematics there was a nasty error on the first batch: namely the 6 and 7 columns got swapped in the design process. Luckily it was trivial to fix in the firmware section (see the comments in the layout file(s)).
|
||||
|
||||
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/cest73/tkm/rules.mk
Normal file
22
keyboards/cest73/tkm/rules.mk
Normal file
@@ -0,0 +1,22 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = halfkay
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = full # 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
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright 2021 Aquacylinder
|
||||
/* Copyright 2021 cest73
|
||||
*
|
||||
* 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
|
||||
@@ -13,7 +13,4 @@
|
||||
* 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
|
||||
|
||||
#define COMBO_COUNT 1
|
||||
#include "tkm.h"
|
||||
66
keyboards/cest73/tkm/tkm.h
Normal file
66
keyboards/cest73/tkm/tkm.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/* Copyright 2021 cest73
|
||||
*
|
||||
* 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 "names" for physical keys of the keyboard
|
||||
* and defines their position on the board.
|
||||
* The second section defines position of the keys on the switch matrix
|
||||
* (where COLUMNS and ROWS crosses).
|
||||
This looks so much better in an terminal window :-(*/
|
||||
/*
|
||||
* ┌───┬───┬───┬───┐ ┌───┐ ┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┐
|
||||
* │Fn │PSc│Scr│Pse│ │Esc│ │F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12│ │Hme│PgU│
|
||||
* └───┴───┴───┴───┘ └───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┘
|
||||
*
|
||||
* ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
|
||||
* │ - │ * │ / │Num│ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsl│Bsp│ │Ins│
|
||||
* ├───┼───┼───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤
|
||||
* │ + │ 9 │ 8 │ 7 │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│
|
||||
* ├───┼───┼───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│ ├───┤
|
||||
* │ = │ 6 │ 5 │ 4 │ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Etl│ Ent│ │PgD│
|
||||
* ├───┼───┼───┼───┤ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┘ ├───┤
|
||||
* │Tab│ 3 │ 2 │ 1 │ │Shft│Shl│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐│End│
|
||||
* ├───┼───┼───┼───┤ ├────┼───┼───┴┬──┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴──┬───┘│ ↑ │└───┘
|
||||
* │Ent│ . │ , │ 0 │ │Ctrl│GUI│Alt │ │Alt│Mnu│Ctrl│┌───┼───┼───┐
|
||||
* └───┴───┴───┴───┘ └────┴───┴────┴────────────────────────┴───┴───┴────┘│ ← │ ↓ │ → │
|
||||
* └───┴───┴───┘
|
||||
*/
|
||||
// due to a nasty PCB layout bug the R1.03 board has "6" and "7" keyboard coulmns swapped...
|
||||
|
||||
#define LAYOUT_all( \
|
||||
k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k15, k05, k06, k16, k07, k17, k08, k18, k09, \
|
||||
\
|
||||
k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k35, k25, k26, k36, k27, k37, k28, k19, k38, k29, \
|
||||
k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k55, k45, k46, k56, k47, k57, k48, k58, k49, \
|
||||
k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k75, k65, k66, k76, k67, k77, k68, k78, k69, \
|
||||
k39, k90, k81, k91, k82, k92, k83, k93, k84, k94, k95, k85, k86, k96, k87, k97, k88, k98, k89, \
|
||||
k80, kA0, k59, kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, k99, k79 \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \
|
||||
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 }, \
|
||||
{ k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \
|
||||
{ k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \
|
||||
{ k70, k71, k72, k73, k74, k75, k76, k77, k78, k79 }, \
|
||||
{ k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 }, \
|
||||
{ k90, k91, k92, k93, k94, k95, k96, k97, k98, k99 }, \
|
||||
{ kA0, kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9 } \
|
||||
}
|
||||
55
keyboards/checkerboards/ud40_ortho_alt/config.h
Normal file
55
keyboards/checkerboards/ud40_ortho_alt/config.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Copyright 2021 Nathan Spears
|
||||
*
|
||||
* 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 0x7070
|
||||
#define PRODUCT_ID 0x7030
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Nasp
|
||||
#define PRODUCT UD40_Ortho_Alt
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 12
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { E6, F0, F1, F4 }
|
||||
#define MATRIX_COL_PINS { B2, B1, F7, D6, D7, B4, B5, B6, C6, C7, F5, F6 }
|
||||
#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
|
||||
|
||||
// ws2812 options
|
||||
#define RGB_DI_PIN D4 // pin the DI on the ws2812 is hooked-up to
|
||||
#define RGBLIGHT_ANIMATIONS // run RGB animations
|
||||
#define RGBLED_NUM 12 // number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
|
||||
#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation
|
||||
#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
|
||||
24
keyboards/checkerboards/ud40_ortho_alt/info.json
Normal file
24
keyboards/checkerboards/ud40_ortho_alt/info.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"keyboard_name": "UD40_Ortho_Alt",
|
||||
"url": "",
|
||||
"maintainer": "nasp",
|
||||
"width": 12,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT_default": {
|
||||
"layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"x":8.25, "y":3, "w":1.25}, {"x":9.5, "y":3, "w":1.25}, {"x":10.75, "y":3, "w":1.25}]
|
||||
},
|
||||
"LAYOUT_2x3u_alt": {
|
||||
"layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3, "w":1.5}, {"x":3, "y":3, "w":3}, {"x":6, "y":3, "w":3}, {"x":9, "y":3, "w":1.5}, {"x":10.5, "y":3, "w":1.5}]
|
||||
},
|
||||
"LAYOUT_600u": {
|
||||
"layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3, "w":6}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}]
|
||||
},
|
||||
"LAYOUT_600u_alt": {
|
||||
"layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3, "w":1.5}, {"x":3, "y":3, "w":6}, {"x":9, "y":3, "w":1.5}, {"x":10.5, "y":3, "w":1.5}]
|
||||
},
|
||||
"LAYOUT_700u": {
|
||||
"layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":7}, {"x":9.5, "y":3, "w":1.25}, {"x":10.75, "y":3, "w":1.25}]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2021 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
#define TAPPING_TOGGLE 2
|
||||
@@ -0,0 +1,80 @@
|
||||
/* Copyright 2020 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines for task manager and such
|
||||
#define CALTDEL LCTL(LALT(KC_DEL))
|
||||
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* [0]
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------|
|
||||
* | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_2x3u_alt(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
CTL_T(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_SLSH, KC_ENT,
|
||||
RESET, KC_LALT, TT(1), LT(2, KC_SPC), KC_LGUI, KC_CAPS
|
||||
),
|
||||
|
||||
/* [1]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+----|
|
||||
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+----|
|
||||
* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+----|
|
||||
* | | | | | | | | + | = | | | |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
|
||||
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = LAYOUT_2x3u_alt(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______,
|
||||
CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV
|
||||
),
|
||||
|
||||
/* [2]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+---|
|
||||
* | | | | UP | | | | _ | | [ | ] | |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+---|
|
||||
* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | |
|
||||
* |------------+------+------+------+------+-----+-----+------+------+------+------+-----|
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---|
|
||||
* | RESET | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = LAYOUT_2x3u_alt(
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
RESET, RESET, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
19
keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h
Normal file
19
keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2021 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
#define TAPPING_TOGGLE 2
|
||||
80
keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/keymap.c
Normal file
80
keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/keymap.c
Normal file
@@ -0,0 +1,80 @@
|
||||
/* Copyright 2020 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines for task manager and such
|
||||
#define CALTDEL LCTL(LALT(KC_DEL))
|
||||
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* [0]
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------|
|
||||
* | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_600u(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
CTL_T(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_SLSH, KC_ENT,
|
||||
RESET, RGB_TOG, KC_LALT, LT(2, KC_SPC), TT(1), KC_LGUI, KC_CAPS
|
||||
),
|
||||
|
||||
/* [1]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+----|
|
||||
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+----|
|
||||
* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+----|
|
||||
* | | | | | | | | + | = | | | |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
|
||||
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = LAYOUT_600u(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______,
|
||||
CALTDEL, _______, TSKMGR, _______, _______, KC_NUBS, KC_GRV
|
||||
),
|
||||
|
||||
/* [2]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+---|
|
||||
* | | | | UP | | | | _ | | [ | ] | |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+---|
|
||||
* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | |
|
||||
* |------------+------+------+------+------+-----+-----+------+------+------+------+-----|
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---|
|
||||
* | RESET | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = LAYOUT_600u(
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
RESET, RESET, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2021 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
#define TAPPING_TOGGLE 2
|
||||
@@ -0,0 +1,80 @@
|
||||
/* Copyright 2020 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines for task manager and such
|
||||
#define CALTDEL LCTL(LALT(KC_DEL))
|
||||
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* [0]
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------|
|
||||
* | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_600u_alt(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
CTL_T(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_SLSH, KC_ENT,
|
||||
RESET, KC_LALT, LT(2, KC_SPC), TT(1), KC_RGUI
|
||||
),
|
||||
|
||||
/* [1]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+----|
|
||||
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+----|
|
||||
* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+----|
|
||||
* | | | | | | | | + | = | | | |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
|
||||
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = LAYOUT_600u_alt(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______,
|
||||
CALTDEL, TSKMGR, _______, KC_NUBS, KC_GRV
|
||||
),
|
||||
|
||||
/* [2]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+---|
|
||||
* | | | | UP | | | | _ | | [ | ] | |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+---|
|
||||
* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | |
|
||||
* |------------+------+------+------+------+-----+-----+------+------+------+------+-----|
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---|
|
||||
* | RESET | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = LAYOUT_600u_alt(
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
RESET, RESET, _______, _______, _______
|
||||
)
|
||||
};
|
||||
19
keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h
Normal file
19
keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2021 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
#define TAPPING_TOGGLE 2
|
||||
80
keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/keymap.c
Normal file
80
keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/keymap.c
Normal file
@@ -0,0 +1,80 @@
|
||||
/* Copyright 2020 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines for task manager and such
|
||||
#define CALTDEL LCTL(LALT(KC_DEL))
|
||||
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* [0]
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------|
|
||||
* | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_700u(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
CTL_T(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_SLSH, KC_ENT,
|
||||
RESET, KC_LALT, LT(2, KC_SPC), TT(1), KC_RGUI
|
||||
),
|
||||
|
||||
/* [1]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+----|
|
||||
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+----|
|
||||
* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+----|
|
||||
* | | | | | | | | + | = | | | |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
|
||||
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = LAYOUT_700u(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______,
|
||||
CALTDEL, TSKMGR, _______, KC_NUBS, KC_GRV
|
||||
),
|
||||
|
||||
/* [2]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+---|
|
||||
* | | | | UP | | | | _ | | [ | ] | |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+---|
|
||||
* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | |
|
||||
* |------------+------+------+------+------+-----+-----+------+------+------+------+-----|
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---|
|
||||
* | RESET | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = LAYOUT_700u(
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
RESET, RESET, _______, _______, _______
|
||||
)
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2021 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
#define TAPPING_TOGGLE 2
|
||||
@@ -0,0 +1,80 @@
|
||||
/* Copyright 2020 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines for task manager and such
|
||||
#define CALTDEL LCTL(LALT(KC_DEL))
|
||||
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* [0]
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------|
|
||||
* | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_default(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
CTL_T(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_SLSH, KC_ENT,
|
||||
RESET, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS
|
||||
),
|
||||
|
||||
/* [1]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+----|
|
||||
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+----|
|
||||
* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+----|
|
||||
* | | | | | | | | + | = | | | |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
|
||||
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = LAYOUT_default(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______,
|
||||
KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______
|
||||
),
|
||||
|
||||
/* [2]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+---|
|
||||
* | | | | UP | | | | _ | | [ | ] | |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+---|
|
||||
* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | |
|
||||
* |------------+------+------+------+------+-----+-----+------+------+------+------+-----|
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---|
|
||||
* | RESET | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = LAYOUT_default(
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
RESET, RESET, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
# The Default UD40 Ortho Alt Layout
|
||||
# 1.25 - 1.25 - 1.25 - 2.25 - 2.25 - 1.25 - 1.25 - 1.25
|
||||
# or
|
||||
# 1 - 1 - 1 - 3 - 3 - 1 - 1 - 1
|
||||
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2021 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
#define TAPPING_TOGGLE 2
|
||||
@@ -0,0 +1,80 @@
|
||||
/* Copyright 2020 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines for task manager and such
|
||||
#define CALTDEL LCTL(LALT(KC_DEL))
|
||||
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* [0]
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------|
|
||||
* | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_default(
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
|
||||
CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
RESET, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS
|
||||
),
|
||||
|
||||
/* [1]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+----|
|
||||
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+----|
|
||||
* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+----|
|
||||
* | | | | | | | | + | = | | | |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
|
||||
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = LAYOUT_default(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______,
|
||||
KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______
|
||||
),
|
||||
|
||||
/* [2]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+---|
|
||||
* | | | | UP | | | | _ | | [ | ] | |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+---|
|
||||
* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | |
|
||||
* |------------+------+------+------+------+-----+-----+------+------+------+------+-----|
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---|
|
||||
* | RESET | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = LAYOUT_default(
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
RESET, RESET, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
# The Default UD40 Ortho Alt Layout
|
||||
# 1.25 - 1.25 - 1.25 - 2.25 - 2.25 - 1.25 - 1.25 - 1.25
|
||||
# or
|
||||
# 1 - 1 - 1 - 3 - 3 - 1 - 1 - 1
|
||||
100
keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c
Normal file
100
keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,100 @@
|
||||
/* Copyright 2020 Nathan Spears
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines for task manager and such
|
||||
#define CALTDEL LCTL(LALT(KC_DEL))
|
||||
#define TSKMGR LCTL(LSFT(KC_ESC))
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* [0]
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------|
|
||||
* | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_default(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
CTL_T(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_SLSH, KC_ENT,
|
||||
KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS
|
||||
),
|
||||
|
||||
/* [1]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+----|
|
||||
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+----|
|
||||
* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+----|
|
||||
* | | | | | | | | + | = | | | |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
|
||||
* | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = LAYOUT_default(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______,
|
||||
KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______
|
||||
),
|
||||
|
||||
/* [2]
|
||||
* ,--------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+---|
|
||||
* | | | | UP | | | | _ | | [ | ] | |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+---|
|
||||
* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | |
|
||||
* |------------+------+------+------+------+-----+-----+------+------+------+------+-----|
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---|
|
||||
* | RESET | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = LAYOUT_default(
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
RESET, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* [3]
|
||||
* ,---------------------------------------------------------------------------------------.
|
||||
* |------------+------+------+------+------+------+------+------+------+------+------+----|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------------+------+------+------+------+-------------+------+------+------+------+----|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------------+------+------+------+------+------|------+------+------+------+------+----|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----|
|
||||
* | | | | | | | | | | | | | |
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[3] = LAYOUT_default(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
17
keyboards/checkerboards/ud40_ortho_alt/readme.md
Normal file
17
keyboards/checkerboards/ud40_ortho_alt/readme.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# UD40_Ortho_Alt
|
||||
|
||||

|
||||
|
||||
The UD40_Ortho_Alt PCB is a modified layout for the UD040. It's similar to traditional ortho but the bottom row keys are larger than 1u.
|
||||
|
||||
* Keyboard Maintainer: [Nasp](https://github.com/npspears)
|
||||
* Hardware Supported: UD40
|
||||
* Hardware Availability: MyKeyboard.EU
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make checkerboards/ud40_ortho_alt:default
|
||||
|
||||
Enter the bootloader by shorting GND and RESET just above the Atmega MCU.
|
||||
|
||||
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).
|
||||
24
keyboards/checkerboards/ud40_ortho_alt/rules.mk
Normal file
24
keyboards/checkerboards/ud40_ortho_alt/rules.mk
Normal file
@@ -0,0 +1,24 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
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 = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
UNICODE_ENABLE = yes # Unicode
|
||||
|
||||
17
keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c
Normal file
17
keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2021 Nathan Spears
|
||||
*
|
||||
* 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 "ud40_ortho_alt.h"
|
||||
81
keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h
Normal file
81
keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/* Copyright 2021 Nathan Spears
|
||||
*
|
||||
* 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 XXX KC_NO
|
||||
|
||||
#define LAYOUT_default( \
|
||||
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 \
|
||||
) { \
|
||||
{ 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, XXX, k32, k33, XXX, k34, XXX, k35, k36, XXX, k37 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_2x3u_alt( \
|
||||
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 \
|
||||
) { \
|
||||
{ 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, XXX, XXX, k31, k32, XXX, k33, XXX, XXX, k34, XXX, k35 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_600u( \
|
||||
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 \
|
||||
) { \
|
||||
{ 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, XXX, k32, XXX, XXX, k33, XXX, k34, k35, XXX, k36 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_600u_alt( \
|
||||
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 \
|
||||
) { \
|
||||
{ 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, XXX, XXX, k31, XXX, XXX, k32, XXX, XXX, k33, XXX, k34 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_700u( \
|
||||
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 \
|
||||
) { \
|
||||
{ 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, XXX, XXX, XXX, XXX, k32, XXX, XXX, k33, XXX, k34 } \
|
||||
}
|
||||
62
keyboards/converter/a1200/miss1200/config.h
Normal file
62
keyboards/converter/a1200/miss1200/config.h
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
Copyright 2021 8bits4ever
|
||||
|
||||
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 0xFFFF
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 8bits4ever
|
||||
#define PRODUCT MiSS-1200
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 16
|
||||
|
||||
/*
|
||||
* 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, F4, F1, F0, B1, B3 }
|
||||
#define MATRIX_COL_PINS { D0, D1, C7, D6, B7, B6, B5, B4, E6, D7, C6, D4, B2, D5, D3, D2 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
|
||||
#define LED_CAPS_LOCK_PIN B0
|
||||
#define LED_PIN_ON_STATE 0
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
22
keyboards/converter/a1200/miss1200/rules.mk
Normal file
22
keyboards/converter/a1200/miss1200/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 = 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 = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
@@ -1,13 +1,16 @@
|
||||
# Amiga 1200 Keyboard Converter
|
||||
|
||||
Modification of the Model-M 101 membrane adapter (converter/modelm101) to work with Amiga 1200 keyboard (and possibly Amiga 500/600 too).
|
||||
The adapter allows using the original Amiga keyboard as a USB input device, either with a desktop PC or a R-Pi/FPGA board hosted inside the Amiga case.
|
||||
|
||||
A small PCB adapter is needed for connecting the keyboard membrane to the Teensy 2.0++ board. A very simple example of such a board can be seen here:
|
||||
Available for two micros: AT90USB1286 (Teensy 2++ board), and ATmega32u4 (MiSS-1200 FPGA board).
|
||||
|
||||
A small PCB adapter is needed for connecting the keyboard membrane to the Teensy 2.0++ board. A very simple example of such a board is available here:
|
||||
https://github.com/8bits4ever/A1200-Keyboard-Adapter
|
||||
|
||||
This adapter is meant to allow using the original Amiga keyboard as a USB input device, either with a desktop PC or a R-Pi/FPGA board hosted inside the Amiga case.
|
||||
The MiSS-1200 FPGA board features a dedicated connector for the Amiga 1200 membrane keyboard.
|
||||
|
||||
Files have been modified in accordance to fit Amiga keyboard layout and features. A second layer has been implemented (momentary toggle "Help" key) to access unexistent keys (like F11 and F12). This is a work in progress.
|
||||
Files have been modified in accordance to the Amiga keyboard layout and features. A second layer has been implemented (momentary toggle "Help" key) to access unexistent keys (like F11 and F12). This is a work in progress.
|
||||
|
||||
|
||||
Pins of the Teensy board you should use by default:
|
||||
@@ -22,14 +25,31 @@ Status LEDs: CapsLock +5V
|
||||
Pins: B6 5V
|
||||
```
|
||||
|
||||
Pins assignment MiSS-1200 board (ATmega32u4):
|
||||
```
|
||||
Columns: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
Pins: D0 D1 C7 D6 B7 B6 B5 B4 E6 D7 C6 D4 B2 D5 D3 D2
|
||||
--------------------------------------------------------
|
||||
Rows: 1 2 3 4 5 6 7 8
|
||||
Pins: F7 F6 F5 F4 F1 F0 B1 B3
|
||||
--------------------------------------------------------
|
||||
Status LEDs: CapsLock +5V
|
||||
Pins: B0 5V
|
||||
```
|
||||
|
||||
* Keyboard Maintainer: [8bits4ever](https://github.com/8bits4ever)
|
||||
* Hardware Supported: Teensy 2.0++ board by PJRC
|
||||
* Hardware Supported: Teensy 2.0++ board by PJRC, MiSS-1200 FPGA by 8bits4ever
|
||||
* Hardware Availability: https://www.pjrc.com/store/teensypp.html
|
||||
|
||||
For first time flashing use the reset button on the Teensy board enter in bootloader mode. Once the board is flashed you can use "HELP"+"R" on the Amiga keyboard for the same purpose.
|
||||
For first time flashing use the reset button to enter in bootloader mode. Once the board is flashed you can use "HELP"+"R" on the Amiga keyboard for reflashing.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make converter/a1200:default
|
||||
make converter/a1200/teensy2pp:default
|
||||
|
||||
Or:
|
||||
|
||||
make converter/a1200/miss1200: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).
|
||||
|
||||
@@ -125,6 +125,37 @@
|
||||
{ k50, ___, k52, ___ } \
|
||||
}
|
||||
|
||||
/* 6x4 numpad layout with split Plus
|
||||
* ,-------------------.
|
||||
* | 00 | 01 | 02 | 03 |
|
||||
* |----|----|----|----|
|
||||
* | 10 | 11 | 12 | 13 |
|
||||
* |----|----|----|----|
|
||||
* | 20 | 21 | 22 | 23 |
|
||||
* |----|----|----|----|
|
||||
* | 30 | 31 | 32 | 33 |
|
||||
* |----|----|----|----|
|
||||
* | 40 | 41 | 42 | |
|
||||
* |----|----|----| 43 |
|
||||
* | 50 | 52 | |
|
||||
* `-------------------'
|
||||
*/
|
||||
#define LAYOUT_numpad_6x4_split_plus( \
|
||||
k00, k01, k02, k03, \
|
||||
k10, k11, k12, k13, \
|
||||
k20, k21, k22, k23, \
|
||||
k30, k31, k32, k33, \
|
||||
k40, k41, k42, \
|
||||
k50, k52, k43 \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03 }, \
|
||||
{ k10, k11, k12, k13 }, \
|
||||
{ k20, k21, k22, k23 }, \
|
||||
{ k30, k31, k32, k33 }, \
|
||||
{ k40, k41, k42, k43 }, \
|
||||
{ k50, ___, k52, ___ } \
|
||||
}
|
||||
|
||||
/* 6x4 numpad with split Plus and 0 keys
|
||||
* ,-------------------.
|
||||
|
||||
@@ -5,72 +5,7 @@
|
||||
"width": 4,
|
||||
"height": 6,
|
||||
"layouts": {
|
||||
"LAYOUT_numpad_6x4": {
|
||||
"key_count": 21,
|
||||
"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":0, "y":3},
|
||||
{"x":1, "y":3},
|
||||
{"x":2, "y":3},
|
||||
{"x":3, "y":2, "h":2},
|
||||
|
||||
{"x":0, "y":4},
|
||||
{"x":1, "y":4},
|
||||
{"x":2, "y":4},
|
||||
|
||||
{"x":0, "y":5, "w":2},
|
||||
{"x":2, "y":5},
|
||||
{"x":3, "y":4, "h":2}
|
||||
]
|
||||
},
|
||||
"LAYOUT_gamepad_6x4": {
|
||||
"key_count": 23,
|
||||
"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":0, "y":3},
|
||||
{"x":1, "y":3},
|
||||
{"x":2, "y":3},
|
||||
{"x":3, "y":2, "h":2},
|
||||
|
||||
{"x":0, "y":4},
|
||||
{"x":1, "y":4},
|
||||
{"x":2, "y":4},
|
||||
{"x":3, "y":4},
|
||||
|
||||
{"x":0, "y":5},
|
||||
{"x":1, "y":5},
|
||||
{"x":2, "y":5},
|
||||
{"x":3, "y":5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ortho_6x4": {
|
||||
"key_count": 24,
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1, "y":0},
|
||||
@@ -103,8 +38,100 @@
|
||||
{"x":3, "y":5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_gamepad_6x4": {
|
||||
"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":0, "y":3},
|
||||
{"x":1, "y":3},
|
||||
{"x":2, "y":3},
|
||||
{"x":3, "y":2, "h":2},
|
||||
|
||||
{"x":0, "y":4},
|
||||
{"x":1, "y":4},
|
||||
{"x":2, "y":4},
|
||||
{"x":3, "y":4},
|
||||
|
||||
{"x":0, "y":5},
|
||||
{"x":1, "y":5},
|
||||
{"x":2, "y":5},
|
||||
{"x":3, "y":5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_numpad_6x4": {
|
||||
"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":0, "y":3},
|
||||
{"x":1, "y":3},
|
||||
{"x":2, "y":3},
|
||||
{"x":3, "y":2, "h":2},
|
||||
|
||||
{"x":0, "y":4},
|
||||
{"x":1, "y":4},
|
||||
{"x":2, "y":4},
|
||||
|
||||
{"x":0, "y":5, "w":2},
|
||||
{"x":2, "y":5},
|
||||
{"x":3, "y":4, "h":2}
|
||||
]
|
||||
},
|
||||
"LAYOUT_numpad_6x4_split_plus": {
|
||||
"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},
|
||||
|
||||
{"x":0, "y":4},
|
||||
{"x":1, "y":4},
|
||||
{"x":2, "y":4},
|
||||
|
||||
{"x":0, "y":5, "w":2},
|
||||
{"x":2, "y":5},
|
||||
{"x":3, "y":4, "h":2}
|
||||
]
|
||||
},
|
||||
"LAYOUT_numpad_6x4_split_plus_zero": {
|
||||
"key_count": 23,
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1, "y":0},
|
||||
@@ -137,7 +164,6 @@
|
||||
]
|
||||
},
|
||||
"LAYOUT_numpad_6x4_split_zero": {
|
||||
"key_count": 22,
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1, "y":0},
|
||||
@@ -167,6 +193,6 @@
|
||||
{"x":2, "y":5},
|
||||
{"x":3, "y":4, "h":2}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,58 +21,92 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#define kxx KC_NO
|
||||
|
||||
#define LAYOUT_default( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3f, \
|
||||
k40, k41, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \
|
||||
/*
|
||||
* ┌───────┐
|
||||
* 2u Backspace │0d │
|
||||
* └───────┘
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐
|
||||
* │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ │0e │0f │0g │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ┌─────┐
|
||||
* │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ │1e │1f │1g │ │ │ ISO
|
||||
* 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2c │ Enter
|
||||
* LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │1d │ │
|
||||
* ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤
|
||||
* │30 │ │30 │41 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │ │3f │ │3b │ 2.75u RShift
|
||||
* └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ └──────────┘
|
||||
* │40 │42 │43 │ 45 │49 │4a │4b │4d │ │4e │4f │4g │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
|
||||
* ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
|
||||
* │40 │42 │43 │ 45 │4a │4b │4d │ Tsangan
|
||||
* └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
|
||||
*/
|
||||
|
||||
#define LAYOUT_all( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
||||
k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3f, \
|
||||
k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, kxx, kxx, kxx }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, k3d, kxx, k3f, kxx }, \
|
||||
{ k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, kxx, kxx, kxx }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, k3d, kxx, k3f, kxx }, \
|
||||
{ k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
|
||||
}
|
||||
|
||||
#define LAYOUT_ansi( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \
|
||||
k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \
|
||||
k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
|
||||
{ k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
|
||||
{ k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tsangan( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \
|
||||
k40, k42, k43, k45, k4a, k4b, k4d, k4e, k4f, k4g \
|
||||
#define LAYOUT_ansi_tsangan( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \
|
||||
k40, k42, k43, k45, k4a, k4b, k4d, k4e, k4f, k4g \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
|
||||
{ k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
|
||||
{ k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
|
||||
}
|
||||
|
||||
#define LAYOUT_iso( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \
|
||||
k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, k2c, \
|
||||
k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \
|
||||
k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
|
||||
{ k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
|
||||
{ k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
|
||||
}
|
||||
|
||||
#define LAYOUT_iso_tsangan( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, k2c, \
|
||||
k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \
|
||||
k40, k42, k43, k45, k4a, k4b, k4d, k4e, k4f, k4g \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
|
||||
{ k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
|
||||
}
|
||||
|
||||
@@ -2,20 +2,410 @@
|
||||
"keyboard_name": "Crin",
|
||||
"url": "https://bachoo.com",
|
||||
"maintainer": "KnoblesseOblige",
|
||||
"width": 17,
|
||||
"width": 18.5,
|
||||
"height": 5,
|
||||
"layout_aliases": {
|
||||
"LAYOUT_default": "LAYOUT_all",
|
||||
"LAYOUT_tsangan": "LAYOUT_ansi_tsangan"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_default": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":16.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}]
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"!", "x":1, "y":0},
|
||||
{"label":"@", "x":2, "y":0},
|
||||
{"label":"#", "x":3, "y":0},
|
||||
{"label":"$", "x":4, "y":0},
|
||||
{"label":"%", "x":5, "y":0},
|
||||
{"label":"^", "x":6, "y":0},
|
||||
{"label":"&", "x":7, "y":0},
|
||||
{"label":"*", "x":8, "y":0},
|
||||
{"label":"(", "x":9, "y":0},
|
||||
{"label":")", "x":10, "y":0},
|
||||
{"label":"_", "x":11, "y":0},
|
||||
{"label":"+", "x":12, "y":0},
|
||||
{"label":"|", "x":13, "y":0},
|
||||
{"label":"~", "x":14, "y":0},
|
||||
{"label":"Insert", "x":15.5, "y":0},
|
||||
{"label":"Home", "x":16.5, "y":0},
|
||||
{"label":"Page Up", "x":17.5, "y":0},
|
||||
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"{", "x":11.5, "y":1},
|
||||
{"label":"}", "x":12.5, "y":1},
|
||||
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"Delete", "x":15.5, "y":1},
|
||||
{"label":"End", "x":16.5, "y":1},
|
||||
{"label":"Page Down", "x":17.5, "y":1},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":":", "x":10.75, "y":2},
|
||||
{"label":"\"", "x":11.75, "y":2},
|
||||
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||
|
||||
{"label":"Shift", "x":0, "y":3, "w":1.25},
|
||||
{"label":"|", "x":1.25, "y":3},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":"<", "x":9.25, "y":3},
|
||||
{"label":">", "x":10.25, "y":3},
|
||||
{"label":"?", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"Fn", "x":14, "y":3},
|
||||
{"label":"Up", "x":16.5, "y":3},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"Menu", "x":12.5, "y":4, "w":1.25},
|
||||
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25},
|
||||
{"label":"Left", "x":15.5, "y":4},
|
||||
{"label":"Down", "x":16.5, "y":4},
|
||||
{"label":"Right", "x":17.5, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"x":16.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}]
|
||||
"LAYOUT_ansi": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"!", "x":1, "y":0},
|
||||
{"label":"@", "x":2, "y":0},
|
||||
{"label":"#", "x":3, "y":0},
|
||||
{"label":"$", "x":4, "y":0},
|
||||
{"label":"%", "x":5, "y":0},
|
||||
{"label":"^", "x":6, "y":0},
|
||||
{"label":"&", "x":7, "y":0},
|
||||
{"label":"*", "x":8, "y":0},
|
||||
{"label":"(", "x":9, "y":0},
|
||||
{"label":")", "x":10, "y":0},
|
||||
{"label":"_", "x":11, "y":0},
|
||||
{"label":"+", "x":12, "y":0},
|
||||
{"label":"Backspace", "x":13, "y":0, "w":2},
|
||||
{"label":"Insert", "x":15.5, "y":0},
|
||||
{"label":"Home", "x":16.5, "y":0},
|
||||
{"label":"Page Up", "x":17.5, "y":0},
|
||||
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"{", "x":11.5, "y":1},
|
||||
{"label":"}", "x":12.5, "y":1},
|
||||
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"Delete", "x":15.5, "y":1},
|
||||
{"label":"End", "x":16.5, "y":1},
|
||||
{"label":"Page Down", "x":17.5, "y":1},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":":", "x":10.75, "y":2},
|
||||
{"label":"\"", "x":11.75, "y":2},
|
||||
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||
|
||||
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":"<", "x":9.25, "y":3},
|
||||
{"label":">", "x":10.25, "y":3},
|
||||
{"label":"?", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":2.75},
|
||||
{"label":"Up", "x":16.5, "y":3},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"Menu", "x":12.5, "y":4, "w":1.25},
|
||||
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25},
|
||||
{"label":"Left", "x":15.5, "y":4},
|
||||
{"label":"Down", "x":16.5, "y":4},
|
||||
{"label":"Right", "x":17.5, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tsangan": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":16.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}]
|
||||
"LAYOUT_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"!", "x":1, "y":0},
|
||||
{"label":"@", "x":2, "y":0},
|
||||
{"label":"#", "x":3, "y":0},
|
||||
{"label":"$", "x":4, "y":0},
|
||||
{"label":"%", "x":5, "y":0},
|
||||
{"label":"^", "x":6, "y":0},
|
||||
{"label":"&", "x":7, "y":0},
|
||||
{"label":"*", "x":8, "y":0},
|
||||
{"label":"(", "x":9, "y":0},
|
||||
{"label":")", "x":10, "y":0},
|
||||
{"label":"_", "x":11, "y":0},
|
||||
{"label":"+", "x":12, "y":0},
|
||||
{"label":"Backspace", "x":13, "y":0, "w":2},
|
||||
{"label":"Insert", "x":15.5, "y":0},
|
||||
{"label":"Home", "x":16.5, "y":0},
|
||||
{"label":"Page Up", "x":17.5, "y":0},
|
||||
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"{", "x":11.5, "y":1},
|
||||
{"label":"}", "x":12.5, "y":1},
|
||||
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"Delete", "x":15.5, "y":1},
|
||||
{"label":"End", "x":16.5, "y":1},
|
||||
{"label":"Page Down", "x":17.5, "y":1},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":":", "x":10.75, "y":2},
|
||||
{"label":"\"", "x":11.75, "y":2},
|
||||
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||
|
||||
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":"<", "x":9.25, "y":3},
|
||||
{"label":">", "x":10.25, "y":3},
|
||||
{"label":"?", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":2.75},
|
||||
{"label":"Up", "x":16.5, "y":3},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
|
||||
{"label":"GUI", "x":1.5, "y":4},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
|
||||
{"label":"Space", "x":4, "y":4, "w":7},
|
||||
{"label":"Alt", "x":11, "y":4, "w":1.5},
|
||||
{"label":"GUI", "x":12.5, "y":4},
|
||||
{"label":"Ctrl", "x":13.5, "y":4, "w":1.5},
|
||||
{"label":"Left", "x":15.5, "y":4},
|
||||
{"label":"Down", "x":16.5, "y":4},
|
||||
{"label":"Right", "x":17.5, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15.5, "y":1}, {"x":16.5, "y":1}, {"x":17.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"x":16.5, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}, {"x":15.5, "y":4}, {"x":16.5, "y":4}, {"x":17.5, "y":4}]
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"!", "x":1, "y":0},
|
||||
{"label":"@", "x":2, "y":0},
|
||||
{"label":"#", "x":3, "y":0},
|
||||
{"label":"$", "x":4, "y":0},
|
||||
{"label":"%", "x":5, "y":0},
|
||||
{"label":"^", "x":6, "y":0},
|
||||
{"label":"&", "x":7, "y":0},
|
||||
{"label":"*", "x":8, "y":0},
|
||||
{"label":"(", "x":9, "y":0},
|
||||
{"label":")", "x":10, "y":0},
|
||||
{"label":"_", "x":11, "y":0},
|
||||
{"label":"+", "x":12, "y":0},
|
||||
{"label":"Backspace", "x":13, "y":0, "w":2},
|
||||
{"label":"Insert", "x":15.5, "y":0},
|
||||
{"label":"Home", "x":16.5, "y":0},
|
||||
{"label":"Page Up", "x":17.5, "y":0},
|
||||
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"{", "x":11.5, "y":1},
|
||||
{"label":"}", "x":12.5, "y":1},
|
||||
{"label":"Delete", "x":15.5, "y":1},
|
||||
{"label":"End", "x":16.5, "y":1},
|
||||
{"label":"Page Down", "x":17.5, "y":1},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":":", "x":10.75, "y":2},
|
||||
{"label":"\"", "x":11.75, "y":2},
|
||||
{"label":"ISO~", "x":12.75, "y":2},
|
||||
{"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
|
||||
|
||||
{"label":"Shift", "x":0, "y":3, "w":1.25},
|
||||
{"label":"|", "x":1.25, "y":3},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":"<", "x":9.25, "y":3},
|
||||
{"label":">", "x":10.25, "y":3},
|
||||
{"label":"?", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":2.75},
|
||||
{"label":"Up", "x":16.5, "y":3},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"Menu", "x":12.5, "y":4, "w":1.25},
|
||||
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25},
|
||||
{"label":"Left", "x":15.5, "y":4},
|
||||
{"label":"Down", "x":16.5, "y":4},
|
||||
{"label":"Right", "x":17.5, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_iso_tsangan": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"!", "x":1, "y":0},
|
||||
{"label":"@", "x":2, "y":0},
|
||||
{"label":"#", "x":3, "y":0},
|
||||
{"label":"$", "x":4, "y":0},
|
||||
{"label":"%", "x":5, "y":0},
|
||||
{"label":"^", "x":6, "y":0},
|
||||
{"label":"&", "x":7, "y":0},
|
||||
{"label":"*", "x":8, "y":0},
|
||||
{"label":"(", "x":9, "y":0},
|
||||
{"label":")", "x":10, "y":0},
|
||||
{"label":"_", "x":11, "y":0},
|
||||
{"label":"+", "x":12, "y":0},
|
||||
{"label":"Backspace", "x":13, "y":0, "w":2},
|
||||
{"label":"Insert", "x":15.5, "y":0},
|
||||
{"label":"Home", "x":16.5, "y":0},
|
||||
{"label":"Page Up", "x":17.5, "y":0},
|
||||
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"{", "x":11.5, "y":1},
|
||||
{"label":"}", "x":12.5, "y":1},
|
||||
{"label":"Delete", "x":15.5, "y":1},
|
||||
{"label":"End", "x":16.5, "y":1},
|
||||
{"label":"Page Down", "x":17.5, "y":1},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":":", "x":10.75, "y":2},
|
||||
{"label":"\"", "x":11.75, "y":2},
|
||||
{"label":"ISO~", "x":12.75, "y":2},
|
||||
{"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
|
||||
|
||||
{"label":"Shift", "x":0, "y":3, "w":1.25},
|
||||
{"label":"|", "x":1.25, "y":3},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":"<", "x":9.25, "y":3},
|
||||
{"label":">", "x":10.25, "y":3},
|
||||
{"label":"?", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":2.75},
|
||||
{"label":"Up", "x":16.5, "y":3},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
|
||||
{"label":"GUI", "x":1.5, "y":4},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
|
||||
{"label":"Space", "x":4, "y":4, "w":7},
|
||||
{"label":"Alt", "x":11, "y":4, "w":1.5},
|
||||
{"label":"GUI", "x":12.5, "y":4},
|
||||
{"label":"Ctrl", "x":13.5, "y":4, "w":1.5},
|
||||
{"label":"Left", "x":15.5, "y":4},
|
||||
{"label":"Down", "x":16.5, "y":4},
|
||||
{"label":"Right", "x":17.5, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,35 +29,35 @@ enum layer_names {
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_tsangan(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
[_BASE] = LAYOUT_ansi_tsangan(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[_FN1] = LAYOUT_ansi_tsangan(
|
||||
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_PSCR, KC_SLCK, KC_PAUS,
|
||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_FN2] = LAYOUT_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[_FN2] = LAYOUT_ansi_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_FN3] = LAYOUT_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
[_FN3] = LAYOUT_ansi_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
@@ -29,35 +29,35 @@ enum layer_names {
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_tsangan(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
[_BASE] = LAYOUT_ansi_tsangan(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[_FN1] = LAYOUT_ansi_tsangan(
|
||||
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_PSCR, KC_SLCK, KC_PAUS,
|
||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_FN2] = LAYOUT_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[_FN2] = LAYOUT_ansi_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_FN3] = LAYOUT_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
[_FN3] = LAYOUT_ansi_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
@@ -8,13 +8,17 @@ Crin is an F-rowless 65%.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make crin:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make crin:default:flash
|
||||
|
||||
To enter the bootloader either:
|
||||
To reset the board into bootloader mode, do one of the following:
|
||||
|
||||
0. Hold Esc while plugging the PCB in, if BOOTMAGIC lite is enabled.
|
||||
0. Press the RESET keycode, if programmed on the keymap.
|
||||
0. Slide the switch just below the reset button to the left and press the reset button.
|
||||
* Hold Esc while plugging the PCB in, if Bootmagic Lite is enabled (also erases persistent settings).
|
||||
* Press the RESET keycode, if programmed on the keymap (Fn+R by default).
|
||||
* Slide the switch just below the reset button to the left and press the reset button.
|
||||
* Please note that you must slide it back to the right for the PCB to boot QMK again.
|
||||
|
||||
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).
|
||||
|
||||
72
keyboards/crkbd/keymaps/sulrich/README.md
Normal file
72
keyboards/crkbd/keymaps/sulrich/README.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# sulrich crkbd layout
|
||||
|
||||
this is the personal keyboard layout of [@sulrich](https://github.com/sulrich),
|
||||
and is heavily oriented towards operation in the Mac OS environment.
|
||||
|
||||
there are no LED rules in this keymap and the OLED display uses the default
|
||||
corne images
|
||||
|
||||
## layout notes
|
||||
|
||||
this layout uses a standard QWERTY layout on the default layer followed by a
|
||||
separate layer for symbols and numbers (and F-keys)
|
||||
|
||||
### thumb cluster: left
|
||||
|
||||
this contains the Mac OS modifier keys as well as the enter key. these are
|
||||
transparently mapped through the remaining layers with the exception of the
|
||||
enter key which is toggled to backspace on the symbols layer.
|
||||
|
||||
### thumb cluster: right
|
||||
|
||||
the largest right thumb button provides the space and the layer toggles.
|
||||
|
||||
### default layer
|
||||
```text
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
TAB, Q, W, E, R, T, Y, U, I, O, P, \,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
LCTL, A, S, D, F, G, H, J, K, L, ;, ',
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
LSFT, Z, X, C, V, B, N, M, ,, ., /, RSFT,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
OPT, CMD, ENTER, SPC, MO(1), MO(2)
|
||||
//`--------------------------' `--------------------------'
|
||||
```
|
||||
|
||||
### symbols layer [1]
|
||||
|
||||
this layer contains all of the standard symbols. the arrow keys are mapped to
|
||||
the default vi bindings for single character motion (h, j, k, l).
|
||||
|
||||
```text
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
ESC, !, @, {, }, |, ^, +, =, -, *, ,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
, #, $, (, ), `, LEFT, DOWN, UP, RIGHT, , ENTER,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
, %, ^, [, ], ~, _, &, <, >, \, ,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
OPT, CMD, BSPACE, SPC, MO(1), MO(2)
|
||||
//`--------------------------' `--------------------------'
|
||||
```
|
||||
|
||||
### number/media layer [2]
|
||||
|
||||
this layer has all of the numbers and the F-keys mapped to reasonably intuitive
|
||||
locations. additionally, media controls allow for quick access to volume and
|
||||
track changes.
|
||||
|
||||
```text
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, F12,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
, PREV, PLAY, NEXT, VOL_DN, VOL_UP, , MUTE, , , , ,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
OPT, CMD, ENTER, SPC, MO(1), MO(2)
|
||||
//`--------------------------' `--------------------------'
|
||||
|
||||
```
|
||||
|
||||
36
keyboards/crkbd/keymaps/sulrich/config.h
Normal file
36
keyboards/crkbd/keymaps/sulrich/config.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
This is the c configuration file for the keymap
|
||||
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
Copyright 2015 Jack Humbert
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* select hand configuration */
|
||||
#define MASTER_LEFT
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#undef RGBLED_NUM
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 27
|
||||
#define RGBLIGHT_LIMIT_VAL 120
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
#endif
|
||||
|
||||
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
|
||||
156
keyboards/crkbd/keymaps/sulrich/keymap.c
Normal file
156
keyboards/crkbd/keymaps/sulrich/keymap.c
Normal file
@@ -0,0 +1,156 @@
|
||||
/*
|
||||
Copyright 2021 @sulrich <sulrich@botwerks.org>
|
||||
|
||||
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_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LOPT, KC_LGUI, KC_ENT, KC_SPC, MO(1), MO(2)
|
||||
//`--------------------------' `--------------------------'
|
||||
|
||||
),
|
||||
|
||||
[1] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
KC_ESC, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_CIRC, KC_PLUS,KC_EQUAL,KC_MINUS, KC_ASTR, KC_TRNS,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN,KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, KC_TRNS,KC_ENTER,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_UNDS, KC_AMPR, KC_LABK, KC_RABK,KC_BSLASH,KC_TRNS,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_TRNS, KC_TRNS,KC_BSPACE, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[2] = LAYOUT_split_3x6_3(
|
||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||
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_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_TRNS, KC_TRNS, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
//`--------------------------' `--------------------------'
|
||||
)
|
||||
};
|
||||
|
||||
#ifdef OLED_DRIVER_ENABLE
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
if (!is_keyboard_master()) {
|
||||
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
|
||||
}
|
||||
return rotation;
|
||||
}
|
||||
|
||||
#define L_BASE 0
|
||||
#define L_SYMBOLS 2
|
||||
#define L_NUMBERS 4
|
||||
|
||||
void oled_render_layer_state(void) {
|
||||
oled_write_P(PSTR("layer: "), false);
|
||||
switch (layer_state) {
|
||||
case L_BASE:
|
||||
oled_write_ln_P(PSTR("default"), false);
|
||||
break;
|
||||
case L_SYMBOLS:
|
||||
oled_write_ln_P(PSTR("symbols"), false);
|
||||
break;
|
||||
case L_NUMBERS:
|
||||
oled_write_ln_P(PSTR("numbers/media"), false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
char keylog_str[24] = {};
|
||||
|
||||
const char code_to_name[60] = {
|
||||
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
|
||||
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
|
||||
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
||||
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
|
||||
'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
|
||||
'#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
|
||||
|
||||
void set_keylog(uint16_t keycode, keyrecord_t *record) {
|
||||
char name = ' ';
|
||||
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
|
||||
(keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; }
|
||||
if (keycode < 60) {
|
||||
name = code_to_name[keycode];
|
||||
}
|
||||
|
||||
// update keylog
|
||||
snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
|
||||
record->event.key.row, record->event.key.col,
|
||||
keycode, name);
|
||||
}
|
||||
|
||||
void oled_render_keylog(void) {
|
||||
oled_write(keylog_str, false);
|
||||
}
|
||||
|
||||
void render_bootmagic_status(bool status) {
|
||||
/* Show ctrl-Gui Swap options */
|
||||
static const char PROGMEM logo[][2][3] = {
|
||||
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
|
||||
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
|
||||
};
|
||||
if (status) {
|
||||
oled_write_ln_P(logo[0][0], false);
|
||||
oled_write_ln_P(logo[0][1], false);
|
||||
} else {
|
||||
oled_write_ln_P(logo[1][0], false);
|
||||
oled_write_ln_P(logo[1][1], false);
|
||||
}
|
||||
}
|
||||
|
||||
void oled_render_logo(void) {
|
||||
static const char PROGMEM crkbd_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(crkbd_logo, false);
|
||||
}
|
||||
|
||||
void oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
oled_render_layer_state();
|
||||
oled_render_keylog();
|
||||
} else {
|
||||
oled_render_logo();
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
set_keylog(keycode, record);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif // OLED_DRIVER_ENABLE
|
||||
|
||||
2
keyboards/crkbd/keymaps/sulrich/rules.mk
Normal file
2
keyboards/crkbd/keymaps/sulrich/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
EXTRAKEY_ENABLE = yes
|
||||
OLED_DRIVER_ENABLE = yes
|
||||
@@ -18,45 +18,3 @@
|
||||
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xF35B
|
||||
#define PRODUCT_ID 0xFAB0
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER customMK
|
||||
#define PRODUCT Genesis
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 4
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { F0, C7, C6, B6, B5 }
|
||||
#define MATRIX_COL_PINS { F4, F5, D7, B4 }
|
||||
#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 { F6, D2 }
|
||||
#define ENCODERS_PAD_B { F7, D1 }
|
||||
#define ENCODER_RESOLUTION 4
|
||||
#define TAP_CODE_DELAY 10
|
||||
|
||||
#define RGB_DI_PIN E6
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 13
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 128
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Genesis
|
||||
|
||||
Genesis is a 5x4 ortholinear macro pad designed and produced by customMK.
|
||||
|
||||

|
||||

|
||||
|
||||
Genesis is a 5x4 ortholinear macro pad designed and produced by customMK.
|
||||
|
||||
* Keyboard Maintainer: [customMK](https://github.com/customMK)
|
||||
* Hardware Supported: Genesis Macro Pad
|
||||
* Hardware Availability: [customMK](https://shop.custommk.com/products/genesis_macropad)
|
||||
|
||||
65
keyboards/custommk/genesis/rev1/config.h
Normal file
65
keyboards/custommk/genesis/rev1/config.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/* Copyright 2020 customMK
|
||||
*
|
||||
* 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 0xF35B
|
||||
#define PRODUCT_ID 0xFAB0
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER customMK
|
||||
#define PRODUCT GenesisRev1
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 4
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { F0, C7, C6, B6, B5 }
|
||||
#define MATRIX_COL_PINS { F4, F5, D7, B4 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define ENCODERS_PAD_A { F6, D2 }
|
||||
#define ENCODERS_PAD_B { F7, D1 }
|
||||
#define ENCODER_RESOLUTION 2
|
||||
#define TAP_CODE_DELAY 10
|
||||
|
||||
#define RGB_DI_PIN E6
|
||||
#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
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
#define RGBLED_NUM 13
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 128
|
||||
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"keyboard_name": "Genesis",
|
||||
"keyboard_name": "Genesis Rev1",
|
||||
"url": "https://www.customMK.com",
|
||||
"maintainer": "customMK",
|
||||
"width": 4,
|
||||
@@ -20,8 +20,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_ortho_5x4(
|
||||
MO(1), KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
KC_P4, KC_P5, KC_P6, KC_PGUP,
|
||||
KC_P7, KC_P8, KC_P9, KC_PGUP,
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_P1, KC_P2, KC_P3, KC_PGDN,
|
||||
KC_P0, KC_SPC, KC_PDOT, KC_PENT),
|
||||
|
||||
19
keyboards/custommk/genesis/rev1/readme.md
Normal file
19
keyboards/custommk/genesis/rev1/readme.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Genesis
|
||||
|
||||
Genesis is a 5x4 ortholinear macro pad designed and produced by customMK.
|
||||
|
||||
* Keyboard Maintainer: [customMK](https://github.com/customMK)
|
||||
* Hardware Supported: Genesis Macro Pad
|
||||
* Hardware Availability: [customMK](https://shop.custommk.com/products/genesis_macropad)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make custommk/genesis/rev1:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make custommk/genesis/rev1:default:flash
|
||||
|
||||
Genesis Macro Pad has qmk-dfu bootloader preinstalled. To enter the bootloader, run the flashing command above, and then either plug in the USB connection while holding the top-left key, or alternatively, plug in the USB connection and then press the reset button on the PCB
|
||||
|
||||
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).
|
||||
@@ -14,25 +14,25 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "genesis.h"
|
||||
#include "rev1.h"
|
||||
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) return false;
|
||||
/* top left encoder */
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
/* top right encoder */
|
||||
else if (index == 1) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
/* top left encoder */
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
/* top right encoder */
|
||||
else if (index == 1) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -19,30 +19,30 @@
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT_numpad_5x4( \
|
||||
K00, K01, K02, K03, \
|
||||
K10, K11, K12, \
|
||||
K20, K21, K22, K23, \
|
||||
K30, K31, K32, \
|
||||
K40, K42, K43 \
|
||||
K00, K01, K02, K03, \
|
||||
K10, K11, K12, \
|
||||
K20, K21, K22, K23, \
|
||||
K30, K31, K32, \
|
||||
K40, K42, K43 \
|
||||
) { \
|
||||
{ K00, K01, K02, K03 }, \
|
||||
{ K10, K11, K12, KC_NO }, \
|
||||
{ K20, K21, K22, K23 }, \
|
||||
{ K30, K31, K32, KC_NO }, \
|
||||
{ K40, KC_NO, K42, K43 } \
|
||||
{ K00, K01, K02, K03 }, \
|
||||
{ K10, K11, K12, KC_NO }, \
|
||||
{ K20, K21, K22, K23 }, \
|
||||
{ K30, K31, K32, KC_NO }, \
|
||||
{ K40, KC_NO, K42, K43 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_ortho_5x4( \
|
||||
K00, K01, K02, K03, \
|
||||
K10, K11, K12, K13, \
|
||||
K20, K21, K22, K23, \
|
||||
K30, K31, K32, K33, \
|
||||
K40, K41, K42, K43 \
|
||||
K00, K01, K02, K03, \
|
||||
K10, K11, K12, K13, \
|
||||
K20, K21, K22, K23, \
|
||||
K30, K31, K32, K33, \
|
||||
K40, K41, K42, K43 \
|
||||
) { \
|
||||
{ K00, K01, K02, K03 }, \
|
||||
{ K10, K11, K12, K13 }, \
|
||||
{ K20, K21, K22, K23 }, \
|
||||
{ K30, K31, K32, K33 }, \
|
||||
{ K40, K41, K42, K43 } \
|
||||
{ K00, K01, K02, K03 }, \
|
||||
{ K10, K11, K12, K13 }, \
|
||||
{ K20, K21, K22, K23 }, \
|
||||
{ K30, K31, K32, K33 }, \
|
||||
{ K40, K41, K42, K43 } \
|
||||
}
|
||||
|
||||
0
keyboards/custommk/genesis/rev1/rules.mk
Normal file
0
keyboards/custommk/genesis/rev1/rules.mk
Normal file
66
keyboards/custommk/genesis/rev2/config.h
Normal file
66
keyboards/custommk/genesis/rev2/config.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/* Copyright 2020 customMK
|
||||
*
|
||||
* 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 0xF35B
|
||||
#define PRODUCT_ID 0xFAB1
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER customMK
|
||||
#define PRODUCT GenesisRev2
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 4
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { F0, C7, C6, B6, B5, B0}
|
||||
#define MATRIX_COL_PINS { F4, F5, D7, B4 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define ENCODERS_PAD_A { F6, D2 }
|
||||
#define ENCODERS_PAD_B { F7, D1 }
|
||||
#define ENCODER_RESOLUTION 2
|
||||
#define TAP_CODE_DELAY 10
|
||||
|
||||
#define RGB_DI_PIN E6
|
||||
#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
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
#define RGBLED_NUM 13
|
||||
#define RGBLIGHT_LAYERS
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 128
|
||||
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 4
|
||||
|
||||
76
keyboards/custommk/genesis/rev2/info.json
Normal file
76
keyboards/custommk/genesis/rev2/info.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"keyboard_name": "Genesis Rev2",
|
||||
"url": "https://www.customMK.com",
|
||||
"maintainer": "customMK",
|
||||
"width": 4,
|
||||
"height": 6,
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_5x4": {
|
||||
"layout": [{"label":"MO(1)", "x":0, "y":0},
|
||||
{"label":"/", "x":1, "y":0},
|
||||
{"label":"*", "x":2, "y":0},
|
||||
{"label":"Mute", "x":3, "y":0},
|
||||
{"label":"7", "x":0, "y":1},
|
||||
{"label":"8", "x":1, "y":1},
|
||||
{"label":"9", "x":2, "y":1},
|
||||
{"label":"+", "x":3, "y":1},
|
||||
{"label":"4", "x":0, "y":2},
|
||||
{"label":"5", "x":1, "y":2},
|
||||
{"label":"6", "x":2, "y":2},
|
||||
{"label":"Pg Up", "x":3, "y":2},
|
||||
{"label":"1", "x":0, "y":3},
|
||||
{"label":"2", "x":1, "y":3},
|
||||
{"label":"3", "x":2, "y":3},
|
||||
{"label":"Pg Dn", "x":3, "y":3},
|
||||
{"label":"0", "x":0, "y":4},
|
||||
{"label":"Spc", "x":1, "y":4},
|
||||
{"label":".", "x":2, "y":4},
|
||||
{"label":"Enter", "x":3, "y":4}]
|
||||
},
|
||||
"LAYOUT_numpad_5x4": {
|
||||
"layout": [{"label":"MO(1)", "x":0, "y":0},
|
||||
{"label":"/", "x":1, "y":0},
|
||||
{"label":"*", "x":2, "y":0},
|
||||
{"label":"-", "x":3, "y":0},
|
||||
{"label":"7", "x":0, "y":1},
|
||||
{"label":"8", "x":1, "y":1},
|
||||
{"label":"9", "x":2, "y":1},
|
||||
{"label":"+", "x":3, "y":1, "h":2},
|
||||
{"label":"4", "x":0, "y":2},
|
||||
{"label":"5", "x":1, "y":2},
|
||||
{"label":"6", "x":2, "y":2},
|
||||
{"label":"1", "x":0, "y":3},
|
||||
{"label":"2", "x":1, "y":3},
|
||||
{"label":"3", "x":2, "y":3},
|
||||
{"label":"Enter", "x":3, "y":3, "h":2},
|
||||
{"label":"0", "x":0, "y":4, "w":2},
|
||||
{"label":".", "x":2, "y":4}]
|
||||
},
|
||||
"LAYOUT_via_6x4": {
|
||||
"layout": [{"label":"Vol-", "x":0, "y":0},
|
||||
{"label":"Vol+", "x":1, "y":0},
|
||||
{"label":"Vol-", "x":3, "y":0},
|
||||
{"label":"Vol+", "x":4, "y":0},
|
||||
{"label":"MO(1)", "x":0.5, "y":1.1},
|
||||
{"label":"/", "x":1.5, "y":1.1},
|
||||
{"label":"*", "x":2.5, "y":1.1},
|
||||
{"label":"Mute", "x":3.5, "y":1.1},
|
||||
{"label":"7", "x":0.5, "y":2.1},
|
||||
{"label":"8", "x":1.5, "y":2.1},
|
||||
{"label":"9", "x":2.5, "y":2.1},
|
||||
{"label":"+", "x":3.5, "y":2.1},
|
||||
{"label":"4", "x":0.5, "y":3.1},
|
||||
{"label":"5", "x":1.5, "y":3.1},
|
||||
{"label":"6", "x":2.5, "y":3.1},
|
||||
{"label":"Pg Up", "x":3.5, "y":3.1},
|
||||
{"label":"1", "x":0.5, "y":4.1},
|
||||
{"label":"2", "x":1.5, "y":4.1},
|
||||
{"label":"3", "x":2.5, "y":4.1},
|
||||
{"label":"Pg Dn", "x":3.5, "y":4.1},
|
||||
{"label":"0", "x":0.5, "y":5.1},
|
||||
{"label":"Spc", "x":1.5, "y":5.1},
|
||||
{"label":".", "x":2.5, "y":5.1},
|
||||
{"label":"Enter", "x":3.5, "y":5.1}]
|
||||
}
|
||||
}
|
||||
}
|
||||
76
keyboards/custommk/genesis/rev2/keymaps/default/keymap.c
Normal file
76
keyboards/custommk/genesis/rev2/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,76 @@
|
||||
/* Copyright 2020 customMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
//#define GENESIS_LAYER_COLORS
|
||||
#define GENESIS_LAYER1_COLOR HSV_CYAN
|
||||
#define GENESIS_LAYER2_COLOR HSV_GREEN
|
||||
#define GENESIS_LAYER3_COLOR HSV_WHITE
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_ortho_5x4(
|
||||
MO(1), KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_P7, KC_P8, KC_P9, KC_BSPC,
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_P1, KC_P2, KC_P3, KC_CAPS,
|
||||
KC_P0, KC_SPC, KC_PDOT, KC_ENT),
|
||||
|
||||
[1] = LAYOUT_ortho_5x4(
|
||||
KC_TRNS, KC_VOLU, RGB_TOG, RGB_MOD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
RGB_HUI, KC_TRNS, KC_TRNS, RGB_HUD),
|
||||
|
||||
};
|
||||
|
||||
|
||||
#ifdef GENESIS_LAYER_COLORS
|
||||
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0,13,GENESIS_LAYER1_COLOR}
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0,13,GENESIS_LAYER2_COLOR}
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0,13,GENESIS_LAYER3_COLOR}
|
||||
);
|
||||
|
||||
|
||||
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
|
||||
my_layer1_layer,
|
||||
my_layer2_layer,
|
||||
my_layer3_layer
|
||||
);
|
||||
|
||||
//Set the appropriate layer color
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
rgblight_set_layer_state(0, layer_state_cmp(state, 1));
|
||||
rgblight_set_layer_state(1, layer_state_cmp(state, 2));
|
||||
rgblight_set_layer_state(2, layer_state_cmp(state, 3));
|
||||
return state;
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
//Enable the LED layers
|
||||
rgblight_layers = my_rgb_layers;
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,6 @@
|
||||
# Default Genesis Macro Pad Layout
|
||||
|
||||
This is the default layout for the Genesis Macro Pad. It assumes all 1u switches
|
||||
and optional rotary encoder in the top-left or top-right corner for media volume
|
||||
control. The top left switch activates Layer 1 which enables control of the RGB
|
||||
underglow.
|
||||
89
keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c
Normal file
89
keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c
Normal file
@@ -0,0 +1,89 @@
|
||||
/* Copyright 2020 customMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
//#define GENESIS_LAYER_COLORS
|
||||
#define GENESIS_LAYER1_COLOR HSV_CYAN
|
||||
#define GENESIS_LAYER2_COLOR HSV_GREEN
|
||||
#define GENESIS_LAYER3_COLOR HSV_WHITE
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_numpad_5x4(
|
||||
MO(1), KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_P7, KC_P8, KC_P9,
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_P1, KC_P2, KC_P3,
|
||||
KC_P0, KC_PDOT, KC_ENT),
|
||||
|
||||
[1] = LAYOUT_numpad_5x4(
|
||||
KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
RGB_HUI, KC_TRNS, RGB_HUD),
|
||||
|
||||
[2] = LAYOUT_numpad_5x4(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[3] = LAYOUT_numpad_5x4(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
};
|
||||
|
||||
|
||||
#ifdef GENESIS_LAYER_COLORS
|
||||
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0,13,GENESIS_LAYER1_COLOR}
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0,13,GENESIS_LAYER2_COLOR}
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0,13,GENESIS_LAYER3_COLOR}
|
||||
);
|
||||
|
||||
|
||||
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
|
||||
my_layer1_layer,
|
||||
my_layer2_layer,
|
||||
my_layer3_layer
|
||||
);
|
||||
|
||||
//Set the appropriate layer color
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
rgblight_set_layer_state(0, layer_state_cmp(state, 1));
|
||||
rgblight_set_layer_state(1, layer_state_cmp(state, 2));
|
||||
rgblight_set_layer_state(2, layer_state_cmp(state, 3));
|
||||
return state;
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
//Enable the LED layers
|
||||
rgblight_layers = my_rgb_layers;
|
||||
}
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user