Add new ErgoDox EZ keymap, YORUIAN
parent
0468093b12
commit
e9ce4960c1
|
@ -0,0 +1,6 @@
|
|||
Section "InputClass"
|
||||
Identifier "ErgoDox EZ"
|
||||
MatchIsKeyboard "on"
|
||||
MatchProduct "ErgoDox EZ ErgoDox EZ"
|
||||
Option "XkbLayout" "ergodox_ez_yoruian"
|
||||
EndSection
|
|
@ -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)
|
|
@ -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.
|
|
@ -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> };
|
||||
};
|
|
@ -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:
|
||||
*/
|
|
@ -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
|
Loading…
Reference in New Issue