how to customize nice!view displays
is there any way to change the design on the nice!nano displays? i haven't managed to find any video/article about it online. has anybody changed the default image on the right side or changed the design of the left side (how to show BT connections, remove/change typing speed plot)?
1 Reply
Yes — you can customize what’s shown on the nice!view displays, but it’s not something that ZMK currently supports through an easy “UI” like ZMK Studio. It requires modifying the firmware source code and rebuilding it yourself.
The nice!view output (both the left/right default images, battery indicator, typing speed graph, etc.) is defined in the ZMK codebase inside the display driver widgets. You can: - Remove or reorder widgets (battery %, WPM, logo, active layer, Bluetooth connections, etc.) - Replace the default logo (right-hand image) with your own bitmap - Change fonts, layout, or update behavior To do this you’ll need to: 1. Set up a ZMK config repo (we have templates for Corne & Lily58 in our build guide firmware section).
2. Edit the shield
- The default logo is stored as a byte array in the
- ZMK Displays Documentation
- Widget source examples: widgets folder in ZMK repo
⚠️ Note: This means you’ll be maintaining a fork of ZMK or adding widget modifications to your own config. If you just want to hide certain elements (like WPM plot), you can comment out their registration in your shield’s
If you want, I can point you directly to the files you’d need to change for your board — which keyboard are you using, Corne or Lily58?
The nice!view output (both the left/right default images, battery indicator, typing speed graph, etc.) is defined in the ZMK codebase inside the display driver widgets. You can: - Remove or reorder widgets (battery %, WPM, logo, active layer, Bluetooth connections, etc.) - Replace the default logo (right-hand image) with your own bitmap - Change fonts, layout, or update behavior To do this you’ll need to: 1. Set up a ZMK config repo (we have templates for Corne & Lily58 in our build guide firmware section).
2. Edit the shield
.overlay
and/or widget .c
files in ZMK — this is where the nice!view layout is defined.- The default logo is stored as a byte array in the
logo.c
file.
- The other screen elements (typing speed plot, BT icons) are registered as widgets in widgets/*.c
.
3. Build your firmware with the updated files and flash it to the nice!nanos.
Relevant ZMK docs:- ZMK Displays Documentation
- Widget source examples: widgets folder in ZMK repo
⚠️ Note: This means you’ll be maintaining a fork of ZMK or adding widget modifications to your own config. If you just want to hide certain elements (like WPM plot), you can comment out their registration in your shield’s
.overlay
.If you want, I can point you directly to the files you’d need to change for your board — which keyboard are you using, Corne or Lily58?
GitHub
zmk/app/src/display/widgets at main · zmkfirmware/zmk
ZMK Firmware Repository. Contribute to zmkfirmware/zmk development by creating an account on GitHub.