ZMK Display Studio

Studio notesFAQ

Small questions.
Clear answers.

A few things worth knowing before you compose, export, and flash. Start with a topic below.

Getting started

Is it free? Do I need an account?

Yes, the editor is free to use and requires no account. Open an image or try the built-in sample. The step-by-step guide walks through the controls.

Which displays and keyboard halves are supported?

Currently, nice!view peripheral artwork on split ZMK keyboards is supported. Central-side custom layouts and other display models are not supported.

Which image files can I use?

PNG, JPEG, and WebP up to 10 MB, 40 megapixels, and 16,384 pixels per side. SVG and animated artwork are not supported. An animated raster source uses the browser-decoded frame, not an animation.

Are my images uploaded anywhere?

No. Image decoding, processing, and C/ZIP generation happen in your browser. See Privacy for what stays in memory and which preferences are saved.

Artwork and previews

What size should my artwork be?

The editor’s artwork area is 68 × 140 pixels, below a 68 × 20 status strip on the 68 × 160 display. Your source image can be larger: pan and zoom to compose the crop.

Why does the export say 140 × 68 instead of 68 × 140?

ZMK uses a rotated framebuffer. The editor processes your portrait artwork first, then rotates the finished pixels 90° clockwise into 140 × 68 artwork. This is expected; do not rotate your source to compensate. See the orientation diagram.

Will the battery and connection strip be exported?

No. The strip in Physical preview is simulated and excluded from the image. The nice!view customization package retains the upstream battery and connection behavior in the peripheral widget.

Which processing mode should I choose?

Try Threshold for logos and line art, Floyd–Steinberg for detailed shading, or Atkinson for airier dots and stronger contrast. Brightness and contrast affect all three. The threshold setting affects only Threshold mode.

Why are transparent areas white?

The display artwork is opaque black and white. Transparent pixels and uncovered crop space are composited onto white before brightness, contrast, dithering, and inversion are applied.

Why can’t I see the pixel grid?

The grid is available only in Pixels preview and appears at 3× enlargement or above. Enable Pixel grid and enlarge the preview window if it is currently below 3×.

Saving and exporting

Can I read a guide without losing my work?

Yes. Use the site links in the same tab to leave the editor and return with your image and composition intact. They stay in memory, not in a saved project. Reloading or closing the tab clears the artwork; only processing, preview, export-help, and color-theme preferences are saved between visits.

Can I replace the stock balloon and mountain artwork?

Yes. Choose the nice!view customization ZIP. It contains both artwork and a replacement peripheral widget. A C image alone does not replace the stock widget, which references its own image symbols. Follow the installation instructions.

Can I drop art.c into my ordinary ZMK config folder?

Not by itself. The file must be compiled and referenced by a widget. The customization package changes source files in a ZMK checkout or fork; the experimental custom shield has its own module integration. The Export Guide explains each option.

Does this work with older ZMK or LVGL 8 builds?

Exports target the inspected LVGL 9-based ZMK revision, not older LVGL 8 APIs. Future ZMK updates may also require integration changes. Check the pinned revisions and compatibility notes.

Why isn’t copying C code working?

Clipboard access needs HTTPS or localhost and browser permission. You can select the code manually or use Download art.c instead.

Will the preview look exactly like my screen?

It shows the generated monochrome pixels, but the physical display’s appearance can differ. Browser image decoding and resampling can also vary slightly. A full firmware build and physical nice!view validation have not been performed for this tool; the full custom shield remains experimental.

Your next little project

Make a few pixels your own.

Start with an image. Or see what the sample can do.

Open editor