Skip to content

Releases: michaelmonetized/naarchy

0.4.0 — preferences, doctor, a quieter island

Choose a tag to compare

@michaelmonetized michaelmonetized released this 09 Sep 10:30

0.4.0 — preferences, doctor, a quieter island

  • Preferences. Native settings for Home, appearance, and reduced-motion.
  • Doctor. naarchy --version and naarchy doctor tell you if the session is wired.
  • Quieter. Less repeated service startup, fewer redraws, less work on the desktop thread. Monitor and appearance changes refresh the surfaces.
  • Clipboard. Newest first, even with pins. Recopying an older entry promotes it instead of duplicating it.
  • State. Clipboard, Inbox, and Home writes are atomic. Failed writes keep the last good file; corrupt JSON is backed up.
  • Inbox. Batch drops. Image blobs leave only after the last reference is gone. Clearing Inbox leaves original files alone. Duplicates are rejected.
  • Home. Clock and deliberately empty widget selections survive a restart.
  • Privacy. Calendar travel estimates are opt-in. Disabling clipboard capture stops the background service.

Downloads

File Arch
naarchy-aarch64-unknown-linux-gnu.tar.gz ARM64 (Asahi / Omarchy Mac)
naarchy-x86_64-unknown-linux-gnu.tar.gz x86_64
naarchy-0.4.0-src.tar.gz Source

Extract a package and run bash scripts/install.sh from its directory. It installs the binary, launcher, icon, and user unit. It does not start the service. Checksums in SHA256SUMS.

x86_64 built on hpeliteclient. aarch64 built on m1pro16.

0.3.3 — kill the plus, show the art, drop battery

Choose a tag to compare

@michaelmonetized michaelmonetized released this 03 Sep 15:43

0.3.3 — kill the plus, show the art, drop battery

  • Inbox + on the player is gone. It dumped a text note of the track onto the shelf. Nobody asked it to keep doing that.
  • Album art: Chromium serves real covers as /tmp/.org.chromium.Chromium.*. Treating those as the Chrome-icon leftover hid every Spotify cover. Copy the file into the art cache; hollow players are still filtered by is_live.
  • Layout: panel title + artist sit on their own lines above play/next, so they are not crushed by the buttons. Pill title gets a wider ear. Closed-island art is a 32px chip (Image + pixel_size) so the full-res cover cannot blow the capsule.
  • Battery: Home widget, pill chip, and UPower are gone. The bar already shows percent. Empty-state media is Spotify + cliamp logos. naarchy hud battery still works.

Downloads

File Arch
naarchy-aarch64-unknown-linux-gnu ARM64 (Asahi / Omarchy Mac)
naarchy-x86_64-unknown-linux-gnu x86_64
naarchy-0.3.3-src.tar.gz Source

Checksums in SHA256SUMS. GitHub also attaches the tag source zip/tar.

x86_64 built on hpeliteclient. aarch64 built on m1pro16.

v0.2.5 — no clock, compact media, pause fix

Choose a tag to compare

@michaelmonetized michaelmonetized released this 31 Aug 14:05

Clock

You said clocks are everywhere — WidgetStore::default is Timer+Media and src/widget_store.rs:71 now migrates ~/.config/naarchy/widgets.json removing Clock (your file had Timer,Media,Clock,Battery → now Timer,Media,Battery). Drawer still has Clock if you ever want it.

Media pause

src/ui/media.rs:108 play_btn now logs player and media_cmd is always Some after mpris::run; src/services/mpris.rs:132 ranked PlayPause targets the playing player (chromium Playing Royalty now correctly pauses via gdbus PlayPause — tested PausedPlaying). Compact redesign matches your screenshot src/ui/media.rs:27na-media-card 56px art na-media-art--small, na-media-title--compact 13px, + src/ui/mod.rs:37 PLUS na-media-btn adds current track to shelf, white 36px pause, next 32px — no seek/shuffle (observability, not dumb cliamp). src/theme.rs:322 na-media-card rgba(32,32,34,0.96) 16px radius matches dark card.

v0.2.4 — calendar join + directions + leave

Choose a tag to compare

@michaelmonetized michaelmonetized released this 31 Aug 13:45

Calendar

  • Join: if ICS DESCRIPTION/LOCATION/URL/X-GOOGLE-CONFERENCE contains meet.google.com/zoom.us/teams.microsoft.com|teams.live.com, show Join Meet/Zoom/Teams button opening via xdg-open (src/services/calendar.rs:350, src/ui/calendar.rs:250).
  • Directions + leave: if LOCATION is physical address (not URL, src/services/calendar.rs:400), show Directionshttps://www.google.com/maps/dir/?api=1&destination=… (src/services/calendar.rs:410) and async Leave HH:MM (N min) via current location (portal 3s → ipinfo.io 35.4887,-82.9887 src/services/location.rs:106) → Nominatim → OSRM, cached (~/.cache/naarchy/geocode.json/route.json), 5 min buffer (src/services/location.rs:219). Enriched via Event::CalendarEnriched (src/services/mod.rs:28, src/app.rs:377).

v0.2.3 — calendar ICS fix

Choose a tag to compare

@michaelmonetized michaelmonetized released this 31 Aug 12:58

Fix DTSTART;TZID=... and DTSTART;VALUE=DATE never parsed — ics_props stored full DTSTART;TZID=... key so props.get("DTSTART") missed, and parse_dtstart expected DTSTART:... prefix (src/services/calendar.rs:260/292). Your private https://calendar.google.com/calendar/ical/.../basic.ics at ~/.config/naarchy/config.toml:37 now shows Monday Sales Huddle Meeting at 10:00 today (was 0 events). Also /tmp/debug_fixed now parses 1.

v0.2.2 — calendar docs, media observer, clipboard facelift

Choose a tag to compare

@michaelmonetized michaelmonetized released this 31 Aug 12:45

Calendar

Add ICS subscription URLs at bottom of ~/.config/naarchy/config.toml:36 (~/.config/naarchy/config.toml:36 — hot-reloads, needs systemctl --user restart naarchy):

[calendar]
feeds = ["https://calendar.google.com/calendar/ical/xxxx/basic.ics"]
# webcal://p123-caldav.icloud.com/published/2/xxx.ics → https://
# Google: Calendar → Settings → Integrate calendar → Secret address in iCal
# iCloud: Calendar → Share → Public Calendar → Copy Link
refresh_min = 5

Old installs missing [calendar] (your screenshot) now auto-migrated (src/config.rs:220), see docs/CONFIG.md:62.

Media

Pill was showing stale / cut-off text to right of notch. Now pill is universal MPRIS observer: shows only when actually playing (src/ui/pill.rs:326), icon-only (22px art or MUSIC glyph) — no truncated title. Home Media widget is live control for any MPRIS player — org.mpris.MediaPlayer2.chromium.* (Spotify web is playing Royalty right now via gdbus), spotify, ncspot, mpv, vlc. cliamp without MPRIS will still say nothing playing — use an MPRIS player. Stale cliamp quit → still shows fixed by ranked snapshot that clears to Media(None) (src/services/mpris.rs:227).

Clipboard

Fugly white card → glass rows with border/hover lift (src/theme.rs:405), timestamps now na-clip-time 0.72 visible not 0.52, pin ★ accent, viewport transparent (src/theme.rs:155).

v0.2.1 — settings hit-test + cursor

Choose a tag to compare

@michaelmonetized michaelmonetized released this 31 Aug 12:23

Fix settings gear not clickable: dock_wrap was outside apply_input_region so hover counted as leave → panel collapsed before click; now dock_wrap rect (dock+gear) is hit region throttled 20Hz, gear fades with dock and shows pointer cursor not I-beam (src/ui/panel.rs:198).

v0.2.0 — perf + timer + settings

Choose a tag to compare

@michaelmonetized michaelmonetized released this 31 Aug 11:59

0.2.0 — perf + timer + settings

  • Perf: stable FNV cache_key fixes art/shelf/clip re-download each restart; cached Palette removes per-frame omarchy file I/O (pill/timer/liquid); idletimeout 16ms stops busy-loop wake; throttled apply_input_region (~20 Hz); liquid COPIES 32→18 LAYERS 16→8; hyprland hover 33→60ms + surface-aware stay-open; mpris 1.5s→2s + 400→900ms; clipboard 600→900ms; config watcher 700→1100ms; pill measure only on mood change; clipview borrow without 400 to_lowercase allocs per keystroke; parse_payload O(n²)→O(n).
  • Timer: replaces ugly ruler with circular ring + big clock + presets + 25m / 90s entry; visual bell pulsates + Revealer shake; audible loop every 3 s for 60 s via pw-play→paplay→aplay→ffplay→canberra + display.beep() fallback; Done state lasts 60 s.
  • HUD: fix || true bug that dismissed critical banners; destroy oldest banner instead of leaking ApplicationWindow.
  • Settings: gear na-dock-btn in dock opens ~/.config/naarchy/config.toml via omarchy-launch-config-editor (→ omarchy-launch-editornvim in omarchy-launch-tui), mirroring every Omarchy plugin.
  • UI polish: dock settings button, na-preset hover border, na-timer-* animations, less jank on expand/collapse, pill width spring gated.