Skip to content

macOS support + new themes + background transparency#2

Open
prophesourvolodymyr wants to merge 4 commits into
Foxemsx:mainfrom
prophesourvolodymyr:main
Open

macOS support + new themes + background transparency#2
prophesourvolodymyr wants to merge 4 commits into
Foxemsx:mainfrom
prophesourvolodymyr:main

Conversation

@prophesourvolodymyr

Copy link
Copy Markdown

I was disappointed riptide wasn't available on macOS, so I ported the bandwidth monitor and fixed it up for darwin.

What changed

macOS support

  • Added monitor_darwin.go — live bandwidth monitor for macOS using netstat -ib to read network interface counters
  • Build-constrained with //go:build darwin — zero impact on Linux/Windows

New themes (3)

  • Mono — true black, white/gray gradients
  • Signal — true black, rose-red accent
  • Ink — true black, cold-blue accent

Per-theme logo gradient

  • Logo now changes colour with the selected theme via LogoStops on the Theme struct

Background fill on macOS

  • PaintScreen wraps content lines with AppBg on macOS only (runtime.GOOS guard)
  • Added Settings → Terminal BG panel (key 4) — toggle opaque/transparent, persisted to DB

README

  • macOS install instructions, transparency note, 14 themes

Known issue — terminal transparency on macOS

On terminals with transparency enabled (Ghostty, iTerm2), lipgloss ANSI reset codes leave small background gaps exposing the desktop. Use Settings → Terminal BG (key 4) to work around it. Core features (speed test, monitor, themes, history) are unaffected.

[screenshot placeholder — drag your image here in the GitHub PR editor]

Notes

  • Linux/Windows monitor code untouched
  • runtime.GOOS is compile-time constant — darwin path eliminated from Linux/Windows binaries
  • Cross-compile tested: Linux amd64, Windows amd64, macOS arm64
  • Transparent toggle uses sync/atomic for goroutine safety

- monitor_darwin.go: macOS bandwidth monitor using `netstat -ib`
  (build-constrained with //go:build darwin, zero impact on Linux/Windows)
- theme.go: macOS transparency fix via runtime.GOOS guard;
  new themes: Mono, Signal, Ink (all true-black #000000 backgrounds)
- card.go: per-theme logo gradient via LogoStops on Theme struct
- menu/model/monitor: pass LogoStops to renderHeader
- theme.go: atomic.TransparentBg flag skips background fill on macOS
- settings.go: new Terminal BG panel (key 4) with enter/space toggle
- DB persistence via transparent_bg setting key
- README: macOS install instructions + transparency known issue note
- README: updated theme count to 14, added mono/signal/ink
Skip lipgloss.WithWhitespaceBackground when TransparentBg is true
so the outer canvas area also shows the terminal's native background.
Call apptheme.TransparentBg.Store in NewApp so the preference
takes effect immediately on launch, not only after entering Settings.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant