]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
[deadcyclo layout] Added unicode layer
authorBrendan Johan Lee <deadcyclo@vanntett.net>
Tue, 24 Jan 2017 20:54:34 +0000 (21:54 +0100)
committerBrendan Johan Lee <deadcyclo@vanntett.net>
Tue, 24 Jan 2017 20:54:34 +0000 (21:54 +0100)
keyboards/ergodox/keymaps/deadcyclo/Makefile [new file with mode: 0644]
keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png
keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png
keyboards/ergodox/keymaps/deadcyclo/keymap.c
keyboards/ergodox/keymaps/deadcyclo/readme.md

diff --git a/keyboards/ergodox/keymaps/deadcyclo/Makefile b/keyboards/ergodox/keymaps/deadcyclo/Makefile
new file mode 100644 (file)
index 0000000..039f07c
--- /dev/null
@@ -0,0 +1 @@
+UNICODE_ENABLE = yes
index 481e63e324bc72d808817182279595c8a4a13922..a267ff23d223eff976ce032965d301886d759825 100644 (file)
Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png and b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png differ
index 9ebba673401289e9d1ad584d29bf938ac2b47d99..6d73495c1c1c9a7b97e1d9a1d3418deb6c821c21 100644 (file)
Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png and b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png differ
index 208f6716206ebad4645b45f14f03652208c22297..c14ca6959d843557e268e4c2c34323b4967a206a 100644 (file)
@@ -12,7 +12,10 @@ enum custom_keycodes {
   PLACEHOLDER = SAFE_RANGE, // can always be here
   EPRM,
   VRSN,
-  RGB_SLD
+  RGB_SLD,
+  SHRUG,
+  YAY,
+  HUG
 };
 
 // TODO: Get rid of of keys I don't want. Make others that I do. Set up lots of makros (Using hyper (and meh)) keys (where to put them?)
@@ -103,14 +106,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_TRNS,
        EPRM, KC_DEL, KC_TRNS
 ),
-/* Keymap 2: Media and mouse keys
+/* Keymap 2: Media, mouse and navigation
  *
  * ,--------------------------------------------------.           ,--------------------------------------------------.
  * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |        |      |      | MsUp |      |      |      |           |      |      |      |      |      |      |        |
+ * |        |      |      | MsUp |      |      |      |           |      |      |      |  Up  |      |      |        |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |  Play  |
+ * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      | Left | Down | Right|      |  Play  |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
  * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        |
  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
@@ -124,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                                 |      |      |      |       |      |      |      |
  *                                 `--------------------'       `--------------------'
  */
-// MEDIA AND MOUSE
+// MEDIA , MOUSE and NAVIGATION
 [MDIA] = KEYMAP(
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -135,24 +138,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                                                     KC_TRNS,
                                   KC_TRNS, KC_TRNS, KC_TRNS,
     // 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
-       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
-                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_UP,   KC_TRNS,  KC_TRNS, KC_TRNS,
+                 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY,
+       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT,  KC_TRNS, KC_TRNS,
+                          KC_VOLU, KC_VOLD, KC_MUTE,  KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS,
        KC_TRNS,
        KC_TRNS, KC_TRNS, KC_WBAK
 ),
 
-/* Keymap 3: Navigation TODO: Printscreen, pg up down, home, end, others? Insert for example
+/* Keymap 3: Unicode
  *
  * ,--------------------------------------------------.           ,--------------------------------------------------.
  * |        | VER  |      |      |      |      |      |           |      |      |      |      |      |      |        |
  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |        |      |      |  up  |      |      |      |           |      |      |      |      |      |      |        |
+ * |        | Shrug| yay  | hug  |      |      |      |           |      |  ■   |  λ   |  →   |  ➙   |  ▻   |        |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
- * |        |      | left | down | right|      |------|           |------|      |      |      |      |      |        |
+ * |        |      |      |      |      |      |------|           |------|      |      |      |      |      |        |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
  * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
@@ -166,11 +169,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                                 |      |      |      |       |      |      |      |
  *                                 `--------------------'       `--------------------'
  */
-// NAVIGATION
+// Unicode
 [NAVG] = KEYMAP(
        KC_TRNS, VRSN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-       KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
-       KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
+       KC_TRNS, SHRUG, YAY, HUG, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
                                            KC_TRNS, KC_TRNS,
@@ -178,7 +181,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                                   KC_TRNS, KC_TRNS, KC_TRNS,
     // 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_TRNS,  UC(0x25a0), UC(0x03bb), UC(0x2192), UC(0x2799), UC(0x25bb), KC_TRNS,
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS,
                           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -192,6 +195,25 @@ const uint16_t PROGMEM fn_actions[] = {
     [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
 };
 
+static void ang_tap (uint16_t code, ...) {
+  uint16_t kc = code;
+  va_list ap;
+
+  va_start(ap, code);
+
+  do {
+    register_code16(kc);
+    unregister_code16(kc);
+    wait_ms(50);
+    kc = va_arg(ap, int);
+  } while (kc != 0);
+  va_end(ap);
+}
+
+#define TAP_ONCE(code)  \
+  register_code (code); \
+  unregister_code (code)
+
 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 {
   // MACRODOWN only works in this function
@@ -233,13 +255,46 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
       }
       return false;
       break;
+  case SHRUG:
+      if (record->event.pressed) {
+         unicode_input_start(); register_hex(0xaf); unicode_input_finish();
+         TAP_ONCE (KC_BSLS);
+         register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
+         unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
+         register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT);
+         TAP_ONCE (KC_SLSH);
+         unicode_input_start (); register_hex(0xaf); unicode_input_finish();
+      }
+      return false;
+      break;
+  case YAY:
+      if (record->event.pressed) {
+       ang_tap (KC_BSLS, KC_O, KC_SLSH, 0);
+      }
+      return false;
+      break;
+ case HUG:
+   if (record->event.pressed) {
+     unicode_input_start(); register_hex(0x0f3c); unicode_input_finish();
+     TAP_ONCE (KC_SPC);
+     unicode_input_start(); register_hex(0x3064); unicode_input_finish();
+     TAP_ONCE (KC_SPC);
+     unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
+     unicode_input_start(); register_hex(0x005f); unicode_input_finish();
+     unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
+     TAP_ONCE (KC_SPC);
+     unicode_input_start(); register_hex(0x0f3d); unicode_input_finish();
+     unicode_input_start(); register_hex(0x3064); unicode_input_finish();
+   }
+      return false;
+      break;
   }
   return true;
 }
 
 // Runs just one time when the keyboard initializes.
 void matrix_init_user(void) {
-
+  set_unicode_input_mode(UC_LNX);
 };
 
 // Runs constantly in the background, in a loop.
index a937cfceb0db008302d9aa1934bd7813d3eb5163..5426057e9934509551cf916b54d5b0ae06c6d9e9 100644 (file)
@@ -28,26 +28,41 @@ TOG, are dual purpose. Hence for example the top left key produces ESC
 if tapped, and temporarilly toggles L3 when hold down. The two center
 L1 TOG keys toggle L1 on and off for more permanent layer toggling.
 
-## Layer 1 - Symbols
+## Layer 1 - Symbols and RGB
 
-[![Layer 1 - Symbols](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73)
+[![Layer 1 - Symbols and RGB](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73)
 
-## Layer 2 - Media and Mouse
+The Symbols and RGB layer contains function keys, commonly used
+symbols, a numpad and if you have the new Ergodox Ez shine keys for
+controlling various RGB-led functions. In addition, it provides an up
+and a down key for easy scrolling. RGB controller keys are yellow.
 
-[![Layer 2 - Media and Mouse](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731)
+## Layer 2 - Media, Mouse and Navigation
 
-## Layer 3 - Navigation
+[![Layer 2 - Media, Mouse and Navigation](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731)
 
-[![Layer 3 - Navigation](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289)
+The Media, Mouse and unicode layer contains special keys for moving
+the mouse and clicking on it with the keyboard. In addition it
+provides standard media control keys, and default arrow keys.
+
+## Layer 3 - Unicode
+
+[![Layer 3 - Unicode](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289)
+
+The unicode layer provides keys for directly typing unicode (utf-8)
 
 # Changelog
 
 - 02.01.2017 Added delete key on second layer
 - 10.01.2017 Added layer images to readme
 - 24.01.2017 Added support for Ergodox Shine. Added secondary L2 switch key on left hand
+- 24.01.2017 Added unicode keys. Added shrug hug and yay. Moved Navigation to layer 2
 
 # TODO
 
-- Add unicode support (direct input and indirect? see algernon layout for examples)
-- Add descriptions below each layer image of any special functions/keys
-- Move Navigation keys to Layer 2 on right side, add a layer switch to L2 on left side as well, and use L3 for unicode stuff
+- Add support for unicode by name? (See algernon layout for example)
+- Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
+- Make macros for gnu screen and i3wm
+- Look into the app launch macros in algernon keymap
+- Make other smileys like shrug and yay ¯\_(ツ)_/¯ and \o/ and others (see amon others [http://dongerlist.com](http://dongerlist.com)
+