Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add corne keyboard #1

Closed
wants to merge 11 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
Session.vim

.zmk/
13 changes: 9 additions & 4 deletions build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,12 @@ include:
shield: splitkb_aurora_sweep_left nice_view_adapter nice_view
- board: nice_nano_v2
shield: splitkb_aurora_sweep_right nice_view_adapter nice_view
# - board: nice_nano_v2
# shield: settings_reset nice_view_adapter nice_view
# - board: nice_nano_v2
# shield: settings_reset
- board: nice_nano_v2
shield: corne_left nice_view_adapter nice_view
snippet: studio-rpc-usb-uart
- board: nice_nano_v2
shield: corne_right nice_view_adapter nice_view
# # - board: nice_nano_v2
# # shield: settings_reset
# # - board: nice_nano_v2
# # shield: settings_reset nice_view_adapter nice_view
27 changes: 27 additions & 0 deletions config/corne.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Uncomment the following line to enable deep sleep
# CONFIG_ZMK_SLEEP=y

# Uncomment the following line to increase the keyboard's wireless range
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y

# Enable eager debouncing
CONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1
CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=10

# Enable ZMK Studio for Realtime Keymap Updates
CONFIG_ZMK_STUDIO=y
CONFIG_ZMK_STUDIO_LOCKING=n

# Uncomment the following line to enable USB Logging (this increases power usage by a significant amount, turn it off when not in use)
# CONFIG_ZMK_USB_LOGGING=y

# # Uncomment the following lines to enable the Corne RGB Underglow
# CONFIG_ZMK_RGB_UNDERGLOW=y
# CONFIG_WS2812_STRIP=y

# Uncomment the following line to enable the Corne OLED Display
# CONFIG_ZMK_DISPLAY=y

# Uncomment the following line to enable mouse features
CONFIG_ZMK_POINTING=y

152 changes: 152 additions & 0 deletions config/corne.keymap
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/

#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/pointing.h>
#include <dt-bindings/zmk/bt.h>

#include "custom_keys.h"

&caps_word {
continue-list = <DE_AE DE_OE DE_UE DE_SZ DE_MINUS DE_UNDER BACKSPACE DELETE>;
};

/ {
keymap {
compatible = "zmk,keymap";

base_layer_qwerty {
display-name = "QWERTY";
// -----------------------------------------------------------------------------------------
// | ALT/BSPC | Q | W | E | R | T | | Y | U | I | O | P | Ü /ALT |
// | CTL/ESC | A | S | D | F | G | | H | J | K | L | Ö | Ä /CTL |
// | GUI/MENU | Z | X | C | V | B | | N | M | , | . | ß | RET/GUI |
// | ESC | SFT/ENT | LWR/TAB | | RSE/BSP | SFT/SPC | DEL |
bindings = <
&mt LALT BSPC &kp DE_Q &kp DE_W &kp DE_E &kp DE_R &kp DE_T &kp DE_Z &kp DE_U &kp DE_I &kp DE_O &kp DE_P &mt LALT DE_UE
&mt LCTRL ESC SYM(DE_A) &kp DE_S &kp DE_D &kp DE_F &kp DE_G &kp DE_H &kp DE_J &kp DE_K &kp DE_L SYM(DE_OE) &mt RCTRL DE_AE
&mt LGUI K_APP MSE(DE_Y) &kp DE_X &kp DE_C &kp DE_V &kp DE_B &kp DE_N &kp DE_M &kp DE_COMMA &kp DE_DOT MSE(DE_SZ) &mt RGUI RET
&kp ESC SFT_RET LOW(TAB) RSE(BSPC) SFT_SPC &kp DEL
>;
};

symbol_layer {
display-name = "SYMBOL";
// -----------------------------------------------------------------------------------------
// | ALT | @ | _ | [ | ] | ^ | | ! | < | > | = | & | ALT |
// | CTL | \ | / | { | } | * | | ? | ( | ) | - | : | CTL |
// | GUI | # | $ | "|" | ~ | ´ | | + | % | " | ' | ; | GUI |
// | ° | § | ̣` | | AGR | SPC | CAP |
bindings = <
&kp LALT &kp DE_AT &kp DE_UNDER &kp DE_LBKT &kp DE_RBKT &kp DE_CARET &kp DE_EXCL &kp DE_LT &kp DE_GT &kp DE_EQUAL &kp DE_AMPS &kp LALT
&kp LCTRL &kp DE_BSLH &kp DE_FSLH &kp DE_LBRC &kp DE_RBRC &kp DE_STAR &kp DE_QMARK &kp DE_LPAR &kp DE_RPAR &kp DE_MINUS &kp DE_COLON &kp RCTRL
&kp LGUI &kp DE_HASH &kp DE_DLLR &kp DE_PIPE &kp DE_TILDE &kp DE_ACUTE &kp DE_PLUS &kp DE_PRCNT &kp DE_DQT &kp DE_SQT &kp DE_SEMI &kp RGUI
&kp DE_DEG &kp DE_SECT &kp DE_GRAVE &sk RALT SFT_SPC &caps_word
>;
};

lower_layer {
display-name = "LOWER";
// -----------------------------------------------------------------------------------------
// | ALT | F1 | F2 | F3 | F4 | £ | | / | 7 | 8 | 9 | - | ALT |
// | CTL | F5 | F6 | F7 | F8 | € | | + | 4 | 5 | 6 | . | CTL |
// | GUI | F9 | F10 | F11 | F12 | ¢ | | 0 | 1 | 2 | 3 | , | GUI |
// | ¥ | SFT | ̣(x) | | BSP | SPC | $ |
bindings = <
&kp LALT &kp F1 &kp F2 &kp F3 &kp F4 &kp DE_GBPND &kp DE_FSLH &kp N7 &kp N8 &kp N9 &kp DE_MINUS &kp LALT
&kp LCTRL &kp F5 &kp F6 &kp F7 &kp F8 &kp DE_EURO &kp DE_PLUS &kp N4 &kp N5 &kp N6 &kp DE_DOT &kp RCTRL
&kp LGUI &kp F9 &kp F10 &kp F11 &kp F12 &kp DE_CENT &kp N0 &kp N1 &kp N2 &kp N3 &kp DE_COMMA &kp RGUI
&kp DE_YEN &kp LSHFT &trans ATT(BSPC) SFT_SPC &kp DE_DLLR
>;
};

raise_layer {
display-name = "RAISE";
// -----------------------------------------------------------------------------------------
// | ALT | Esc | BSP | Up | Del | PUp | | Prv | Stp | Ply | AGr | Nxt | ALT |
// | CTL | Hme | Lft | Dwn | Rgt | End | | Meh | Sft | Ctl | Alt | GUI | CTL |
// | GUI | Ins | Cut | Cpy | Pst | PDn | | PSc | CWT | Pse | Ejt | SLk | GUI |
// | Prv | V - | Mte | | (x) | V + | Nxt |
bindings = <
&kp LALT &kp ESC &kp BSPC &kp UP &kp DEL &kp PG_UP &kp C_PREV &kp C_STOP &kp C_PP &sk RALT &kp C_NEXT &kp LALT
&kp LCTRL &kp HOME &kp LEFT &kp DOWN &kp RIGHT &kp END &sk MEH &sk LSHFT &sk LCTRL &sk LALT &sk LGUI &kp RCTRL
&kp LGUI &kp INS &kp CCP_CUT &kp CCP_CPY &kp CCP_PST &kp PG_DN &kp PSCRN &caps_word &kp PAUSE_BREAK &kp C_EJECT &kp PIPE &kp RGUI
&kp C_PREV &kp C_VOL_DN ATT(C_MUTE) &trans &kp C_VOL_UP &kp C_NEXT
>;
};

mouse_layer {
display-name = "MOUSE";
bindings = <
&kp LALT &msc SCRL_DOWN &msc SCRL_LEFT &mmv MOVE_UP &msc SCRL_RIGHT &none &none &none &none &sk RALT &none &kp LALT
&kp LCTRL &mkp MB4 &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_RIGHT &mkp MB5 &sk MEH &sk LSHFT &sk LCTRL &sk LALT &sk LGUI &kp RCTRL
&kp LGUI &kp TAB_PREV &kp CCP_CUT &kp CCP_CPY &kp CCP_PST &msc SCRL_UP &none &none &none &none &kp TAB_NEXT &kp RGUI
&none &mkp MB1 &mkp MB2 &mkp MB3 &kp LSHFT &none
>;
};

attic_layer {
display-name = "ATTIC";
bindings = <
&none &bt BT_CLR &bt BT_SEL 0 &bt BT_NXT &bt BT_PRV &kp K_APP &kp DE_IEXC &kp DE_FSQL &kp DE_FDQL &kp DE_FDQR &kp DE_FSQR &kp DE_SECT
&none &none &none &none &none &none &kp DE_IQUE &kp DE_CDOT &kp DE_SQUL &kp DE_SQUR &kp DE_SQUE &kp DE_HELL
&none &none &none &none &none &none &kp DE_EN &kp DE_EM &kp DE_DQUL &kp DE_DQUR &kp DE_DQUE &none
&none LSH(C_BRI_DN) &trans &trans RSH(C_BRI_UP) &none
>;
};

// // --(default config)------------------------------------------------------------------
// default_layer {
// // -----------------------------------------------------------------------------------------
// // | TAB | Q | W | E | R | T | | Y | U | I | O | P | BSPC |
// // | LCTL | A | S | D | F | G | | H | J | K | L | ; | ' |
// // | LSHFT | Z | X | C | V | B | | N | M | , | . | / | RSHFT |
// // | GUI | LWR | SPC | | ENT | RSE | ALT |
// bindings = <
// &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSPC
// &kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT
// &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLSH &kp RSHFT
// &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp RALT
// >;
// };
// lower_layer {
// // | TAB | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BSPC |
// // | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | | |
// // | SHFT | | | | | | | | | | | | |
// // | GUI | | SPC | | ENT | | ALT |
// bindings = <
// &kp TAB &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSPC
// &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans &trans
// &kp LSHFT &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
// &kp LGUI &trans &kp SPACE &kp RET &trans &kp RALT
// >;
// };
// raise_layer {
// // -----------------------------------------------------------------------------------------
// // | TAB | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BSPC |
// // | CTRL | | | | | | | - | = | [ | ] | \ | ` |
// // | SHFT | | | | | | | _ | + | { | } | "|" | ~ |
// // | GUI | | SPC | | ENT | | ALT |
// bindings = <
// &kp TAB &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp ASTRK &kp LPAR &kp RPAR &kp BSPC
// &kp LCTRL &trans &trans &trans &trans &trans &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH &kp GRAVE
// &kp LSHFT &trans &trans &trans &trans &trans &kp UNDER &kp PLUS &kp LBRC &kp RBRC &kp PIPE &kp TILDE
// &kp LGUI &trans &kp SPACE &kp RET &trans &kp RALT
// >;
// };
//
// some_layer {
// bindings = <
// &none &none &none &none &none &none &none &none &none &none &none &none
// &none &none &none &none &none &none &none &none &none &none &none &none
// &none &none &none &none &none &none &none &none &none &none &none &none
// &none &none &none &none &none &none
// >;
// };
};
};

115 changes: 70 additions & 45 deletions config/custom_keys.h
Original file line number Diff line number Diff line change
@@ -1,82 +1,107 @@
#pragma once

#include "keys_de.h"
#include <dt-bindings/zmk/keys.h>
/* #include "keys_de.h" */

// Layer definitions
// Layer definitions (corne)
// #define L_QWERTY 0
#define L_SYMBOL 1
#define L__LOWER 2
#define L__RAISE 3
#define L__MOUSE 4
#define L__ATTIC 5
// thumb and layer keys
#define LSH(kc) &mt LSHFT kc
#define RSH(kc) &mt RSHFT kc
#define SYM(kc) &lt L_SYMBOL kc
#define LOW(kc) &lt L__LOWER kc
#define RSE(kc) &lt L__RAISE kc
#define MSE(kc) &lt L__MOUSE kc
#define ATT(kc) &lt L__ATTIC kc

// Layer definitions (sweep)
#define QWERTZ 0
#define COLEMAK 1
#define NEOBONE 2
#define L_SYM_NR 3
#define L_NAV_FN 4
#define L_MS_MED 5
#define L_ADJUST 6

// Layer keys
#define L_SYM_NR 3
#define L_NAV_FN 4
#define L_MS_MED 5
#define L_ADJUST 6
// thumb and layer keys
#define MSMD(k1) &lt L_MS_MED k1
#define SYMNR_RET &lt L_SYM_NR RET
#define SYMNR_SPC &lt L_SYM_NR SPACE
#define NAVFN_ESC &lt L_NAV_FN ESC
#define NAVFN_TAB &lt L_NAV_FN TAB

// shorter umlauts
#define DE_AE (DE_A_UMLAUT)
#define DE_OE (DE_O_UMLAUT)
#define DE_UE (DE_U_UMLAUT)

// userful things
#define SFT_RET LSH(RET)
#define SFT_SPC RSH(SPACE)
#define TAB_NEXT LC(TAB)
#define TAB_PREV LS(TAB_NEXT)
#define LSG_MSB1 LG(LS(MSB1))

// hrm
#define HRML(k1,k2,k3) &mt LGUI k1 &mt LCTRL k2 &mt LALT k3
#define HRMR(k1,k2,k3) HRML(k3,k2,k1)
#define HRMS(k1) &mt LSHFT k1
#define MSMD(k1) &lt L_MS_MED k1
#define HRML(k1, k2, k3) &mt LGUI k1 &mt LALT k2 &mt LCTRL k3
#define HRMR(k1, k2, k3) &mt LCTRL k1 &mt LALT k2 &mt LGUI k3

// mod combo keys
#define MEH LS(LA(LCTRL))
#define MEH LS(LA(LCTRL))
#define HYPER LG(LS(LA(LCTRL)))

// cut copy paste
#define CCP_CUT LS(DEL)
#define CCP_CPY LC(INS)
#define CCP_PST LS(INS)

// shorter umlauts
#define DE_AE (DE_A_UMLAUT)
#define DE_OE (DE_O_UMLAUT)
#define DE_UE (DE_U_UMLAUT)

// Linux extended chars
#define DE_F1_2 RA(DE_N5) // ½
#define DE_F1_4 RA(DE_N4) // ¼
#define DE_NOT RA(DE_N5) // ¬
#define DE_CED RA(DE_ACUT) // ¸ cedilla (dead)
#define DE_ARRL RA(DE_Z) // ← left arrow
#define DE_ARRD RA(DE_U) // ↓ down arrow
#define DE_ARRR RA(DE_I) // → right arrow
#define DE_DIA RA(DE_UE) // ¨ diaresis (dead)
#define DE_LDOT RA(DE_J) // ̣ dot below (dead)
#define DE_HATS RA(DE_AE) // ˇ hatschek (dead)
#define DE_FDQL RA(DE_Y) // » double guillemets left
#define DE_FDQR RA(DE_X) // « double guillemets right
#define DE_CENT RA(DE_C) // ¢
#define DE_DQUL RA(DE_V) // „ double quote left
#define DE_DQUR RA(DE_B) // “ double quote right
#define DE_DQUE RA(DE_N) // “ double quote right (en)
#define DE_CDOT RA(DE_COMMA) // · center dot
#define DE_HELL RA(DE_DOT) // … horizontal ellipsis
#define DE_EN RA(DE_MINUS) // – en dash
// // Linux extended chars
#define DE_F1_2 RA(DE_N5) // ½
#define DE_F1_4 RA(DE_N4) // ¼
#define DE_NOT RA(DE_N5) // ¬
#define DE_CED RA(DE_ACUT) // ¸ cedilla (dead)
#define DE_ARRL RA(DE_Z) // ← left arrow
#define DE_ARRD RA(DE_U) // ↓ down arrow
#define DE_ARRR RA(DE_I) // → right arrow
#define DE_DIA RA(DE_UE) // ¨ diaresis (dead)
#define DE_LDOT RA(DE_J) // ̣ dot below (dead)
#define DE_HATS RA(DE_AE) // ˇ hatschek (dead)
#define DE_FDQL RA(DE_X) // « double guillemets left
#define DE_FDQR RA(DE_Y) // » double guillemets right
#define DE_CENT RA(DE_C) // ¢
#define DE_GBPND RA(LS(N3)) // £
#define DE_YEN RA(LS(DE_Z)) // ¥
#define DE_DQUL RA(DE_V) // „ double quote left
#define DE_DQUR RA(DE_B) // “ double quote right
#define DE_DQUE RA(DE_N) // “ double quote right (en)
#define DE_CDOT RA(DE_COMMA) // · center dot
#define DE_HELL RA(DE_DOT) // … horizontal ellipsis
#define DE_EN RA(DE_MINUS) // – en dash

#define DE_IEXC LS(RA(DE_N1)) // ̣¡ inverted question mark
#define DE_F1_8 LS(RA(DE_N2)) // ⅛
#define DE_F3_8 LS(RA(DE_N5)) // ⅜
#define DE_F5_8 LS(RA(DE_N6)) // ⅝
#define DE_F7_8 LS(RA(DE_N7)) // ⅞
#define DE_TM LS(RA(DE_N8)) // ™
#define DE_TM LS(RA(DE_N8)) // ™
#define DE_IQUE LS(RA(DE_SZ)) // ̣¿ inverted question mark
#define DE_OGNK LS(RA(DE_ACUT)) // ˛ ogonek (dead)
#define DE_REG LS(RA(DE_R)) // ®
#define DE_REG LS(RA(DE_R)) // ®
#define DE_ARRU LS(RA(DE_U)) // ↑ up arrow
#define DE_RING LS(RA(DE_UE)) // ° ring (dead)
#define DE_MCRN LS(RA(DE_PLUS)) // ¨ macron
#define DE_HDOT LS(RA(DE_J)) // ˙ dot above (dead)
#define DE_BRV LS(RA(DE_HASH)) // ˘ breve (dead)
#define DE_FSQL LS(RA(DE_Y)) // single guillemets left
#define DE_FSQR LS(RA(DE_X)) // single guillemets right
#define DE_BRV LS(RA(DE_HASH)) // ˘ breve (dead)
#define DE_FSQL LS(RA(DE_X)) // single guillemets left
#define DE_FSQR LS(RA(DE_Y)) // single guillemets right
#define DE_COPY LS(RA(DE_C)) // ©
#define DE_SQUL LS(RA(DE_V)) // ‚ single quote left
#define DE_SQUR LS(RA(DE_B)) // ‘ single quote right
#define DE_SQUE LS(RA(DE_N)) // ‘ single quote right (en)
#define DE_MULT LS(RA(DE_COMMA)) // × multiplication operator
#define DE_DIV LS(RA(DE_DOT)) // ÷ division operator
#define DE_EM LS(RA(DE_MINUS)) // — em dash
#define DE_DIV LS(RA(DE_DOT)) // ÷ division operator
#define DE_EM LS(RA(DE_MINUS)) // — em dash
Loading
Loading