MrMarble / zmk-viewer

cli tool to generate preview images from a zmk .keymap file
MIT License
139 stars 7 forks source link

feat: add ability use local info.json file #9

Closed PikaThonk closed 1 year ago

PikaThonk commented 1 year ago

I have a Kinesis360, which uses zmk. I think that's probably why there's no info.json on the qmk website. However, Kinesis does include an info.json: https://github.com/KinesisCorporation/Adv360-Pro-ZMK/blob/V2.0/config/info.json in their firmware repo.

I added a new parameter -l which lets you specify a local info.json file. Without the parameter, the program functions normally.

It seems to work properly. Although you do need to edit the adv360.keymap file by deleting this part near the top:

behaviors {
      #include "macros.dtsi"

      hm: homerow_mods {
          compatible = "zmk,behavior-hold-tap";
          label = "HOMEROW_MODS";
          #binding-cells = <2>;
          tapping-term-ms = <200>;
          quick_tap_ms = <175>;
          flavor = "tap-preferred";
          bindings = <&kp>, <&kp>;
      };
    };

Anyway, not sure this is useful at all to anyone else or not. And also, I don't really kno how to write anything in Go and I'm not at all tuned into the zmk/qmk/custom keyboard community so this is probably very far from perfect. But I figured I'd open up a PR just in case anyone else finds this useful!

adv360_default_layer adv360_keypad adv360_mod

MrMarble commented 1 year ago

Thanks for your contribution! Great Idea!

Reading through that Kinesis360 info file I see only some keys have the w property, I assume every other has a width of 1.

Could you try and edit this conditional where the image is generated to add a default width (like is done with the H property) and see if the image is fixed? https://github.com/MrMarble/zmk-viewer/blob/master/internal/lib/generate.go#L68-L72

PikaThonk commented 1 year ago

ooo good call—looks like that fixes it adv360_default_layer