u/Ziembski

Image 1 — [AD] WIP App - Peacock - Display Companion for ZMK keyboards
Image 2 — [AD] WIP App - Peacock - Display Companion for ZMK keyboards
Image 3 — [AD] WIP App - Peacock - Display Companion for ZMK keyboards
Image 4 — [AD] WIP App - Peacock - Display Companion for ZMK keyboards

[AD] WIP App - Peacock - Display Companion for ZMK keyboards

Hey! I'm currently working on an app for Android that works in tandem with a ZMK module. Module parsers keyboard data into expected payload and advertises it, the app just reads the payload and display data in fully customizable widgets.

Long story short - when I switched from Corne to Charybdis, I was missing the displays. I was inspired by T-Ogura's Scanner Prospector repo, at the beginning wanted to turn my old nice!view into similiar "dongle", but got eureka moment - why bother with seperate hardware when any BLE-enabled device could do it and as everyone right now, I happen to have one in my pocket.

Here is the repo for module that is required to be added to your keyboard: Peahen

Key Functions in Peacock

  • Real-time Monitoring: "Connects" to ZMK keyboards via Bluetooth Low Energy
  • Widget Workspace: Add, remove, and reposition widgets using an intuitive drag-and-drop workspace
  • Sizing & Alignment: Resize widgets and use a snapping system for clean and aligned layouts with seperate configuration for vertical and horizotal orientation
  • Fine-Tuning mode: Precise pixel-level control over widget positions and dimensions
  • Themes: Apply built-in theme presets, build-in multiple font families
  • Backgrounds: Set solid colors or custom background images
  • Conditional Views: Automatically switch between different themes or custom views based on the current Bluetooth Profile and/or Active Layer
  • Layout Management: Save multiple "Custom Views," and export/import them as .customPea files to share with others
  • Interactive Onboarding: A guided tour and "Questionnaire" system to help new users set up their first layout based on their keyboard type
  • And many more!

Available Widgets

  • Main Battery %
  • Peripheral Battery %
  • Layer Name: Displays the name of the current active layer (e.g., "BASE", "NAV"), max 10 long
  • Layer Number: Displays the numeric index of the current layer
  • Active Modifiers: Visual indicators for Shift, Ctrl, Alt, and GUI keys (Left, Right, or Merged, depending on your needs)
  • Status Flags: Icons for USB Connection, Charging, BLE Activity, Caps Lock, and USB Logging
  • BT Profile Number: Displays the current active Bluetooth profile index.
  • BT Profile Name: Allows custom naming for each Bluetooth profile, e.g. Work / Home / ect.
  • RSSI: Displays Bluetooth signal strength (Icon and/or dBm value).
  • WPM: Numeric display of current typing speed.
  • Animated WPM: A GIF animation (like "Bongo Cat") that speeds up or slows down based on your WPM.
  • Keyboard Name: Displays the keyboard's Bluetooth broadcast name.
  • Clock: System time display
  • Timer: A countdown timer with configurable slots and optional device vibration upon completion
  • Static Label: User-defined text labels for organization or decoration.
  • Custom Image: Allows users to place their own images/logos on the dashboard
  • Floating Window Toggle: A quick-access button to enter Picture-in-Picture mode (still needs polishing)

I'm looking for feedback & testers - the app will be at one point available in Play Store, but before that I'd to test it with a little more people than just myself and different hardware.

How do you like it? Do you have some other widget ideas, or maybe you see some other functions that could be added?.

I'm got a Discord server to troubleshot, share ideas and custom viwes, etc. If you are interested to test, DM me your discord contact!

u/Ziembski — 3 days ago

WIP App - Peacock - Display Companion for ZMK keyboards

Hey! I'm currently working on an app for Android that works in tandem with a ZMK module. Module parsers keyboard data into expected payload and advertises it, the app just reads the payload and display data in fully customizable widgets.

Long story short - when I switched from Corne to Charybdis, I was missing the displays. I was inspired by T-Ogura's Scanner Prospector repo, at the beginning wanted to turn my old nice!view into similiar "dongle", but got eureka moment - why bother with seperate hardware when any BLE-enabled device could do it and as everyone right now, I happen to have one in my pocket.

Here is the repo for module that is required to be added to your keyboard: Peahen

Key Functions in Peacock

  • Real-time Monitoring: "Connects" to ZMK keyboards via Bluetooth Low Energy
  • Widget Workspace: Add, remove, and reposition widgets using an intuitive drag-and-drop workspace
  • Sizing & Alignment: Resize widgets and use a snapping system for clean and aligned layouts with seperate configuration for vertical and horizotal orientation
  • Fine-Tuning mode: Precise pixel-level control over widget positions and dimensions
  • Themes: Apply built-in theme presets, build-in multiple font families
  • Backgrounds: Set solid colors or custom background images
  • Conditional Views: Automatically switch between different themes or custom views based on the current Bluetooth Profile and/or Active Layer
  • Layout Management: Save multiple "Custom Views," and export/import them as .customPea files to share with others
  • Interactive Onboarding: A guided tour and "Questionnaire" system to help new users set up their first layout based on their keyboard type
  • And many more!

Available Widgets

  • Main Battery %
  • Peripheral Battery %
  • Layer Name: Displays the name of the current active layer (e.g., "BASE", "NAV"), max 10 long
  • Layer Number: Displays the numeric index of the current layer
  • Active Modifiers: Visual indicators for Shift, Ctrl, Alt, and GUI keys (Left, Right, or Merged, depending on your needs)
  • Status Flags: Icons for USB Connection, Charging, BLE Activity, Caps Lock, and USB Logging
  • BT Profile Number: Displays the current active Bluetooth profile index.
  • BT Profile Name: Allows custom naming for each Bluetooth profile, e.g. Work / Home / ect.
  • RSSI: Displays Bluetooth signal strength (Icon and/or dBm value).
  • WPM: Numeric display of current typing speed.
  • Animated WPM: A GIF animation (like "Bongo Cat") that speeds up or slows down based on your WPM.
  • Keyboard Name: Displays the keyboard's Bluetooth broadcast name.
  • Clock: System time display
  • Timer: A countdown timer with configurable slots and optional device vibration upon completion
  • Static Label: User-defined text labels for organization or decoration.
  • Custom Image: Allows users to place their own images/logos on the dashboard
  • Floating Window Toggle: A quick-access button to enter Picture-in-Picture mode (still needs polishing)

I'm looking for feedback & testers - the app will be at one point available in Play Store, but before that I'd to test it with a little more people than just myself and different hardware.

How do you like it? Do you have some other widget ideas, or maybe you see some other functions that could be added? If you are interested in testing the app, contact me on DM.

I'm planning on creating Discord server to troubleshot, share ideas and custom viwes, etc. However allow me for delayed responses, I'm a young father and may not be able to answer right away!

u/Ziembski — 7 days ago

Baseball trackball is a new buy, I couldn't resist it when I saw it online, Perixx promo 66% off didn't help me neither. I really love how it fits in, even printed new holder.

Protip - polish new replacements balls from Perixx, they are covered in a layer to secure them in transport. I didn't know at first and was kinda worried that it was super inconsistent compared to standard red one

u/Ziembski — 20 days ago

Since I wasn't happy with my previous keycap set (their color was dark blue), I've come to conclusion that I prefer white keycaps on black cases. These are called Pet Party with MOA profile. Lego driver is an actual modified figurine with MX stem glued in (you can still drive it tho!).

Baseball trackball is a new buy, I couldn't resist it when I saw it online, Perixx promo 66% off didn't help me neither. I really love how it fits in, even printed new holder.

JJBA and Berserk keychains attached to the case not only fit in, but also are more or less distance that I keep the sides spaced. Jigglypuff is usually attached to the charging cable, guest here for the photo.

Arm rests didn't change, but I got to fix my desk height so that I rest my forearms on my chair restr instead.

Also kinda showing off by prototype of android app that works as display for the keyboard, with all the info you would ever need, but still working on it.

Probably too much for the usual taste, but I really enjoy how out-of-place it is!

u/Ziembski — 20 days ago