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