This module repository provides a ZMK shield that replaces the built-in status screen with a custom screen designed for 128x64-pixel OLED displays, or 128x32 with some limitations.
To use this module, first add it to your config/west.yml by adding a new entry to remotes and projects:
manifest:
remotes:
- name: zmkfirmware
url-base: https://github.com/zmkfirmware
- name: englmaxi
url-base: https://github.com/englmaxi
projects:
- name: zmk
remote: zmkfirmware
revision: main
import: app/west.yml
- name: zmk-dongle-display
remote: englmaxi
revision: main
self:
path: configNext, replace the built-in status screen by adding dongle_display to your build.yaml:
---
include:
- board: seeeduino_xiao_ble
shield: sweep_central_dongle dongle_displayThis shield assumes that the dongle is already set up and functioning with the built-in status screen.
For setup examples, refer to the shields in my zmk-config.
- If you are using the larger 1.3" OLED, replace
solomon,ssd1306fbwithsinowealth,sh1106and setsegment-offset = <2>. - If you are using a nice!nano, replace
xiao_i2cwithpro_micro_i2c. - If you are using the smaller 0.91" OLED, replace
height = <64>;byheight = <32>;
- active hid indicators (CLCK, NLCK, SLCK)
- active modifiers
- bongo cat
- highest layer name
- output status
- peripheral battery levels
- WPM meter
To also display the battery level of the dongle/central device, use the following configuration property:
CONFIG_ZMK_DONGLE_DISPLAY_DONGLE_BATTERY=yIf you want to use MacOS modifier symbols instead of the Windows modifier symbols, use the following configuration property:
CONFIG_ZMK_DONGLE_DISPLAY_MAC_MODIFIERS=yIf you want to enable the WPM meter:
CONFIG_ZMK_DONGLE_DISPLAY_WPM=yIf you want the widget not to measure WPM on specific layers
CONFIG_ZMK_DONGLE_DISPLAY_WPM_DISABLED_LAYERS="layers" # comma separatedTo allow smaller OLEDs, with 128x32 pixels, it will be necessary to exclude some widgets, like the bongo cat, active modifiers or the highest layer name. You can do it with the following config entries:
CONFIG_ZMK_DONGLE_DISPLAY_BONGO_CAT=n
CONFIG_ZMK_DONGLE_DISPLAY_MODIFIERS=n
CONFIG_ZMK_DONGLE_DISPLAY_LAYER=nIt is also necessary to reduce the buffer size, otherwise the I2C communication can become unstable:
CONFIG_LV_Z_VDB_SIZE=32- case1
- case2
- Cyberdeck by @rafaelromao
- Dongle PCB by @spe2
- Macintosh by @rain2813
- Redox by @rurounikexin
- sai44 Dongle by @leafflat
- ZMK Display Dongle by @yingeling
- ZMK Nice Nano 128x64 OLED Dongle by @James_909973
- Dilemma DIY with 128x32 OLED
- Prospector by @carrefinho
- YADS by @janpfischer

