Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 40 additions & 4 deletions KEYMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -282,12 +282,48 @@ Located in `config/corne.conf`:

---

## 🐣 Tamagotchi Animation (nice!view)

An optional animated pet widget for the right-half nice!view display. When enabled it replaces the default status screen with expressive EMO-style eyes that blink and react.

### Enabling

Uncomment the following lines:

1. In `config/corne.conf` — enable the display driver:
```
CONFIG_ZMK_DISPLAY=y
```

2. In `config/corne_right.conf` — swap the default widget for the tamagotchi:
```
CONFIG_NICE_VIEW_WIDGET_STATUS=n
CONFIG_TAMAGOTCHI_WIDGET=y
```

3. Rebuild and flash the **right half** firmware.

### Disabling

Re-comment (add `#` prefix to) the same lines and rebuild. The display will either show the default nice!view status screen (if you keep `CONFIG_ZMK_DISPLAY=y`) or turn off entirely.

---

## 📁 File Structure

```
config/
├── corne.keymap # All layers, behaviors, combos
├── corne.conf # Board settings (debounce, BT, sleep)
└── west.yml # ZMK and module dependencies
build.yaml # CI build matrix (board/shield combos)
├── corne.keymap # All layers, behaviors, combos
├── corne.conf # Board settings (debounce, BT, sleep, display)
├── corne_right.conf # Right-half overrides (tamagotchi widget)
├── west.yml # ZMK and module dependencies
├── zephyr/module.yml # Registers the tamagotchi Zephyr module
└── tamagotchi/ # Tamagotchi widget source
├── CMakeLists.txt
├── Kconfig
└── src/
├── status_screen.c
├── tamagotchi_widget.c
└── tamagotchi_widget.h
build.yaml # CI build matrix (board/shield combos)
```
2 changes: 1 addition & 1 deletion config/corne.conf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

#CONFIG_ZMK_EXT_POWER=y

# Uncomment the following line to enable the Corne OLED Display
# Uncomment to enable the Corne OLED Display (required for tamagotchi widget)
#CONFIG_ZMK_DISPLAY=y
#CONFIG_ZMK_WIDGET_LAYER_STATUS=y
#CONFIG_ZMK_WIDGET_BATTERY_STATUS=y
Expand Down
5 changes: 5 additions & 0 deletions config/corne_right.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# ── Tamagotchi widget (replaces nice!view default on peripheral) ──
# Uncomment the following lines to enable the tamagotchi animation
# (also requires CONFIG_ZMK_DISPLAY=y in corne.conf)
#CONFIG_NICE_VIEW_WIDGET_STATUS=n
#CONFIG_TAMAGOTCHI_WIDGET=y
7 changes: 7 additions & 0 deletions config/tamagotchi/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
if(CONFIG_TAMAGOTCHI_WIDGET)
target_sources(app PRIVATE
src/tamagotchi_widget.c
src/status_screen.c
)
target_include_directories(app PRIVATE src)
endif()
4 changes: 4 additions & 0 deletions config/tamagotchi/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
config TAMAGOTCHI_WIDGET
bool "Tamagotchi pet widget for nice!view peripheral display"
depends on ZMK_DISPLAY
select LV_USE_CANVAS
16 changes: 16 additions & 0 deletions config/tamagotchi/src/status_screen.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
* Custom peripheral status screen — replaces nice!view's default
* peripheral display with the tamagotchi widget.
*
* SPDX-License-Identifier: MIT
*/

#include <lvgl.h>
#include "tamagotchi_widget.h"

lv_obj_t *zmk_display_status_screen(void)
{
lv_obj_t *screen = lv_obj_create(NULL);
tamagotchi_widget_init(screen);
return screen;
}
Loading
Loading