Did my very first custom keyboard. Thank you @Tompi@discuss.tchncs.de for the amazing project. Question for folks familiar with QMK, when I used encoder (rotate it) it switches to the default(0) layer even if I keep holding the layer switch key. Any way around it? Here is the code if anyone is curious.

  • pixelprimer@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    Great job. I’m so happy the Cheapino is getting popular, amazing to have such a low cost to try out and get access to ergonomic keyboards. Now that I’ve got used to mine I can justify upgrading to a Charybdis nano knowing I’ll use it and 34-35 keys is usable.

    • nebula@lemmy.caOP
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      We were talking about it for a bit but didn’t want to spend all the time figuring out things. So when we came across Cheapino, my friend was like fuck it let’s do this and it happened.

  • Tompi
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    Looking good!

    The function of the encoder is custom code, you need to Edit the encoder.c file to tweak it.

    P.s. You know you can tweak the led? Turn it off/change color and brightness, all using the qmk rgb keys. (Just wondered if the thing on top is to dim the light:)

    • nebula@lemmy.caOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      The function of the encoder is custom code, you need to Edit the encoder.c file to tweak it.

      yeap, found it but the issue is that when encoder is rotated, it switches back to default layer. So, the code to use different things in different layers doesnt work. This is the code I have:

      void turned(bool clockwise) {
          if (IS_LAYER_ON(0)) {
              tap_code16(clockwise ? LCTL(KC_PGDN) : LCTL(KC_PGUP));
          } 
          else if (IS_LAYER_ON(1)) {
              tap_code(clockwise ? KC_VOLU : KC_VOLD);
          } 
          else if (IS_LAYER_ON(2)) {
              tap_code16(clockwise ? LALT(KC_TAB) : LALT(LSFT(KC_TAB)));
          } 
          else if (IS_LAYER_ON(5)) {
              tap_code(clockwise ? KC_MS_WH_DOWN : KC_MS_WH_UP);
          }
          // else {
          //     tap_code16(clockwise ? LGUI(KC_Y) : LGUI(KC_Z));
          // }
      }
      
      

      P.s. You know you can tweak the led? Turn it off/change color and brightness, all using the qmk rgb keys. (Just wondered if the thing on top is to dim the light:)

      Haha…yeap thats exactly what it was for, #define RGBLIGHT_LIMIT_VAL 2 helped me solve it.

      • nebula@lemmy.caOP
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Digging some more, I found out that this happens only on the side that has encoder. Holding the layer keys that are on the micro-controller side and rotation encoder yields expected results. So I’m guessing its something to do with the matrix fix. My C isn’t that sharp so I’ll try to dig through and see what I can find.

  • robotdna@toast.ooo
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    1 year ago

    As an aside, would recommend looking into Miryoku, it’s designed specifically for this layout and may make your life a bit easier in configuration space

    • nebula@lemmy.caOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      cool thanks, I started with that and has already started modifying the layout