Compare commits

...

10 commits

Author SHA1 Message Date
Anish Lakhwara 6953d1bc74 idk some updates
Some checks failed
/ build (push) Has been cancelled
CI / Build (push) Has been cancelled
2024-10-05 01:02:16 -07:00
Anish Lakhwara 73fd1ab8eb added fun from atreus
implemented symbol layer
still need:
- caps word
- combos
- nav layer
- pipe chara
2024-09-29 02:21:25 -07:00
Anish Lakhwara e3015ce454 home row mods!! 2024-09-29 00:50:01 -07:00
Anish Lakhwara 76f6fa04f0 idk some shit 2024-09-27 17:35:50 -07:00
Anish Lakhwara b28a3a9381 it's finally working 2024-09-22 23:25:23 -07:00
Anish Lakhwara 36f4338a3b add italian_keymap 2024-09-22 22:21:21 -07:00
Anish Lakhwara 6ecdd43297 update combos? 2024-09-22 21:21:15 -07:00
Anish Lakhwara d80b12e3af try again?? 2024-09-22 21:17:01 -07:00
Anish Lakhwara 33525bef5b rename output 2024-09-22 21:01:50 -07:00
Anish Lakhwara 99096626b6 add sha 2024-09-22 20:52:28 -07:00
6 changed files with 261 additions and 89 deletions

View file

@ -14,8 +14,8 @@
---
include:
- board: nice_nano_v2
shield: cradio_left
shield: urchin_left nice_view_adapter nice_view
- board: nice_nano_v2
shield: cradio_right
shield: urchin_right nice_view_adapter nice_view
- board: nice_nano_v2
shield: settings_reset

123
config/keymap_italian.h Normal file
View file

@ -0,0 +1,123 @@
/**
* This file includes custom keycodes for the italian input language setting.
* If you only type in english, you can delete this file and it's import.
* If you wish to replace this file with your preferred language, use
* the qmk version as reference:
* https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras
*/
/*
*
* \ ' ì
*
* è +
*
* ò à ù
*
* < , . -
*
*
*
*/
// Row 1
#define IT_BSLH GRAVE // backslash
#define IT_SQUOT MINUS // '
#define IT_IGRV EQUAL // ì
// Row 2
#define IT_EGRV LBKT // è
#define IT_PLUS SLASH // +
// Row 3
#define IT_OGRV SEMI // ò
#define IT_AGRV APOS // à
#define IT_UGRV NON_US_HASH // ù
// Row 4
#define IT_LESS NON_US_BSLH // <
#define IT_MINUS RBKT // -
/* Shifted symbols
*
* | ! " │ £ │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ^ │ │
*
* é *
*
* ç ° §
*
* > ; : _
*
*
*
*/
// Row 1
#define IT_PIPE LS(GRAVE) // |
#define IT_EXCL LS(N1) // !
#define IT_DQUOT LS(N2) // "
#define IT_PND LS(N3) // £
#define IT_USD LS(N4) // $
#define IT_PERC LS(N5) // %
#define IT_AND LS(N6) // &
#define IT_FSLH LS(N7) // /
#define IT_LPAR LS(N8) // (
#define IT_RPAR LS(N9) // )
#define IT_EQL LS(N0) // =
#define IT_QUES LS(MINUS) // ?
#define IT_CARET LS(EQUAL) // ^
// Row 2
#define IT_EACU LS(LBKT) // é
#define IT_AST LS(RBKT) // *
// Row 3
#define IT_CCED LS(SEMI) // ç
#define IT_DEG LS(APOS) // °
#define IT_SECT LS(NON_US_HASH) // §
// Row 4
#define IT_GREAT LS(NON_US_BSLH) // >
#define IT_UNDER LS(SLASH) // _
/* AltGr symbols
*
*
*
* [ ]
*
* @ #
*
*
*
*
*
*/
// Row 2
#define IT_EUR RA(E) // €
#define IT_LBKT RA(LBKT) // [
#define IT_RBKT RA(RBKT) // ]
// Row 3
#define IT_AT RA(SEMI) // @
#define IT_HASH RA(APOS) // #
/* Shift+AltGr symbols
*
*
*
* { }
*
*
*
*
*
*
*
*/
// Row 2
#define IT_LBRC LS(RA(LBKT)) // {
#define IT_RBRC LS(RA(RBKT)) // }
/**
* Personalized symbols.
*
* These symbols are not part of the default italian input.
* I use a custom windows keymap to input them.
*/
#define IT_BKTK RA(MINUS) // `
#define IT_TILDE RA(EQUAL) // ~
#define IT_CEGR RA(LS(E)) // È

View file

@ -16,8 +16,3 @@ CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000
# CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5
# --- DISPLAY SETTINGS ---
# disable the WPM widget
CONFIG_ZMK_WIDGET_WPM_STATUS=n
# display battery as n%
CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y

View file

@ -9,14 +9,30 @@
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/outputs.h>
#include "zmk-helpers/helper.h"
#include "zmk-helpers/key-labels/42.h"
#include <dt-bindings/zmk/keys.h>
#define QUICK_TAP_MS 175
// Layer definitions
#define BASE 0
#define SYM 1
#define EXT 2
#define FNC 3
#define SYM2 4
#define ACCENT 5
#define SETTINGS 6
#define NUM 1
#define SYM 2
#define NAV 3
#define FNC 4
#define SETTINGS 5
/* Homerow mods */
#define HM_TAPPING_TERM 300
#define HM_TAPPING_TERM_FAST 200
#define HM_PRIOR_IDLE 150
#define KEYS_L LT0 LT1 LT2 LT3 LT4 LM0 LM1 LM2 LM3 LM4 LB0 LB1 LB2 LB3 LB4 // left hand
#define KEYS_R RT0 RT1 RT2 RT3 RT4 RM0 RM1 RM2 RM3 RM4 RB0 RB1 RB2 RB3 RB4 // right hand
#define KEYS_T LH1 LH0 RH0 RH1 // thumbs on 34 keys
// -----------------
&sk {
@ -25,8 +41,59 @@
};
&mt { // mode-tap config
flavor = "tap-preferred";
tapping_term_ms = <200>;
quick_tap_ms = <75>;
};
&lt { // layer-tap config
flavor = "balanced";
tapping-term-ms = <200>;
quick-tap-ms = <QUICK_TAP_MS>;
};
/ {
behaviors {
// Positional Homerow mods
// Homerow mods that prevent accidental activations when rolling keys,
// such as when typing `st` or `ne` on colemak-dh layouts or `as` on
// qwerty.
//
// Works by only allowing a mod to activate within tapping-term if
// it's on the opposite side of the keyboard or on the same side thumb
// keys.
// Further optimization using urob's timerless homerow mods method:
// https://github.com/urob/zmk-config#timeless-homerow-mods
hml: homerow_mods_left {
compatible = "zmk,behavior-hold-tap";
#binding-cells = <2>;
bindings = <&kp>, <&kp>;
flavor = "balanced";
tapping-term-ms = <HM_TAPPING_TERM>;
quick-tap-ms = <175>; // repeat on tap-into-hold
require-prior-idle-ms = <HM_PRIOR_IDLE>;
hold-trigger-key-positions = <KEYS_R KEYS_T>;
hold-trigger-on-release;
};
hmr: homerow_mods_right {
compatible = "zmk,behavior-hold-tap";
#binding-cells = <2>;
bindings = <&kp>, <&kp>;
flavor = "balanced";
tapping-term-ms = <HM_TAPPING_TERM>;
quick-tap-ms = <175>;
require-prior-idle-ms = <HM_PRIOR_IDLE>;
hold-trigger-key-positions = <KEYS_L KEYS_T>;
hold-trigger-on-release;
};
// Enables holding the first mod-tap key
// by performing a tap-release-hold sequence.
// To use it: "&qt KEYCODE1 KEYCODE2"
@ -54,111 +121,89 @@
combos {
compatible = "zmk,combos";
// Escape key
combo_esc {
timeout-ms = <150>;
key-positions = <12 13 16 17>;
bindings = <&kp ESC>;
};
// IMPORTED FROM ZMK //
// both right thumb keys
combo_accent {
combo_esc {
timeout-ms = <200>;
key-positions = <32 33>;
bindings = <&mo ACCENT>;
bindings = <&kp ESC>;
};
// internal-left & external-right thumb keys
combo_sym2 {
timeout-ms = <200>;
key-positions = <31 33>;
bindings = <&mo SYM2>;
};
// both left thumb keys
combo_settings {
timeout-ms = <200>;
key-positions = <30 31>;
bindings = <&mo SETTINGS>;
};
// left index & middle fingers (home-row)
// hold control & space for Adobe workflow
combo_ctrl_space {
timeout-ms = <200>;
key-positions = <12 13>;
bindings = <&kp LC(SPACE)>;
layers = <BASE>;
};
};
keymap {
compatible = "zmk,keymap";
default_layer {
bindings = <
&kp SQT &kp CMMA &kp DOT &kp P &kp Y &kp F &kp G &kp C &kp R &kp L &kp A &kp O &lt FUN E &lt NAV U &kp I &kp D &lt SYM H &lt NUM T &kp N &kp S
&kp SCLN &kp Q &kp J &kp K &kp X &kp B &kp M &kp W &kp V &kp Z &mt LALT TAB &mt LGUI SPC &mt LSHIFT RET &mt LCTRL BSPC
>;
};
nav_layer {
bindings = <
&bt BT_CLR &trans &trans &bootloader &sys_reset &trans &kp LBRC &kp RBRC &kp LPAR &kp RPAR
&bt BT_SEL 0 &trans &trans &trans &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans
&bt BT_SEL 1 &trans &trans &trans &trans &trans &kp LBKT &kp RBKT &IT_LESS &IT_GREAT
&trans &trans &trans &kp BSPC
>;
};
num_layer {
bindings = <
&trans &kp F7 &kp F8 &kp F9 &trans &trans &trans &trans &trans &trans
&kp DQT &kp F4 &kp F5 &kp F6 &kp EQUAL &trans &trans &trans &trans &trans
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp BSLH &trans &trans &trans &trans &trans
&trans &trans &trans &trans
>;
};
sym_layer {
label = "Sym.";
bindings = <
&kp LS(Q) &kp LS(Z) &kp STAR &kp AMPS &trans &sys_reset &bootloader &trans &trans &trans
&kp DQT &kp CARET &kp PRCNT &kp DLLR &kp KP_PLUS &trans &trans &trans &trans &trans
&kp TILDE &kp HASH &kp AT &kp EXCL &kp PIPE &trans &trans &trans &trans &trans
&kp LPAR &kp RPAR &trans &trans
>;
};
// Base alpha layer
default_layer {
label = "Base";
bindings = <
&kp SQT &kp COMMA &kp DOT &kp P &kp Y &kp F &kp G &kp C &kp R &kp L
&hml LCTRL A &hml LALT O &hml LSHIFT E &hml LGUI U &kp I &kp D &hmr RGUI H &hmr RSHIFT T &hmr RALT N &hmr RCTRL S
&hml LCTRL SCLN &kp Q &kp J &kp K &kp X &kp B &kp M &kp W &kp V &kp Z
&lt NUM SPC &lt SYM BSPC &lt NAV TAB &lt FNC RET
>;
};
// Numbers and high frequency symbols
num_layer {
label = "Num.";
bindings = <
&none &none &none &none &none &kp MINUS &kp N7 &kp N8 &kp N9 &none
&trans &trans &trans &trans &none &kp KP_PLUS &kp N4 &kp N5 &kp N6 &kp EQUAL
&none &none &none &none &none &kp N0 &kp N1 &kp N2 &kp N3 &none
&mo FNC &none &trans &trans
>;
};
// Symbols
sym_layer {
label = "Sym.";
bindings = <
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
&kp IT_LESS &kp IT_USD &kp IT_LPAR &kp IT_LBRC &kp IT_LBKT &kp IT_EQL &kp IT_QUES &kp IT_SQUOT &kp IT_MINUS &kp IT_AST
&kp IT_GREAT &kp IT_PERC &kp IT_RPAR &kp IT_RBRC &kp IT_RBKT &kp IT_AT &kp IT_EXCL &kp IT_DQUOT &kp IT_PLUS &kp IT_FSLH
&mo FNC &mo SYM2 &trans &trans
&none &none &none &none &none &kp MINUS &kp AMPS &kp STAR &kp N9 &kp FSLH
&trans &trans &trans &trans &none &kp GRAVE &kp DLLR &kp PRCNT &kp CARET &kp QUESTION
&none &none &none &none &none &kp TILDE &kp EXCL &kp AT &kp HASH &kp BSLH
&trans &trans &trans &trans
>;
};
// Main modifiers and arrow keys
ext_layer {
label = "Mods";
nav_layer {
label = "Nav.";
bindings = <
&kp ESC &kp C_PREV &kp C_PP &kp C_NEXT &kp C_PAUSE &kp PG_UP &kp HOME &kp UP &kp END &kp CAPS
&sk LALT &sk LGUI &sk LSHIFT &sk LCTRL &kp RALT &kp PG_DN &kp LEFT &kp DOWN &kp RIGHT &kp DEL
&kp LC(Z) &kp LC(X) &kp LC(C) &kp TAB &kp LC(V) &kp LC(BSPC) &kp BSPC &trans &trans &trans
&trans &kp LCTRL &kp ENTER &mo FNC
&none &none &none &none &none &none &none &none &none &none
&trans &trans &trans &trans &none &none &none &none &none &none
&none &none &none &none &none &none &none &none &none &none
&trans &trans &trans &trans
>;
};
// Low frequency symbols.
symbols_2_layer {
label = "Sym.2";
// Function keys with modifiers
fnc_layer {
label = "FRow";
bindings = <
&kp IT_CARET &kp IT_UNDER &kp IT_PND &kp IT_EUR &kp IT_HASH &none &none &none &none &none
&kp IT_BKTK &kp IT_TILDE &kp IT_BSLH &kp IT_PIPE &kp IT_AND &none &none &none &none &none
&none &none &kp IT_SECT &kp IT_CCED &kp IT_DEG &none &none &none &none &none
&none &none &none &none
&kp EXCL &kp AT &kp UP &kp DLLR &kp PRCNT &none &none &none &none &none
&kp LPAR &kp LEFT &kp DOWN &kp RIGHT &kp RPAR &none &none &none &none &none
&kp LBKT &kp RBKT &kp HASH &kp LBRC &kp RBRC &none &none &none &none &none
&none &none &trans &trans
>;
};
// Used to change the keyboard's settings.
settings_layer {
label = "Sett.";
bindings = <
&bootloader &none &none &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 3 &none &unstick &none &bootloader
&none &none &none &none &bt BT_SEL 1 &bt BT_SEL 4 &none &none &none &none
&none &none &none &none &bt BT_SEL 2 &bt BT_SEL 5 &none &none &none &none
&none &none &none &none
>;
};
};
};

View file

@ -6,6 +6,8 @@ manifest:
# kyek / duckyb
- name: duckyb
url-base: https://github.com/duckyb
- name: urob
url-base: https://github.com/urob
projects:
- name: zmk
remote: zmkfirmware
@ -14,5 +16,11 @@ manifest:
- name: urchin-zmk-module
remote: duckyb
revision: main
- name: zmk-helpers
remote: urob
revision: main
- name: zmk-auto-layer
remote: urob
revision: main
self:
path: config

View file

@ -32,7 +32,8 @@
board = "nice_nano_v2";
shield = "urchin_%PART%";
zephyrDepsHash = "";
zephyrDepsHash =
"sha256-DXOQ+Hu8p1qeLiB1loRmKG9YOVbkJWMOrDI/aVA472M=";
meta = {
description = "ZMK firmware";