parent
631b8999a7
commit
162f603b1c
@ -0,0 +1,19 @@ |
|||||||
|
AUDIO_ENABLE:=no
|
||||||
|
BACKLIGHT_ENABLE:=no
|
||||||
|
BLUETOOTH_ENABLE:=no
|
||||||
|
BOOTMAGIC_ENABLE:=no
|
||||||
|
COMMAND_ENABLE:=no
|
||||||
|
CONSOLE_ENABLE:=no
|
||||||
|
EXTRAKEY_ENABLE:=yes
|
||||||
|
MIDI_ENABLE:=no
|
||||||
|
MOUSEKEY_ENABLE:=yes
|
||||||
|
NKRO_ENABLE:=no
|
||||||
|
RGBLIGHT_ENABLE:=no
|
||||||
|
SLEEP_LED_ENABLE:=no
|
||||||
|
TAP_DANCE_ENABLE:=yes
|
||||||
|
UNICODEMAP_ENABLE:=no
|
||||||
|
UNICODE_ENABLE:=no
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../../Makefile
|
||||||
|
endif |
@ -0,0 +1,13 @@ |
|||||||
|
#ifndef CONFIG_USER_H |
||||||
|
#define CONFIG_USER_H |
||||||
|
|
||||||
|
#include "../../config.h" |
||||||
|
|
||||||
|
#ifndef NO_DEBUG |
||||||
|
#define NO_DEBUG |
||||||
|
#endif |
||||||
|
#ifndef NO_PRINT |
||||||
|
#define NO_PRINT |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,179 @@ |
|||||||
|
#include <stdbool.h> |
||||||
|
|
||||||
|
#include "ergodox.h" |
||||||
|
#include "action_layer.h" |
||||||
|
|
||||||
|
enum { |
||||||
|
BASE = 0, // Default layer
|
||||||
|
ARROWS = 1, // Arrows and Fx keys layer
|
||||||
|
MOUSE = 2, // Mouse movement and buttons layer
|
||||||
|
PARENS = 3, // Parenthesis easy access layer
|
||||||
|
|
||||||
|
TD_L = 0, // Tap dance index for left shift
|
||||||
|
TD_R = 1 // Tap dance index for right shift
|
||||||
|
}; |
||||||
|
|
||||||
|
// See the videck.png image for a visualization of the layout.
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
[BASE] = KEYMAP( |
||||||
|
// left hand
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_HOME, |
||||||
|
KC_EQL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_END, |
||||||
|
MO(PARENS), KC_A, KC_S, KC_D, KC_F, KC_G, |
||||||
|
TD(TD_L), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC, |
||||||
|
KC_LCTL, KC_LALT, KC_VOLD, KC_VOLU, KC_MUTE, |
||||||
|
KC_ESC, KC_LGUI, |
||||||
|
TG(MOUSE), |
||||||
|
KC_SPC, KC_TAB, TG(ARROWS), |
||||||
|
// right hand
|
||||||
|
KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, |
||||||
|
KC_PGDN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, |
||||||
|
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, |
||||||
|
KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD(TD_R), |
||||||
|
KC_LBRC, KC_RBRC, KC_EQL, KC_RALT, KC_RCTL, |
||||||
|
KC_APP, KC_ESC, |
||||||
|
KC_INS, |
||||||
|
KC_SLCK, KC_ENT, KC_SPC |
||||||
|
), |
||||||
|
[ARROWS] = KEYMAP( |
||||||
|
// left hand
|
||||||
|
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, |
||||||
|
KC_NO, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
// right hand
|
||||||
|
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, |
||||||
|
KC_LEFT, KC_DOWN, KC_UP, 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 |
||||||
|
), |
||||||
|
[MOUSE] = KEYMAP( |
||||||
|
// left hand
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_BTN3, KC_TRNS, |
||||||
|
KC_TRNS, |
||||||
|
KC_BTN1, KC_BTN2, KC_NO, |
||||||
|
// right hand
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS |
||||||
|
), |
||||||
|
[PARENS] = KEYMAP( |
||||||
|
// left hand
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, |
||||||
|
KC_NO, |
||||||
|
KC_TRNS, KC_TRNS, KC_NO, |
||||||
|
// right hand
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, |
||||||
|
KC_TRNS, |
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS |
||||||
|
) |
||||||
|
}; |
||||||
|
|
||||||
|
typedef void (*videck_tap_dance_trigger_t) (const uint16_t kc); |
||||||
|
|
||||||
|
typedef struct |
||||||
|
{ |
||||||
|
uint16_t kc1; |
||||||
|
uint16_t kc2; |
||||||
|
videck_tap_dance_trigger_t trigger; |
||||||
|
} videck_tap_dance_tuple_t; |
||||||
|
|
||||||
|
static void videck_tap_dance_finished (qk_tap_dance_state_t *state, void *user_data) { |
||||||
|
videck_tap_dance_tuple_t *const tuple = (videck_tap_dance_tuple_t *)user_data; |
||||||
|
|
||||||
|
if (state->count == 1) { |
||||||
|
register_code16 (tuple->kc1); |
||||||
|
} else if (state->count == 2) { |
||||||
|
register_code16 (tuple->kc2); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
static void videck_tap_dance_reset (qk_tap_dance_state_t *state, void *user_data) { |
||||||
|
videck_tap_dance_tuple_t *const tuple = (videck_tap_dance_tuple_t *)user_data; |
||||||
|
|
||||||
|
if (state->count == 1) { |
||||||
|
unregister_code16 (tuple->kc1); |
||||||
|
} else if (state->count == 2) { |
||||||
|
unregister_code16 (tuple->kc2); |
||||||
|
tuple->trigger(tuple->kc2); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
static bool caps_lock_is_on; |
||||||
|
|
||||||
|
// Toggles caps lock status.
|
||||||
|
static void videck_caps_trigger (const uint16_t kc) { |
||||||
|
caps_lock_is_on ^= true; |
||||||
|
} |
||||||
|
|
||||||
|
#define ACTION_TAP_DANCE_DOUBLE_TRIGGER(kc1, kc2, double_trigger) { \ |
||||||
|
.fn = { NULL, videck_tap_dance_finished, videck_tap_dance_reset }, \
|
||||||
|
.user_data = (void *)&((videck_tap_dance_tuple_t) { kc1, kc2, double_trigger }), \
|
||||||
|
} |
||||||
|
|
||||||
|
qk_tap_dance_action_t tap_dance_actions[] = { |
||||||
|
[TD_L] = ACTION_TAP_DANCE_DOUBLE_TRIGGER(KC_LSFT, KC_CAPS, videck_caps_trigger), |
||||||
|
[TD_R] = ACTION_TAP_DANCE_DOUBLE_TRIGGER(KC_RSFT, KC_CAPS, videck_caps_trigger) |
||||||
|
}; |
||||||
|
|
||||||
|
// Runs just one time when the keyboard initializes.
|
||||||
|
void matrix_init_user(void) { |
||||||
|
ergodox_led_all_set(LED_BRIGHTNESS_LO); |
||||||
|
caps_lock_is_on = false; |
||||||
|
}; |
||||||
|
|
||||||
|
static void indicate_using_led(const uint8_t led, const bool enabled) { |
||||||
|
if (enabled) { |
||||||
|
ergodox_right_led_on(led); |
||||||
|
} else { |
||||||
|
ergodox_right_led_off(led); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
static inline void indicate_caps_lock_state(const bool enabled) { |
||||||
|
indicate_using_led(1, enabled); |
||||||
|
} |
||||||
|
|
||||||
|
static inline void indicate_arrows_layer_state(const bool enabled) { |
||||||
|
indicate_using_led(2, enabled); |
||||||
|
} |
||||||
|
|
||||||
|
static inline void indicate_mouse_layer_state(const bool enabled) { |
||||||
|
indicate_using_led(3, enabled); |
||||||
|
} |
||||||
|
|
||||||
|
// Runs constantly in the background, in a loop.
|
||||||
|
void matrix_scan_user(void) { |
||||||
|
// Check if we have shift locked.
|
||||||
|
indicate_caps_lock_state(caps_lock_is_on); |
||||||
|
indicate_arrows_layer_state(IS_LAYER_ON(ARROWS)); |
||||||
|
indicate_mouse_layer_state(IS_LAYER_ON(MOUSE)); |
||||||
|
}; |
@ -0,0 +1,24 @@ |
|||||||
|
ViDeck keymap for ErgoDox |
||||||
|
========================= |
||||||
|
|
||||||
|
This is a QWERTY layout based on the US layout, where Vi functionality has been |
||||||
|
especially considered. |
||||||
|
|
||||||
|
# Features |
||||||
|
* Mouse movements using the Vi movement keys. |
||||||
|
* Vi movement keys doubling as arrow keys. |
||||||
|
* Shift lock using double tap. |
||||||
|
* A coder's modifier key for easy input of parenthesis. |
||||||
|
* Acess to the escape key using either thumb. |
||||||
|
* Reasonably accessible Scroll Lock key (useful if you, like me, want to switch |
||||||
|
to a non-US layout once in a while in X). |
||||||
|
|
||||||
|
# Missing keys |
||||||
|
* Caps Lock (shift lock is used instead). |
||||||
|
* Pause/Break. |
||||||
|
* Print Screen. |
||||||
|
|
||||||
|
# LEDs |
||||||
|
* Shift lock is indicated using first LED. |
||||||
|
* Arrow keys layer is indicated using second LED. |
||||||
|
* Mouse keys layer is indicated using third LED. |
@ -0,0 +1,443 @@ |
|||||||
|
[ |
||||||
|
{ |
||||||
|
"backcolor": "#333333", |
||||||
|
"background": { |
||||||
|
"name": "PBT Black", |
||||||
|
"style": "background-image: url('/bg/plastic/pbt-black.png');" |
||||||
|
}, |
||||||
|
"switchMount": "cherry", |
||||||
|
"switchBrand": "gateron", |
||||||
|
"switchType": "KS-3-Red" |
||||||
|
}, |
||||||
|
[ |
||||||
|
{ |
||||||
|
"x": 3.5, |
||||||
|
"c": "#323232", |
||||||
|
"t": "#ffffff\n\n\n#ac97d8" |
||||||
|
}, |
||||||
|
"#\n3\n\nF3", |
||||||
|
{ |
||||||
|
"x": 10.5 |
||||||
|
}, |
||||||
|
"*\n8\n\nF8" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"x": 2.5 |
||||||
|
}, |
||||||
|
"@\n2\n\nF2", |
||||||
|
{ |
||||||
|
"x": 1 |
||||||
|
}, |
||||||
|
"$\n4\n\nF4", |
||||||
|
{ |
||||||
|
"x": 8.5 |
||||||
|
}, |
||||||
|
"&\n7\n\nF7", |
||||||
|
{ |
||||||
|
"x": 1, |
||||||
|
"t": "#ffffff\n\n\n#ac97d8\n\n\n\n#555454" |
||||||
|
}, |
||||||
|
"(\n9\n\nF9" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"x": 5.5, |
||||||
|
"t": "#ffffff\n\n\n#ac97d8" |
||||||
|
}, |
||||||
|
"%\n5\n\nF5", |
||||||
|
{ |
||||||
|
"t": "#ffffff" |
||||||
|
}, |
||||||
|
"home", |
||||||
|
{ |
||||||
|
"x": 4.5 |
||||||
|
}, |
||||||
|
"pgup", |
||||||
|
{ |
||||||
|
"t": "#ffffff\n\n\n#ac97d8" |
||||||
|
}, |
||||||
|
"^\n6\n\nF6" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"t": "#ffffff", |
||||||
|
"w": 1.5 |
||||||
|
}, |
||||||
|
"~\n`", |
||||||
|
{ |
||||||
|
"t": "#ffffff\n\n\n#ac97d8" |
||||||
|
}, |
||||||
|
"!\n1\n\nF1", |
||||||
|
{ |
||||||
|
"x": 14.5 |
||||||
|
}, |
||||||
|
")\n0\n\nF10", |
||||||
|
{ |
||||||
|
"w": 1.5 |
||||||
|
}, |
||||||
|
"_\n-\n\nF11" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.375, |
||||||
|
"x": 3.5, |
||||||
|
"t": "#ffffff" |
||||||
|
}, |
||||||
|
"E", |
||||||
|
{ |
||||||
|
"x": 10.5 |
||||||
|
}, |
||||||
|
"I" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"x": 2.5 |
||||||
|
}, |
||||||
|
"W", |
||||||
|
{ |
||||||
|
"x": 1 |
||||||
|
}, |
||||||
|
"R", |
||||||
|
{ |
||||||
|
"x": 8.5 |
||||||
|
}, |
||||||
|
"U", |
||||||
|
{ |
||||||
|
"x": 1, |
||||||
|
"t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615" |
||||||
|
}, |
||||||
|
"O\n\n\n\n\n\n\n\n\n{" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"x": 5.5, |
||||||
|
"t": "#ffffff" |
||||||
|
}, |
||||||
|
"T", |
||||||
|
{ |
||||||
|
"h": 1.5 |
||||||
|
}, |
||||||
|
"end", |
||||||
|
{ |
||||||
|
"x": 4.5, |
||||||
|
"h": 1.5 |
||||||
|
}, |
||||||
|
"pgdn", |
||||||
|
"Y" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"w": 1.5 |
||||||
|
}, |
||||||
|
"+\n=", |
||||||
|
"Q", |
||||||
|
{ |
||||||
|
"x": 14.5, |
||||||
|
"t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615" |
||||||
|
}, |
||||||
|
"P\n\n\n\n\n\n\n\n\n}", |
||||||
|
{ |
||||||
|
"t": "#ffffff\n\n\n#ac97d8", |
||||||
|
"w": 1.5 |
||||||
|
}, |
||||||
|
"|\n\\\n\nF12" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.375, |
||||||
|
"x": 3.5, |
||||||
|
"t": "#ffffff" |
||||||
|
}, |
||||||
|
"D", |
||||||
|
{ |
||||||
|
"x": 10.5, |
||||||
|
"t": "#ffffff\n\n#5eb1e7\n#ac97d8" |
||||||
|
}, |
||||||
|
"K\n\n<i class='fa fa-caret-up'></i>\n<i class='kb kb-Arrows-Up'></i>" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"x": 2.5, |
||||||
|
"t": "#ffffff" |
||||||
|
}, |
||||||
|
"S", |
||||||
|
{ |
||||||
|
"x": 1, |
||||||
|
"n": true |
||||||
|
}, |
||||||
|
"F", |
||||||
|
{ |
||||||
|
"x": 8.5, |
||||||
|
"t": "#ffffff\n\n#5eb1e7\n#ac97d8", |
||||||
|
"n": true |
||||||
|
}, |
||||||
|
"J\n\n<i class='fa fa-caret-down'></i>\n<i class='kb kb-Arrows-Down'></i>", |
||||||
|
{ |
||||||
|
"x": 1, |
||||||
|
"t": "#ffffff\n\n#5eb1e7\n#ac97d8\n\n\n\n\n\n#f8d615" |
||||||
|
}, |
||||||
|
"L\n\n<i class='fa fa-caret-right'></i>\n<i class='kb kb-Arrows-Right'></i>\n\n\n\n\n\n(" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"x": 5.5, |
||||||
|
"t": "#ffffff" |
||||||
|
}, |
||||||
|
"G", |
||||||
|
{ |
||||||
|
"x": 6.5, |
||||||
|
"t": "#ffffff\n\n#5eb1e7\n#ac97d8" |
||||||
|
}, |
||||||
|
"H\n\n<i class='fa fa-caret-left'></i>\n<i class='kb kb-Arrows-Left'></i>" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"t": "#f8d615", |
||||||
|
"a": 6, |
||||||
|
"w": 1.5 |
||||||
|
}, |
||||||
|
"( ) [ ] { }", |
||||||
|
{ |
||||||
|
"t": "#ffffff", |
||||||
|
"a": 4 |
||||||
|
}, |
||||||
|
"A", |
||||||
|
{ |
||||||
|
"x": 14.5, |
||||||
|
"t": "#ffffff\n\n\n\n\n\n\n#60605b\n\n#f8d615" |
||||||
|
}, |
||||||
|
":\n;\n\n\n\n\n\nÖ\n\n)", |
||||||
|
{ |
||||||
|
"t": "#ffffff\n\n\n\n\n\n\n#60605b", |
||||||
|
"w": 1.5 |
||||||
|
}, |
||||||
|
"\"\n'\n\n\n\n\n\nÄ" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.625, |
||||||
|
"x": 6.5, |
||||||
|
"t": "#ffffff", |
||||||
|
"h": 1.5 |
||||||
|
}, |
||||||
|
"<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>", |
||||||
|
{ |
||||||
|
"x": 4.5, |
||||||
|
"h": 1.5 |
||||||
|
}, |
||||||
|
"<i class='kb kb-Unicode-DeleteRight-Big'></i>" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.75, |
||||||
|
"x": 3.5 |
||||||
|
}, |
||||||
|
"C", |
||||||
|
{ |
||||||
|
"x": 10.5 |
||||||
|
}, |
||||||
|
"<\n," |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"x": 2.5 |
||||||
|
}, |
||||||
|
"X", |
||||||
|
{ |
||||||
|
"x": 1 |
||||||
|
}, |
||||||
|
"V", |
||||||
|
{ |
||||||
|
"x": 8.5 |
||||||
|
}, |
||||||
|
"M", |
||||||
|
{ |
||||||
|
"x": 1, |
||||||
|
"t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615" |
||||||
|
}, |
||||||
|
">\n.\n\n\n\n\n\n\n\n[" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"x": 5.5, |
||||||
|
"t": "#ffffff" |
||||||
|
}, |
||||||
|
"B", |
||||||
|
{ |
||||||
|
"x": 6.5 |
||||||
|
}, |
||||||
|
"N" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"t": "#ffffff\n\n#f67f00", |
||||||
|
"a": 6, |
||||||
|
"fa": [ |
||||||
|
5 |
||||||
|
], |
||||||
|
"w": 1.5 |
||||||
|
}, |
||||||
|
"⇑\n\n2-tap<br/>locks", |
||||||
|
{ |
||||||
|
"t": "#ffffff", |
||||||
|
"a": 4, |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"Z", |
||||||
|
{ |
||||||
|
"x": 14.5, |
||||||
|
"t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615", |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"?\n/\n\n\n\n\n\n\n\n]", |
||||||
|
{ |
||||||
|
"t": "#ffffff\n\n#f67f00", |
||||||
|
"a": 6, |
||||||
|
"f": 3, |
||||||
|
"w": 1.5 |
||||||
|
}, |
||||||
|
"⇑\n\n2-tap<br/>locks" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.375, |
||||||
|
"x": 3.5, |
||||||
|
"t": "#ffffff", |
||||||
|
"a": 4 |
||||||
|
}, |
||||||
|
"\n<i class='kb kb-Multimedia-Volume-Up-2'></i>", |
||||||
|
{ |
||||||
|
"x": 10.5, |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"}\n]" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.875, |
||||||
|
"x": 2.5 |
||||||
|
}, |
||||||
|
"\n<i class='kb kb-Multimedia-Volume-Down-1'></i>", |
||||||
|
{ |
||||||
|
"x": 1 |
||||||
|
}, |
||||||
|
"\n<i class='kb kb-Multimedia-Mute-1'></i>", |
||||||
|
{ |
||||||
|
"x": 8.5, |
||||||
|
"t": "#ffffff\n\n\n\n\n\n\n#60605b", |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"{\n[\n\n\n\n\n\nÅ", |
||||||
|
{ |
||||||
|
"x": 1, |
||||||
|
"t": "#ffffff", |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"+\n=" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"y": -0.75, |
||||||
|
"x": 0.5, |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"ctrl", |
||||||
|
{ |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"alt", |
||||||
|
{ |
||||||
|
"x": 14.5, |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"altgr", |
||||||
|
{ |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"ctrl" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"r": 30, |
||||||
|
"rx": 6.5, |
||||||
|
"ry": 4.25, |
||||||
|
"y": -1, |
||||||
|
"x": 1, |
||||||
|
"t": "#ffffff\n\n\n\n\n\n\n\n\n\n#5eb1e7", |
||||||
|
"f": 3 |
||||||
|
}, |
||||||
|
"esc\n\n\n\n\n\n\n\n\n\n<i class='fa fa-mouse-pointer'></i>M", |
||||||
|
{ |
||||||
|
"t": "#ffffff", |
||||||
|
"f": 7 |
||||||
|
}, |
||||||
|
"<i class='kb kb-logo-linux-tux'></i>" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"t": "#ffffff\n\n\n\n\n\n\n\n\n\n#5eb1e7", |
||||||
|
"f": 3, |
||||||
|
"h": 2 |
||||||
|
}, |
||||||
|
"space\n\n\n\n\n\n\n\n\n\n<i class='fa fa-mouse-pointer'></i>L", |
||||||
|
{ |
||||||
|
"h": 2 |
||||||
|
}, |
||||||
|
"<i class='kb kb-Tab-1'></i>\n\n\n\n\n\n\n\n\n\n<i class='fa fa-mouse-pointer'></i>R", |
||||||
|
{ |
||||||
|
"t": "#5eb1e7" |
||||||
|
}, |
||||||
|
"<i class='fa fa-mouse-pointer'></i>" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"x": 2, |
||||||
|
"t": "#ac97d8" |
||||||
|
}, |
||||||
|
"<i class='fa fa-arrows'></i>" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"r": -30, |
||||||
|
"rx": 13, |
||||||
|
"y": -1, |
||||||
|
"x": -3, |
||||||
|
"t": "#ffffff" |
||||||
|
}, |
||||||
|
"<i class='kb kb-Hamburger-Menu'></i>", |
||||||
|
"esc" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"x": -3 |
||||||
|
}, |
||||||
|
"ins", |
||||||
|
{ |
||||||
|
"h": 2 |
||||||
|
}, |
||||||
|
"<i class='kb kb-Return-2'></i>", |
||||||
|
{ |
||||||
|
"h": 2 |
||||||
|
}, |
||||||
|
"space" |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"x": -3 |
||||||
|
}, |
||||||
|
"scroll<br/>lock" |
||||||
|
] |
||||||
|
] |
After Width: | Height: | Size: 104 KiB |
Loading…
Reference in new issue