A minimal, interactive terminal-based calendar built in Go, with month and year navigation using vim-style or arrow keys.
Note : use https://github.com/beaterblank/omarchy-theme-sync-ctl for dynamic theme change in omarchy.
Note: The installer updates your Waybar configuration directly but first creates a backup to restore on uninstall, make sure to keep a copy of your config in case recovery is needed.
git clone https://github.com/beaterblank/zen-cal.git && cd zen-calInstall jq if not already
sudo pacman -S jqoptionally build if you'd like to :
Gois required to build
chmod +x ./build.sh
./build.shgets the latest release if not built.
chmod +x ./install.sh
./install.sh| Key | Action |
|---|---|
h, ← |
Previous month |
l, → |
Next month |
k, ↑ |
Previous year |
j, ↓ |
Next year |
r, ↵ |
Reset to today |
q, Ctrl+C, esc |
Quit |
chmod +x ./uninstall.sh ./purge.sh
./uninstall.sh
# optionally only remove zen config files using purge.sh (if your waybar config backup is lost)Zen-Cal can be customized to match your theme. The following defaults work well with most dark themes:
today = #f38ba8
today_text = #cdd6f4
headings = #cba6f7
text = #cdd6f4
weekends = #f9e2afYou can adjust these values to match your preferred color scheme in ~/.config/zen-cal/zen-cal[ dark / light ].config.
~/.config/hypr/app/zen-cal.conf file defines the window rules; adjust them to position the calendar anywhere on the monitor.
It should look like this:
windowrulev2 = float, class:^(TUI.zencal)$
windowrulev2 = size 14% 18%, class:^(TUI.zencal)$
windowrulev2 = move 86% 2.5%, class:^(TUI.zencal)$
movecontrols the window’s position on the monitor.sizecontrols the window’s dimensions.
By default, the module appears in the right-most corner. If you want it centered, update your Waybar configuration aswell:
- Add
custom/zen-caltomodules-center. - Remove
custom/zen-calfrom themodules-right.
- hyprland
- Waybar
- go lang
- jq (installation dependency)
github.com/charmbracelet/bubbleteagithub.com/charmbracelet/lipgloss
