]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Add new ErgoDox EZ keymap, YORUIAN
authorThomas Fitzsimmons <fitzsim@fitzsim.org>
Mon, 5 Sep 2016 21:40:03 +0000 (17:40 -0400)
committerThomas Fitzsimmons <fitzsim@fitzsim.org>
Tue, 6 Sep 2016 00:53:35 +0000 (20:53 -0400)
keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf [new file with mode: 0644]
keyboards/ergodox/keymaps/yoruian/Makefile [new file with mode: 0644]
keyboards/ergodox/keymaps/yoruian/README [new file with mode: 0644]
keyboards/ergodox/keymaps/yoruian/ergodox_yoruian [new file with mode: 0644]
keyboards/ergodox/keymaps/yoruian/keymap.c [new file with mode: 0644]
keyboards/ergodox/keymaps/yoruian/yoruian.h [new file with mode: 0644]

diff --git a/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf b/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf
new file mode 100644 (file)
index 0000000..c8a92c5
--- /dev/null
@@ -0,0 +1,6 @@
+Section "InputClass"
+       Identifier      "ErgoDox EZ"
+       MatchIsKeyboard "on"
+       MatchProduct    "ErgoDox EZ ErgoDox EZ"
+       Option          "XkbLayout"     "ergodox_ez_yoruian"
+EndSection
diff --git a/keyboards/ergodox/keymaps/yoruian/Makefile b/keyboards/ergodox/keymaps/yoruian/Makefile
new file mode 100644 (file)
index 0000000..b43a24c
--- /dev/null
@@ -0,0 +1,13 @@
+ifndef QUANTUM_DIR
+       include ../../../../Makefile
+endif
+
+install-xorg-configuration:
+       install -m 0664 90-$(KEYBOARD)-$(KEYMAP).conf \
+           /etc/X11/xorg.conf.d/90-$(KEYBOARD)-$(KEYMAP).conf
+       install -m 0644 $(KEYBOARD)_$(KEYMAP) \
+           /usr/share/X11/xkb/symbols/$(KEYBOARD)_$(KEYMAP)
+
+uninstall-xorg-configuration:
+       -rm -f /etc/X11/xorg.conf.d/90-$(KEYBOARD)-$(KEYMAP).conf
+       -rm -f /usr/share/X11/xkb/symbols/$(KEYBOARD)_$(KEYMAP)
diff --git a/keyboards/ergodox/keymaps/yoruian/README b/keyboards/ergodox/keymaps/yoruian/README
new file mode 100644 (file)
index 0000000..99b4143
--- /dev/null
@@ -0,0 +1,102 @@
+          Snarfangel's YORUIAN for the ErgoDox EZ
+          ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+DEFAULT
+┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
+┃ ` │ ; │ : │ - │ / │ ( │ < ┃ ┃ > │ ) │ ^ │ * │ ~ │ Γ │ σ ┃
+┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨
+┃ ⎋ │ . │ y │ o │ r │ ? │ ✦ ┃ ┃ ✦ │ j │ v │ d │ f │ w │ q ┃
+┠───┼───┼───┼───┼───┼───┤   ┃ ┃   ├───┼───┼───┼───┼───┼───┨
+┃ ⎈ │ u │ i │ a │ n │ ! ├───┨ ┠───┤ m │ h │ t │ s │ c │ ⎈ ┃
+┠───┼───┼───┼───┼───┼───┤ ❖ ┃ ┃ ❖ ├───┼───┼───┼───┼───┼───┨
+┃ λ │ ' │ " │ , │ _ │ = │   ┃ ┃   │ k │ l │ p │ g │ b │ x ┃
+┠───┼───┼───┼───┼───╆━━━┷━━━┛ ┗━━━┷━━━╅───┼───┼───┼───┼───┨
+┃ ⎀ │ E │   │   │ ◆ ┃                 ┃ ◆ │   │   │ z │ ⎙ ┃
+┗━━━┷━━━┷━━━┷━━━┷━━━┛                 ┗━━━┷━━━┷━━━┷━━━┷━━━┛
+                    ┏━━━┯━━━┓ ┏━━━┯━━━┓
+                    ┃ ⌫ │ ⌥ ┃ ┃ ⎄ │ ↹ ┃
+                ┏━━━╃───┼───┨ ┠───┼───╄━━━┓
+                ┃   │   │   ┃ ┃   │   │   ┃
+                ┃ e │ ⇧ ├───┨ ┠───┤ ⏎ │ ␣ ┃
+                ┃   │   │   ┃ ┃   │   │   ┃
+                ┗━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┛
+SHIFTED
+┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
+┃ 9 │ 7 │ 5 │ 3 │ 1 │ [ │ { ┃ ┃ } │ ] │ 0 │ 2 │ 4 │ 6 │ 8 ┃
+┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨
+┃   │ * │ Y │ O │ R │ \ │   ┃ ┃   │ J │ V │ D │ F │ W │ Q ┃
+┠───┼───┼───┼───┼───┼───┤   ┃ ┃   ├───┼───┼───┼───┼───┼───┨
+┃   │ U │ I │ A │ N │ | ├───┨ ┠───┤ M │ H │ T │ S │ C │   ┃
+┠───┼───┼───┼───┼───┼───┤   ┃ ┃   ├───┼───┼───┼───┼───┼───┨
+┃   │ # │ $ │ @ │ & │ + │   ┃ ┃   │ K │ L │ P │ G │ B │ X ┃
+┠───┼───┼───┼───┼───╆━━━┷━━━┛ ┗━━━┷━━━╅───┼───┼───┼───┼───┨
+┃   │   │   │   │   ┃                 ┃   │   │   │ Z │   ┃
+┗━━━┷━━━┷━━━┷━━━┷━━━┛                 ┗━━━┷━━━┷━━━┷━━━┷━━━┛
+                    ┏━━━┯━━━┓ ┏━━━┯━━━┓
+                    ┃   │   ┃ ┃   │   ┃
+                ┏━━━╃───┼───┨ ┠───┼───╄━━━┓
+                ┃   │   │   ┃ ┃   │   │   ┃
+                ┃   │   ├───┨ ┠───┤   │   ┃
+                ┃   │   │   ┃ ┃   │   │   ┃
+                ┗━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┛
+λ LAYER
+┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
+┃   │   │   │   │   │   │   ┃ ┃   │   │ ⑤ │ ⑥ │ ⑦ │ ⑧ │ ⑨ ┃
+┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨
+┃   │   │   │   │   │   │   ┃ ┃   │   │ ① │ ② │ ③ │ ④ │ ⑩ ┃
+┠───┼───┼───┼───┼───┼───┤   ┃ ┃   ├───┼───┼───┼───┼───┼───┨
+┃   │   │   │   │   │   ├───┨ ┠───┤ ⎉ │ ← │ ↓ │ ↑ │ → │ ⑪ ┃
+┠───┼───┼───┼───┼───┼───┤   ┃ ┃   ├───┼───┼───┼───┼───┼───┨
+┃ λ │   │   │   │   │   │   ┃ ┃   │   │ ⇱ │ ⎘ │ ⎗ │ ⇲ │ ⑫ ┃
+┠───┼───┼───┼───┼───╆━━━┷━━━┛ ┗━━━┷━━━╅───┼───┼───┼───┼───┨
+┃   │   │   │   │   ┃                 ┃   │   │   │   │   ┃
+┗━━━┷━━━┷━━━┷━━━┷━━━┛                 ┗━━━┷━━━┷━━━┷━━━┷━━━┛
+                    ┏━━━┯━━━┓ ┏━━━┯━━━┓
+                    ┃   │   ┃ ┃   │   ┃
+                ┏━━━╃───┼───┨ ┠───┼───╄━━━┓
+                ┃   │   │   ┃ ┃   │   │   ┃
+                ┃   │   ├───┨ ┠───┤   │   ┃
+                ┃   │   │   ┃ ┃   │   │   ┃
+                ┗━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┛
+
+Installation (X only)
+‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+   1. Build and flash firmware as usual
+
+   2. sudo make install-xorg-configuration
+
+   3. Restart X
+
+Features
+‾‾‾‾‾‾‾‾
+   • E on the thumb
+
+   • Emacs-friendly
+
+   • Symmetric control keys for finger wear levelling
+
+   • Greek and subscript dead keys
+
+   • Compose key for arbitrary Unicode input via ~/.XCompose
+
+Don't Cares
+‾‾‾‾‾‾‾‾‾‾‾
+   • Easy migration from QWERTY
+
+   • Compatbility with non-XKB systems
+
+   • Mouse emulation
+
+   • Media keys
+
+Acknowledgements
+‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+Snarfangel, for designing the layout.
+
+The GNU FreeFont project and Steve White, for adding new keyboard
+symbols.
+
+Xah Lee, for http://xahlee.info/comp/unicode_computing_symbols.html
+
+Colophon
+‾‾‾‾‾‾‾‾
+This file is best-viewed with an SVN version of GNU FreeFont Mono.
diff --git a/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian b/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian
new file mode 100644 (file)
index 0000000..7343143
--- /dev/null
@@ -0,0 +1,34 @@
+partial alphanumeric_keys modifier_keys
+xkb_symbols "ergodox_ez_yoruian" {
+    include "us"
+    name[Group1]= "English (yoruian-1.0.0)";
+
+    replace key <KP2>  { [    Multi_key, Multi_key    ] };
+    replace key <KP3>  { [    Hyper_L,   Hyper_L      ] };
+    replace key <AE09> { [        grave, 9            ] };
+    replace key <AE07> { [    semicolon, 7            ] };
+    replace key <AE05> { [        colon, 5            ] };
+    replace key <AE03> { [        minus, 3            ] };
+    replace key <AE01> { [        slash, 1            ] };
+    replace key <AE10> { [  asciicircum, 0            ] };
+    replace key <AE02> { [      percent, 2            ] };
+    replace key <AE04> { [   asciitilde, 4            ] };
+    replace key <AE06> { [   dead_greek, 6            ] };
+    replace key <AE08> { [   dead_caron, 8            ] };
+    replace key <KP1>  { [            E, E            ] };
+    replace key <AD12> { [       period, asterisk     ] };
+    replace key <BKSL> { [     question, backslash    ] };
+    replace key <AC10> { [       exclam, bar          ] };
+    replace key <AC11> { [   apostrophe, numbersign   ] };
+    replace key <AB08> { [     quotedbl, dollar       ] };
+    replace key <AB09> { [        comma, at           ] };
+    replace key <AB10> { [   underscore, ampersand    ] };
+    replace key <KP0>  { [        equal, plus         ] };
+    replace key <TLDE> { [    parenleft, bracketleft  ] };
+    replace key <AE11> { [         less, braceleft    ] };
+    replace key <AE12> { [      greater, braceright   ] };
+    replace key <AD11> { [   parenright, bracketright ] };
+
+    modifier_map none { <HYPR> };
+    modifier_map Mod3 { <KP3>  };
+};
diff --git a/keyboards/ergodox/keymaps/yoruian/keymap.c b/keyboards/ergodox/keymaps/yoruian/keymap.c
new file mode 100644 (file)
index 0000000..d3635dd
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2016 Thomas Fitzsimmons <fitzsim@fitzsim.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 3 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 "yoruian.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = KEYMAP\
+(9,  7,    5,    3,    1,    GRV,  MINS, EQL,  LBRC, 0,    2,    4,    6,    8,
+ ES, RBRC, Y,    O,    R,    BSLS, P3,   P3,   J,    V,    D,    F,    W,    Q,
+ LC, U,    I,    A,    N,    SCLN,             M,    H,    T,    S,    C,    RC,
+ FF, QUOT, COMM, DOT,  SLSH, P0,   LGUI, LGUI, K,    L,    P,    G,    B,    X,
+ IN, P1,   NO,   NO,   LALT,                         LALT, NO,   NO,   Z,    PS,
+                             BSPC, RALT, P2,   TAB,
+                                   NO,   NO,
+                       E,    LSFT, NO,   NO,   ENT,  SPC),
+[1] = KEYMAP\
+(TR, TR,   TR,   TR,   TR,   TR,   TR,   TR,   TR,   F5,   F6,   F7,   F8,   F9,
+ TR, TR,   TR,   TR,   TR,   TR,   TR,   TR,   TR,   F1,   F2,   F3,   F4,   FT,
+ TR, TR,   TR,   TR,   TR,   TR,               PAUS, LEFT, DOWN, UP,   RGHT, FE,
+ TR, TR,   TR,   TR,   TR,   TR,   TR,   TR,   TR,   HOME, PGDN, PGUP, END,  FW,
+ TR, TR,   TR,   TR,   TR,                           TR,   TR,   TR,   TR,   TR,
+                             TR,   TR,   TR,   TR,
+                                   TR,   TR,
+                       TR,   TR,   TR,   TR,   TR,   TR),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+    return MACRO_NONE;
+};
+
+void matrix_init_user(void) {
+};
+
+void matrix_scan_user(void) {
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+};
+
+/*
+ * Local Variables:
+ * electric-indent-mode: nil
+ * End:
+ */
diff --git a/keyboards/ergodox/keymaps/yoruian/yoruian.h b/keyboards/ergodox/keymaps/yoruian/yoruian.h
new file mode 100644 (file)
index 0000000..1adcb7f
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2016 Thomas Fitzsimmons <fitzsim@fitzsim.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 3 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 "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#undef KEYMAP
+#define KEYMAP\
+(                                                                      \
+ /* Spacial positions. */                                              \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
+ k20, k21, k22, k23, k24, k25,           k28, k29, k2A, k2B, k2C, k2D, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \
+ k40, k41, k42, k43, k44,                     k49, k4A, k4B, k4C, k4D, \
+                          k55, k56, k57, k58,                           \
+                               k54, k59,                                \
+                     k53, k52, k51, k5C, k5B, k5A)                      \
+                                                                       \
+ /* Matrix positions. */                                               \
+ {                                                                     \
+   { KC_##k00, KC_##k10, KC_##k20, KC_##k30, KC_##k40, KC_NO    },     \
+   { KC_##k01, KC_##k11, KC_##k21, KC_##k31, KC_##k41, KC_##k51 },      \
+   { KC_##k02, KC_##k12, KC_##k22, KC_##k32, KC_##k42, KC_##k52 },      \
+   { KC_##k03, KC_##k13, KC_##k23, KC_##k33, KC_##k43, KC_##k53 },      \
+   { KC_##k04, KC_##k14, KC_##k24, KC_##k34, KC_##k44, KC_##k54 },      \
+   { KC_##k05, KC_##k15, KC_##k25, KC_##k35, KC_NO,    KC_##k55 },      \
+   { KC_##k06, KC_##k16, KC_NO,    KC_##k36, KC_NO,    KC_##k56 },      \
+   { KC_##k07, KC_##k17, KC_NO,    KC_##k37, KC_NO,    KC_##k57 },      \
+   { KC_##k08, KC_##k18, KC_##k28, KC_##k38, KC_NO,    KC_##k58 },      \
+   { KC_##k09, KC_##k19, KC_##k29, KC_##k39, KC_##k49, KC_##k59 },      \
+   { KC_##k0A, KC_##k1A, KC_##k2A, KC_##k3A, KC_##k4A, KC_##k5A },      \
+   { KC_##k0B, KC_##k1B, KC_##k2B, KC_##k3B, KC_##k4B, KC_##k5B },      \
+   { KC_##k0C, KC_##k1C, KC_##k2C, KC_##k3C, KC_##k4C, KC_##k5C },      \
+   { KC_##k0D, KC_##k1D, KC_##k2D, KC_##k3D, KC_##k4D, KC_NO    }       \
+ }
+
+#define KC_ES  KC_ESC
+#define KC_LC  KC_LCTL
+#define KC_RC  KC_RCTL
+#define KC_FF  MO(1)
+#define KC_IN  KC_INS
+#define KC_PS  KC_PSCR
+#define KC_TR  KC_TRNS
+#define KC_FT  KC_F10
+#define KC_FE  KC_F11
+#define KC_FW  KC_F12