suntheme 0.1.12

Switch Ghostty and Neovim themes based on sunrise/sunset times
suntheme-0.1.12 is not a library.

suntheme

Automatically switch Ghostty and Neovim themes based on sunrise/sunset times.

Installation

Homebrew (macOS)

brew install lucianlavric/tap/suntheme

Linux

curl -fsSL https://raw.githubusercontent.com/lucianlavric/suntheme/main/install.sh | bash

Cargo (all platforms)

cargo install suntheme

Note: After cargo install, ensure ~/.cargo/bin is in your PATH:

echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc  # or ~/.zshrc
source ~/.bashrc

Quick Start

# Initial setup - configures location and themes
suntheme init

# Start automatic theme switching daemon
suntheme start

Commands

Command Description
suntheme init Interactive setup for location and themes
suntheme start Start daemon for automatic switching
suntheme stop Stop the daemon
suntheme status Show daemon status and current theme
suntheme toggle Toggle between light/dark
suntheme set <light|dark> Set specific mode
suntheme sun Display today's sunrise/sunset times
suntheme themes Change theme configuration

How it works

  1. Location-based sun times: Fetches sunrise/sunset times from sunrise-sunset.org API based on your location
  2. Daily caching: Sun times are cached daily to minimize API calls
  3. Ghostty: Modifies your Ghostty config file and triggers a reload
  4. Neovim: Writes to a state file that Neovim watches for changes

Requirements

  • macOS: Accessibility permissions required for Ghostty auto-reload (prompted during setup)
  • Linux: Auto-reload works via SIGUSR2 signal (no extra dependencies)
  • Neovim 0.9+: For file watching support
  • Ghostty: Any recent version

Configuration

Config is stored at:

  • macOS: ~/Library/Application Support/suntheme/config.toml
  • Linux: ~/.config/suntheme/config.toml
[location]
latitude = 43.6532
longitude = -79.3832

[themes.ghostty]
light = "tokyonight-day"
dark = "tokyonight"

[themes.neovim]
light = "tokyonight-day"
dark = "tokyonight"

Roadmap

  • Windows support
  • Linux support
  • iTerm2 support
  • VS Code support
  • System theme support
  • Gradient transition between light and dark themes to mimic sunrise/sunset

License

MIT