Skip to content

Instantly share code, notes, and snippets.

View caksoylar's full-sized avatar

Cem Aksoylar caksoylar

View GitHub Profile
@caksoylar
caksoylar / 01_README.md
Last active October 3, 2024 23:14
ZMK studio proposed physical layout definition visualizer + converter to devicetree
@caksoylar
caksoylar / zen-display-improvements.md
Last active October 17, 2024 08:19
Corne-ish Zen display improvements

Display improvements for the Corne-ish Zen keyboard

This note details the changes made to the Zen and ZMK codebase to improve the experience of e-ink displays.

Getting the changes

You can test out below changes using your Zen config repo by modifying your config/west.yml file, following ZMK instructions:

manifest:
  remotes:
 - name: caksoylar
@caksoylar
caksoylar / bt-icon.md
Created May 7, 2022 20:25
A patch to replace ZMK Wifi icon with the Bluetooth one

Replacing ZMK wireless connectivity indicator with BT icon

This patch replaces the Wifi icon in ZMK's default output status widget with a Bluetooth icon. This icon was created from scratch to work with the 16 pt font that ZMK uses by default for showing output status.

128x64 OLED with BT icon

Note that while LVGL font ZMK uses includes a Bluetooth icon, it doesn't render well in 16 pt font which is why we display this icon as an image instead.

@caksoylar
caksoylar / combination.md
Last active October 7, 2024 21:38
QMK combination dial lock for entering passwords with a rotary encoder

Creating a combination dial lock with a rotary encoder in QMK

Below is a snippet for implementing a combination dial-like mechanism you can use in your QMK keymap. This is useful for entering long passwords using a rotary encoder, or activating secret macros etc. The algorithm looks for a sequence of clockwise (CW) or counter-clockwise (CCW) turns of the rotary encoder for a certain number of ticks/clicks. It executes the macro if all turns are successfully completed, or resets to the beginning if a turn is too long or too short.

For this example we will output a string as a macro, like entering a password. In this case it is "TA DA!":

void emit_passphrase_secret(void) {