diff --git a/README.org b/README.org index 39dacc0..20e75c3 100644 --- a/README.org +++ b/README.org @@ -5,7 +5,7 @@ [[https://shop.keyboard.io/collections/keyboardio-atreus/products/keyboardio-atreus][Keyboardio Atreus]] with Alpha Layer based on Colemak, more specifically the [[https://colemakmods.github.io/mod-dh/keyboards.html#matrix-keyboards][mod-DH for Matrix]] keyboard variant. -This is modified for my personal environment with i3wm + Spacemacs! +This is modified for my personal environment with i3wm + Spacemacs. ** The Layout @@ -13,13 +13,13 @@ This is modified for my personal environment with i3wm + Spacemacs! - alpha and shift layers work normally - SYMBOLS and numbers are activated with right thumb (blue) -- NAV layer (orange) activated by holding Backspace key +- NAV layer (orange) is activated by holding Backspace key - TAB and Enter keys work as extra Ctrl keys when hold for more than 250ms - mouse movement with WASD (QWERTY) keys when holding M - some additional utility keys are activated on hold (german umlaute, Ctrl+C,V,X,Z) - [[https://kaleidoscope.readthedocs.io/en/latest/quick_start.html][Kaleidoscope Quick Start]] -- blog article on customizing the Atreus for developers: https://www.gettommy.com/posts/my-ergonomic-40-percent-keyboard-layout-for-german-developers/#where-to-go-from-here +- blog article on customizing the Atreus for (german) developers: https://www.gettommy.com/posts/my-ergonomic-40-percent-keyboard-layout-for-german-developers/#where-to-go-from-here - typing practise: https://www.keybr.com/ - typing speedtest with layout emulator: https://monkeytype.com/ - [[http://www.keyboard-layout-editor.com/][Keyboard Layout Editor]] @@ -32,7 +32,7 @@ This is modified for my personal environment with i3wm + Spacemacs! ** TODO -- fully implement a sane extended layer like[[https://dreymar.colemak.org/layers-extend.html][ this]] +- fully implement a sane extended layer like [[https://dreymar.colemak.org/layers-extend.html][this]] - add mouse warping: https://kaleidoscope.readthedocs.io/en/latest/plugins/Kaleidoscope-MouseKeys.html#warping - maybe completely remove the NAV and TAB keys diff --git a/colemak-dhm.ino b/colemak-dhm.ino index c02fc60..dfc8c0a 100644 --- a/colemak-dhm.ino +++ b/colemak-dhm.ino @@ -64,24 +64,24 @@ enum { KEYMAPS( [BASE] = KEYMAP_STACKED ( - Key_de_Q ,Key_de_W ,Key_de_F ,Key_de_P ,Key_de_B - ,Key_de_A ,Key_de_R ,Key_de_S ,Key_de_T ,Key_de_G - ,Key_de_Y ,Key_de_X ,Key_de_C ,Key_de_D ,Key_de_V ,Key_de_Slash - ,Key_de_Tab ,Key_de_Tab ,Key_LeftGui ,MO(SHIFT) ,Key_de_Spacebar ,Key_de_Escape + Key_de_Q ,Key_de_W ,Key_de_F ,Key_de_P ,Key_de_B + ,Key_de_A ,Key_de_R ,Key_de_S ,Key_de_T ,Key_de_G + ,Key_de_Y ,Key_de_X ,Key_de_C ,Key_de_D ,Key_de_V ,Key_de_Hash + ,Key_de_Tab ,Key_de_Tab ,Key_LeftGui ,MO(SHIFT) ,Key_de_Spacebar ,Key_de_Escape ,Key_de_J ,Key_de_L ,Key_de_U ,Key_de_Z ,Key_de_Semicolon ,Key_de_M ,Key_de_N ,Key_de_E ,Key_de_I ,Key_de_O - ,Key_de_Backslash ,Key_de_K ,Key_de_H ,Key_de_Comma ,Key_de_Period ,Key_de_Slash + ,Key_de_LessThan ,Key_de_K ,Key_de_H ,Key_de_Comma ,Key_de_Period ,Key_de_Slash ,Key_de_LeftAlt ,MO(SYMBOLS) ,Key_de_Backspace ,MO(NAVI) ,MO(NAVI) ,Key_Enter ), [SHIFT] = KEYMAP_STACKED ( - LSHIFT(Key_de_Q) ,LSHIFT(Key_de_W) ,LSHIFT(Key_de_F) ,LSHIFT(Key_de_P) ,LSHIFT(Key_de_B) - ,LSHIFT(Key_de_A) ,LSHIFT(Key_de_R) ,LSHIFT(Key_de_S) ,LSHIFT(Key_de_T) ,LSHIFT(Key_de_G) - ,LSHIFT(Key_de_Y) ,LSHIFT(Key_de_X) ,LSHIFT(Key_de_C) ,LSHIFT(Key_de_D) ,LSHIFT(Key_de_V) ,Key_de_LessThan - ,LSHIFT(Key_de_Tab) ,LSHIFT(Key_de_Tab) ,___ ,___ ,___ ,___ + LSHIFT(Key_de_Q) ,LSHIFT(Key_de_W) ,LSHIFT(Key_de_F) ,LSHIFT(Key_de_P) ,LSHIFT(Key_de_B) + ,LSHIFT(Key_de_A) ,LSHIFT(Key_de_R) ,LSHIFT(Key_de_S) ,LSHIFT(Key_de_T) ,LSHIFT(Key_de_G) + ,LSHIFT(Key_de_Y) ,LSHIFT(Key_de_X) ,LSHIFT(Key_de_C) ,LSHIFT(Key_de_D) ,LSHIFT(Key_de_V) ,Key_de_LessThan + ,LSHIFT(Key_de_Tab) ,LSHIFT(Key_de_Tab) ,___ ,___ ,___ ,___ ,LSHIFT(Key_de_J) ,LSHIFT(Key_de_L) ,LSHIFT(Key_de_U) ,LSHIFT(Key_de_Z) ,LSHIFT(Key_de_W) @@ -92,16 +92,16 @@ KEYMAPS( [SYMBOLS] = KEYMAP_STACKED ( - Key_de_ExlamationMark ,Key_de_At ,Key_de_QuestionMark ,Key_de_Dollar ,Key_de_Percent - ,Key_de_Tilde ,Key_de_LeftCurly ,Key_de_LeftParen ,Key_de_LeftBracket ,Key_de_Quote - ,Key_de_Pipe ,Key_de_RightCurly ,Key_de_RightParen ,Key_de_RightBracket ,Key_de_DoubleQuote ,Key_de_LessThan - ,___ ,Key_de_Insert ,___ ,Key_de_LeftShift ,Key_de_Spacebar ,Key_de_GreaterThan + Key_de_ExlamationMark ,Key_de_DoubleQuote ,Key_de_QuestionMark ,Key_de_Dollar ,Key_de_Percent + ,Key_de_Tilde ,Key_de_LeftCurly ,Key_de_LeftParen ,Key_de_LeftBracket ,Key_de_Quote + ,Key_de_Pipe ,Key_de_RightCurly ,Key_de_RightParen ,Key_de_RightBracket ,Key_de_DoubleQuote ,Key_de_At + ,___ ,___ ,___ ,Key_de_LeftShift ,Key_de_Spacebar ,___ - ,Key_de_Slash ,Key_de_7 ,Key_de_8 ,Key_de_9 ,Key_de_Plus - ,Key_de_Asterisk ,Key_de_4 ,Key_de_5 ,Key_de_6 ,Key_de_Minus - ,Key_de_GreaterThan ,Key_de_0 ,Key_de_1 ,Key_de_2 ,Key_de_3 ,Key_de_Slash - ,Key_de_LeftAlt ,___ ,___ ,Key_de_Period ,Key_de_Comma ,Key_de_Equals + ,Key_de_Slash ,Key_de_7 ,Key_de_8 ,Key_de_9 ,Key_de_Plus + ,Key_de_Asterisk ,Key_de_4 ,Key_de_5 ,Key_de_6 ,Key_de_Minus + ,Key_de_GreaterThan ,Key_de_0 ,Key_de_1 ,Key_de_2 ,Key_de_3 ,Key_de_Equals + ,___ ,___ ,___ ,Key_de_Comma ,Key_de_Period ,Key_de_Equals ), [NAVI] = KEYMAP_STACKED @@ -187,10 +187,9 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) { void setup() { QUKEYS( //Qukey(layer, key_addr, alternate_key) - // //umlaute - kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 2), Key_de_SS), // s -> ß + // kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 2), Key_de_SS), // s -> ß kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 0), Key_de_AUml), // a -> ä kaleidoscope::plugin::Qukey(SHIFT, KeyAddr(1, 0), LSHIFT(Key_de_AUml)), // A -> Ä kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 11), Key_de_OUml), // o -> ö @@ -204,11 +203,11 @@ void setup() { kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 8), Key_de_Tilde), // n -> ~ //layer shifts/switches - kaleidoscope::plugin::Qukey(BASE, KeyAddr(3, 0), Key_de_LeftControl), // shift to mouse controls - kaleidoscope::plugin::Qukey(BASE, KeyAddr(3, 11), Key_de_LeftControl), // shift to mouse controls - kaleidoscope::plugin::Qukey(BASE, KeyAddr(3, 5), Key_LeftGui), // shift to mouse controls - kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 7), MO(MOUSE)), // shift to mouse controls - kaleidoscope::plugin::Qukey(BASE, KeyAddr(3, 8), MO(NAVI)), // shift to mouse controls + kaleidoscope::plugin::Qukey(BASE, KeyAddr(3, 0), Key_de_LeftControl), // bottom left TAB to LCtrl + kaleidoscope::plugin::Qukey(BASE, KeyAddr(3, 11), Key_de_LeftControl), // bottom right Enter to LCtrl + kaleidoscope::plugin::Qukey(BASE, KeyAddr(3, 5), Key_LeftGui), // Esc to SUPER + kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 7), MO(MOUSE)), // M key to mouse layer + kaleidoscope::plugin::Qukey(BASE, KeyAddr(3, 8), MO(NAVI)), // Backspace to NAVI layer //hold for "ctrl+" version of the key kaleidoscope::plugin::Qukey(BASE, KeyAddr(2, 2), LCTRL(Key_de_C)), // c copy @@ -216,9 +215,9 @@ void setup() { kaleidoscope::plugin::Qukey(BASE, KeyAddr(2, 1), LCTRL(Key_de_X)), // x cut kaleidoscope::plugin::Qukey(BASE, KeyAddr(2, 0), LCTRL(Key_de_Z)), // z undo kaleidoscope::plugin::Qukey(BASE, KeyAddr(0, 10), LCTRL(Key_de_Y)), // y redo - kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 3), LCTRL(Key_de_F)), // f find - kaleidoscope::plugin::Qukey(BASE, KeyAddr(0, 8), LCTRL(Key_de_L)), // l select address bar - kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 1), LCTRL(Key_de_R)), // r reload page + // kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 3), LCTRL(Key_de_F)), // f find + // kaleidoscope::plugin::Qukey(BASE, KeyAddr(0, 8), LCTRL(Key_de_L)), // l select address bar + // kaleidoscope::plugin::Qukey(BASE, KeyAddr(1, 1), LCTRL(Key_de_R)), // r reload page //ease of use // kaleidoscope::plugin::Qukey(BASE, KeyAddr(2, 9), Key_de_Semicolon), // semi-colon @@ -226,18 +225,12 @@ void setup() { //other // kaleidoscope::plugin::Qukey(BASE, KeyAddr(3, 11), Key_de_LeftAlt), // esc -> alt - - /* todo: - * p = print - * s = save or leave ß - * t = new tab - * n = new page/browser window/doc or leave ~ - */ ) //Qukey settings - Qukeys.setHoldTimeout(250); - Qukeys.setOverlapThreshold(80); + Qukeys.setHoldTimeout(490); + Qukeys.setMaxIntervalForTapRepeat(100); + Qukeys.setOverlapThreshold(50); Kaleidoscope.setup(); SpaceCadet.disable(); EEPROMKeymap.setup(10); diff --git a/keyboard-layout-colemak-DHm.json b/keyboard-layout-colemak-DHm.json index 3465135..b74eb61 100644 --- a/keyboard-layout-colemak-DHm.json +++ b/keyboard-layout-colemak-DHm.json @@ -31,7 +31,18 @@ "y": -0.09999999999999998, "x": 2, "t": "#267dff\n#1fa12e\n\n\n\n\n\n\n\n000000", - "f2": 5 + "fa": [ + 1, + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 5 + ] }, "?\n\n\n\n\n\n\n\n\nF" ], @@ -42,7 +53,7 @@ "t": "#267dff\n\n\n\n\n\n\n\n\n000000", "f": 3 }, - "@\n\n\n\n\n\n\n\n\nW", + "\"\n\n\n\n\n\n\n\n\nW", { "x": 1, "f": 3 @@ -56,7 +67,7 @@ "fa": [ 0, 5, - 5, + 0, 1 ] }, @@ -78,7 +89,7 @@ "fa": [ 0, 5, - 5, + 0, 1, 0, 0, @@ -149,21 +160,19 @@ "|\n\n\n\n\n\n\n\n\nY", { "x": 4, - "t": "#000000", - "a": 5 + "t": "#267dff" }, - "<\n\n\n\n\n\n/" + "@\n\n\n\n\n\n\n\n\n#" ], [ { "y": -0.8999999999999999, "x": 4, "t": "#267dff\n\n\n#c76c00\n#b906d6", - "a": 4, "fa": [ 0, 5, - 5, + 0, 2 ] }, @@ -231,7 +240,7 @@ "a": 5, "f": 3 }, - ">\n\n\n\n\n\n\\" + ">\n\n\n\n\n\n<" ], [ { @@ -319,7 +328,7 @@ { "y": -0.75, "x": 4, - "t": "#267dff\n\n\n#c76c00\n#b906d6\n\n\n\n\n000000\n#b906d6", + "t": "#267dff\n\n\n#c76c00\n\n\n\n\n\n000000\n#b906d6", "fa": [ 0, 0, @@ -368,11 +377,11 @@ { "y": -0.7500000000000004, "x": 4, - "t": "#000000", + "t": "#267dff", "sm": "alps", "sb": "matias" }, - "\n\n\n\n\n\n\n\n\n/" + "=\n\n\n\n\n\n\n\n\n/" ], [ { @@ -386,9 +395,14 @@ "y": -0.6999999999999997, "x": 2, "c": "#c76c00", - "t": "#000000" + "t": "#267dff", + "sm": "cherry", + "sb": "nimxo", + "fa": [ + 4 + ] }, - "\n\n\n\n\n\n\n\n\nNAV" + ",\n\n\n\n\n\n\n\n\nNAV" ], [ { @@ -396,6 +410,8 @@ "x": 1, "c": "#cccccc", "t": "#000000\n\n\n\n#b906d6", + "sm": "alps", + "sb": "matias", "a": 5, "fa": [ 0, @@ -411,17 +427,22 @@ { "x": 1, "c": "#c76c00", - "t": "#000000", - "a": 4 + "t": "#267dff", + "a": 4, + "fa": [ + 4 + ] }, - "\n\n\n\n\n\n\n\n\nNAV" + ".\n\n\n\n\n\n\n\n\nNAV" ], [ { "y": -0.8650000000000002, "x": -1, "c": "#cccccc", - "a": 7 + "t": "#000000", + "a": 7, + "f": 3 }, "Alt" ], @@ -429,17 +450,20 @@ { "y": -0.8849999999999998, "x": 4, - "t": "#000000\n\n\n\n#b906d6", - "f": 8 + "t": "#267dff\n\n\n\n#b906d6", + "a": 4, + "f": 8, + "fa": [ + 4 + ] }, - "\n\n\n\nCtrl" + "=\n\n\n\nCtrl\n\n\n\n\n" ], [ { "y": -0.9000000000000004, "c": "#267dff", "t": "#000000\n#00ff19", - "a": 4, "f": 3, "fa": [ 0, diff --git a/keyboard-layout-colemak-DHm.png b/keyboard-layout-colemak-DHm.png index 6cfcb96..f17f1be 100644 Binary files a/keyboard-layout-colemak-DHm.png and b/keyboard-layout-colemak-DHm.png differ