diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..397b4a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.log diff --git a/zofle/build.bash b/zofle/build.bash index db889ba..807c113 100755 --- a/zofle/build.bash +++ b/zofle/build.bash @@ -1,15 +1,22 @@ #!/usr/bin/env bash -ZMK_DOCKER_IMAGE="${ZMK_DOCKER_IMAGE:-zmkfirmware/zmk-build-arm:stable}" +ZMK_DOCKER_IMAGE="${ZMK_DOCKER_IMAGE:-docker.io/zmkfirmware/zmk-build-arm:stable}" -docker run -it --rm \ - -v ${PWD}/.cache:/zofle \ - -v ${PWD}/config:/zofle/config:ro \ - -v ${PWD}/build:/build \ +if [[ -n $ZMK_PULL_DOCKER_IMAGE ]]; then + docker pull "$ZMK_DOCKER_IMAGE" +fi + +mkdir -p "${PWD}/build" +mkdir -p "${PWD}/.cache" +podman run -it --rm \ + -v "${PWD}/.cache:/zofle" \ + -v "${PWD}/config:/zofle/config:ro" \ + -v "${PWD}/build:/build" \ "$ZMK_DOCKER_IMAGE" sh -c ' set -x set -e cd /zofle + git config --global --add safe.directory /zofle/zmk west init -l config || true # allowed to fail since it will fail if already initialized west update west zephyr-export @@ -19,4 +26,4 @@ docker run -it --rm \ echo "Building right" west build --pristine -s zmk/app -b nice_nano_v2 -- -DSHIELD=sofle_right -DZMK_CONFIG="/zofle/config" cp /zofle/build/zephyr/zmk.uf2 /build/sofle_right_nice_nano.uf2 - ' \ No newline at end of file + ' diff --git a/zofle/config/sofle.keymap b/zofle/config/sofle.keymap index 973e7d5..3e0d05b 100644 --- a/zofle/config/sofle.keymap +++ b/zofle/config/sofle.keymap @@ -19,7 +19,7 @@ #define L_C COMBO_LAYER_ID &mt { - retro-tap; + #retro-tap; label = "Mod Tap"; #binding-cells = <2>; tapping-term-ms = <200>; @@ -46,8 +46,8 @@ bindings = < &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSPC &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSPC - &mt LCTRL ESC &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &ht LCTRL SQT - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp C_MUTE &kp K_PP &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RET + &mt LCTRL ESC &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &ht RCTRL SQT + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp C_MUTE &kp K_PP &kp N &kp M &kp COMMA &kp DOT &kp FSLH &ht RSHFT RET &kp LALT &kp LGUI &kp SPACE &mo L_L &kp LSHFT &kp RET &mo L_R &kp SPACE &kp RALT &kp RSHFT >; @@ -63,7 +63,7 @@ &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans >; - sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_DN PG_UP >; + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp RIGHT LEFT >; }; lower_layer { @@ -75,7 +75,7 @@ &trans &mo L_C &trans &trans &trans &trans &mo L_C &kp RET &trans &trans >; - sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp LEFT RIGHT>; + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp RIGHT LEFT>; }; raise_layer { @@ -93,7 +93,7 @@ combo_layer { bindings = < &bootloader &tog 1 &trans &ext_power EP_OFF &bt BT_CLR &out OUT_TOG &trans &trans &ext_power EP_OFF &trans &trans &bootloader -&reset &trans &trans &trans &trans &out OUT_BLE &kp C_PREV &kp C_VOL_DN &kp K_PP &kp C_VOL_UP &kp C_NEXT &reset +&sys_reset &trans &trans &trans &trans &out OUT_BLE &kp C_PREV &kp C_VOL_DN &kp K_PP &kp C_VOL_UP &kp C_NEXT &sys_reset &ext_power EP_ON &ext_power EP_ON &trans &trans &trans &out OUT_USB &kp LEFT &kp DOWN &kp UP &kp RIGHT &ext_power EP_ON &ext_power EP_ON &trans &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &kp HOME &kp PGDN &kp PGUP &kp END &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans @@ -102,4 +102,4 @@ sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; }; }; -}; \ No newline at end of file +}; diff --git a/zofle/flash.fish b/zofle/flash.fish index 1567ebb..aebbe93 100755 --- a/zofle/flash.fish +++ b/zofle/flash.fish @@ -11,7 +11,9 @@ set firmware_file $argv[1] mkdir -p /tmp/flashmnt while not test -L $flash_target echo Waiting for mountable device $flash_target to become available to flash $firmware_file... - echo " This usually means you need to plugin the board and reset it." + echo ' This usually means you need to plugin the board and reset it.' + echo ' This is done by plugging in the board and double-tapping the' + echo ' reset button with the nice!nano controllers this build uses.' sleep 1 end diff --git a/zofle/makefile b/zofle/makefile index 45ee4b4..5ad0334 100644 --- a/zofle/makefile +++ b/zofle/makefile @@ -1,3 +1,4 @@ +# TODO: targets and dependencies? .PHONY: build sleep build: @bash build.bash @@ -12,7 +13,10 @@ sleep: echo "Sleeping for 2 seconds for disks to fully sync and unmount..." @sleep 2 -clean: +clean: pull @sudo rm -r .cache build -everything: build flash-left sleep flash-right +pull: + @docker pull docker.io/zmkfirmware/zmk-build-arm:stable + +everything: pull build flash-left sleep flash-right diff --git a/zofle/readme.md b/zofle/readme.md index cb1dc6a..b44fe2c 100644 --- a/zofle/readme.md +++ b/zofle/readme.md @@ -6,7 +6,7 @@ My Sofle+nice!nano_v2 keyboard. ## Setup -You will need `fish` and `docker`. +You will need `fish` and `podman`. ## Build Firmware @@ -17,12 +17,10 @@ You will need `fish` and `docker`. You can flash your left-half: make flash-left - # double-tap the reset button on the left half while plugged in And your right-half: make flash-right - # double-tap the reset button on the right half while plugged in ### Other Flash Methods