aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/ergodox_ez
diff options
context:
space:
mode:
authorGravatar Pavlos Vinieratos <pvinis@gmail.com>2019-05-14 21:02:22 +0200
committerGravatar Drashna Jaelre <drashna@live.com>2019-05-14 12:02:22 -0700
commitb68d8fe82eac0be9ca8862fdf94ae4bfbbb0735e (patch)
tree788dc925e12ec699f192dcde04096b96abde4da6 /keyboards/ergodox_ez
parent4cdb86c730528c8ca5ff90f5b9b01c395d31fc0e (diff)
downloadqmk_firmware-b68d8fe82eac0be9ca8862fdf94ae4bfbbb0735e.tar.gz
[Keymap] Pvinis master (#5843)
* trying to make my global keymap * refactoring the old keymap using userspace * getting there * move readme and remove community layout * use pragma once instead of ifndefs * just make iris work * iris decent * better naming * add some modifiers on the home row * use symbol and sysctl layers * fix up * a bit faster * add < and > on symbol layer * apparently im not using z all that much.. * okok * fix up stuff * led init is back * bring back led indicators * Update keyboards/ergotravel/keymaps/pvinis/config.h Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * not needed * not needed * delete these for now, until I use the userspace code * remove katamari from here. made a new pr for it * lower case * drashna suggestion :) * move files to correct place * fix missing command
Diffstat (limited to 'keyboards/ergodox_ez')
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/keymap.c330
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/readme.md65
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/rules.mk1
3 files changed, 396 insertions, 0 deletions
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c
new file mode 100644
index 000000000..9943886e2
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c
@@ -0,0 +1,330 @@
+// pvinis ergodox ez
+// ,------------------------------------. ,------------------------------------.
+// | | | | | | | | | | | | | | | |
+// |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
+// | | | | | | | | | | | | | | | |
+// |------+----+----+----x----x----| | | |----x----x----+----+----+------|
+// | | | | | | |----| |----| | | | | | |
+// |------+----+----+----x----x----| | | |----x----x----+----+----+------|
+// | | | | | | | | | | | | | | | |
+// `------+----+----+----+----+---------' `---------+----+----+----+----+------'
+// | | | | | | | | | | | |
+// `------------------------' `------------------------'
+// ,---------. ,---------.
+// | | | | | |
+// ,----+----+----| |----+----+----.
+// | | | | | | | |
+// | | |----| |----| | |
+// | | | | | | | |
+// `--------------' `--------------'
+
+
+#include QMK_KEYBOARD_H
+#include "pvinis.h"
+#include "mousekey.h"
+
+
+// layers
+enum {
+ MOUSE = 8,
+};
+
+// extra keys
+enum {
+ NONE = 30,
+ TD_LAYR, // SYSCTL and MOUSE layer switch
+};
+
+// application selection
+// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
+#define AP_SLCK ALLM(KC_S)
+#define AP_XCOD ALLM(KC_X)
+#define AP_MSGR ALLM(KC_M)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // ,------------------------------------. ,------------------------------------.
+ // |4xFLSH| | | | | |Opt | | | | | | | | |
+ // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
+ // | Tab | | | | | | | | | | | | | | |
+ // |------+----+----+----x----x----| | | |----x----x----+----+----+------|
+ // |EscCtl| | | | | |----| |----| | | | | | Ent |
+ // |------+----+----+----x----x----| | | |----x----x----+----+----+------|
+ // |LShift| | | | | | | | | | | | | |RShift|
+ // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
+ // | | | | |Cmd | | | | | | |
+ // `------------------------' `------------------------'
+ // ,---------. ,---------.
+ // |QWER| | | | |
+ // ,----+----+----| |----+----+----.
+ // | Ba | L | | | | | |
+ // | ck |Shi |----| |----| |Spc |
+ // | spc| ft | | | | | |
+ // `--------------' `--------------'
+ [LR_BASE] = LAYOUT_ergodox_pretty_wrapper(
+ TD_3FLS, _______, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______,
+ KC_TAB , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT ,
+ KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
+ _______, _______, _______, KC_LGUI, SYMBOL , SYSCTL , KC_RALT, _______, _______, _______,
+ QWERTY , CARPALX, _______, _______,
+ _______, _______,
+ KC_BSPC, _______, _______, _______, _______, KC_SPC
+ ),
+
+ // ,------------------------------------. ,------------------------------------.
+ // | | NUMBERS_L | | | - | NUMBERS_R | = |
+ // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
+ // | | | [ | | ] | | |
+ // |------+ | | | | +------|
+ // | | QWERTY_L |----| |----| QWERTY_R | |
+ // |------+ | ( | | ) | +------|
+ // | | | | | | | |
+ // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
+ // | | ` | | | | | | | | ' | |
+ // `------------------------' `------------------------'
+ // ,---------. ,---------.
+ // | | | | | |
+ // ,----+----+----| |----+----+----.
+ // | | | | | | | |
+ // | | |----| |----| | |
+ // | | | | | | | |
+ // `--------------' `--------------'
+ // See `users/pvinis/pvinis.h`
+ [LR_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
+ _______, ________________NUMBERS_L__________________, _______, KC_MINS, ________________NUMBERS_R__________________, KC_EQL ,
+ _______, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R1_________________, _______,
+ _______, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _______,
+ _______, _________________QWERTY_L3_________________, KC_LPRN, KC_RPRN, _________________QWERTY_R3_________________, _______,
+ _______, KC_GRV, _______, _______, _______, _______, _______, _______, KC_QUOT , _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ // ,------------------------------------. ,------------------------------------.
+ // | | NUMBERS_L | | | | NUMBERS_R | |
+ // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
+ // | | | | | | | |
+ // |------+ | | | | +------|
+ // | | CARPALX_L |----| |----| CARPALX_R | |
+ // |------+ | | | | +------|
+ // | | | | | | | |
+ // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
+ // | | | | | | | | | | | |
+ // `------------------------' `------------------------'
+ // ,---------. ,---------.
+ // | | | | | |
+ // ,----+----+----| |----+----+----.
+ // | | | | | | | |
+ // | | |----| |----| | |
+ // | | | | | | | |
+ // `--------------' `--------------'
+ // See `users/pvinis/pvinis.h`
+ [LR_CARPALX] = LAYOUT_ergodox_pretty_wrapper(
+ _______, ________________NUMBERS_L__________________, _______, _______, ________________NUMBERS_R__________________, _______,
+ _______, ________________CARPALX_L1_________________, _______, _______, ________________CARPALX_R1_________________, _______,
+ _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______,
+ _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ // See `users/pvinis/pvinis.h`
+ [LR_SYMBOL] = LAYOUT_ergodox_pretty_wrapper(
+ _______, ______________________F_L__________________, KC_F11 , KC_F12 , ______________________F_R__________________, _______,
+ _______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______,
+ _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
+ _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ // See `users/pvinis/pvinis.h`
+ [LR_SYSCTL] = LAYOUT_ergodox_pretty_wrapper(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ // See `users/pvinis/pvinis.h`
+ [LR_KBCTL] = LAYOUT_ergodox_pretty_wrapper(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R1_________________, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R2_________________, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+
+/* MOUSE
+ * a keymap to control my system.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ^ | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | MsUp | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | |MidClk|
+ * ,------|------|------| |------+------+------.
+ * | | | | | |Left |Right |
+ * | | |------| |------| Click| Click|
+ * | | | ^ | | | | |
+ * `--------------------' `--------------------'
+ */
+ [MOUSE] = LAYOUT_ergodox_pretty(
+ KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_TRNS
+
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO
+ ),
+};
+
+
+// keyboard initialization
+void keyboard_post_init_user_local(void) {
+ ergodox_led_all_on();
+ for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
+ ergodox_led_all_set(i);
+ wait_ms(5);
+ }
+ wait_ms(1000);
+ for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
+ ergodox_led_all_set(i);
+ wait_ms(10);
+ }
+ ergodox_led_all_off();
+
+ // restore default brightness for future use
+ ergodox_led_all_set(LED_BRIGHTNESS_HI);
+}
+
+// light up leds based on the layer
+uint32_t layer_state_set_user_local(uint32_t state) {
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (biton32(state)) {
+ case LR_SYSCTL:
+ ergodox_right_led_3_on(); // blue
+ break;
+ case LR_KBCTL:
+ ergodox_right_led_1_on(); // red
+ break;
+ case LR_SYMBOL:
+ ergodox_right_led_2_on(); // green
+ break;
+ default: break;
+ }
+ return state;
+}
+
+// extra keys
+// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ // switch (id) {
+ // }
+ // return MACRO_NONE;
+// }
+
+// tap dances
+
+// flash keyboard on 4x tap, with leds
+// void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) {
+// switch (state->count) {
+// case 1:
+// ergodox_right_led_3_on();
+// break;
+// case 2:
+// ergodox_right_led_2_on();
+// break;
+// case 3:
+// ergodox_right_led_1_on();
+// break;
+// case 4:
+// ergodox_right_led_3_off();
+// wait_ms(50);
+// ergodox_right_led_2_off();
+// wait_ms(50);
+// ergodox_right_led_1_off();
+// break;
+// }
+// }
+
+// void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
+// if (state->count >= 4) {
+// reset_keyboard();
+// reset_tap_dance(state);
+// }
+// }
+
+// void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
+// ergodox_right_led_1_off();
+// wait_ms(50);
+// ergodox_right_led_2_off();
+// wait_ms(50);
+// ergodox_right_led_3_off();
+// }
+
+// SYSCTL on first tap, MOUSE ON second tap
+// void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
+// uint8_t layer = biton32(layer_state);
+
+// switch(state->count) {
+// case 1:
+// switch(layer) {
+// case LR_SYSCTL:
+// layer_off(LR_SYSCTL);
+// break;
+// case MOUSE:
+// layer_off(MOUSE);
+// break;
+// default:
+// layer_on(LR_SYSCTL);
+// break;
+// }
+// break;
+// case 2:
+// layer_on(MOUSE);
+// break;
+// }
+// }
+
+// qk_tap_dance_action_t tap_dance_actions[] = {
+ // [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
+ // [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
+// };
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/readme.md b/keyboards/ergodox_ez/keymaps/pvinis/readme.md
new file mode 100644
index 000000000..af2721054
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/pvinis/readme.md
@@ -0,0 +1,65 @@
+pvinis' keymap
+==============
+
+This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress.
+
+[ez]: https://ergodox-ez.com/
+
+## Table of Contents
+
+* [Todo](#todo)
+* [Layouts](#layouts)
+ - [Base layer](#base-layer)
+ - [Beginner layer](#beginner-layer)
+ - [QWERTY layer](#qwerty-layer)
+ - [CARPALX layer](#carpalx-layer)
+ - [System Control layer](#system-control-layer)
+ - [Template layers](#template-layers)
+* [Building](#building)
+
+# Todo
+
+- [ ] Generate images from keymap
+- [ ] Implement algernon's heatmap
+- [ ] Implement `KC_POP`
+
+# Layouts
+
+## Base layer
+
+This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches.
+Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing.
+Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+`<key>`, and `<key>` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application.
+
+[hammerspoon]: http://www.hammerspoon.org/
+
+## Beginner layer
+
+This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver.
+
+## QWERTY layer
+
+This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one.
+
+## CARPALX layer
+
+This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox.
+
+[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization
+[white]: https://github.com/mw8/white_keyboard_layout
+
+## System Control layer
+
+This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc.
+
+## Template layers
+
+I have two commented out layers that are just templates, so I can easily create a new layer.
+
+# Building
+
+```
+$ git clone https://github.com/qmk/qmk_firmware.git
+$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis
+$ make
+```
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/rules.mk b/keyboards/ergodox_ez/keymaps/pvinis/rules.mk
new file mode 100644
index 000000000..e5ddcae8d
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/pvinis/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes