84 lines
No EOL
2.6 KiB
Markdown
84 lines
No EOL
2.6 KiB
Markdown
# Alacritty Theme Synchronization
|
|
|
|
Simple theme synchronization for Alacritty that automatically switches between Catppuccin light and dark themes based on your macOS system theme.
|
|
|
|
**This solution uses Nix conditional configuration - no complex scripts or wrappers needed!**
|
|
|
|
## How It Works
|
|
|
|
1. The system detects your current macOS theme using `defaults read -g AppleInterfaceStyle`
|
|
2. The theme is written to `/Users/danny/.local/share/nvim_color_scheme`
|
|
3. Your NixOS configuration reads this file and conditionally applies:
|
|
- **Light theme** → Catppuccin Latte
|
|
- **Dark theme** → Catppuccin Mocha
|
|
4. Alacritty gets the correct theme colors through Nix configuration
|
|
|
|
## Setup
|
|
|
|
1. **Run the setup script:**
|
|
```bash
|
|
./scripts/setup-simple-theme-sync.sh
|
|
```
|
|
|
|
2. **Apply the theme to Alacritty:**
|
|
```bash
|
|
home-manager switch
|
|
```
|
|
|
|
That's it! Your Alacritty will now use the correct theme based on your system theme.
|
|
|
|
## Usage
|
|
|
|
### Manual Theme Sync
|
|
When you change your system theme, run:
|
|
```bash
|
|
./scripts/sync-alacritty-theme.sh && home-manager switch
|
|
```
|
|
|
|
### Automatic Theme Switching (Optional)
|
|
For automatic switching, you can set up a LaunchAgent:
|
|
```bash
|
|
cp assets/launchd/com.user.alacritty-theme-sync.plist ~/Library/LaunchAgents/
|
|
launchctl load ~/Library/LaunchAgents/com.user.alacritty-theme-sync.plist
|
|
```
|
|
|
|
## Files
|
|
|
|
- `scripts/detect-system-theme.sh` - Detects current macOS system theme
|
|
- `scripts/sync-alacritty-theme.sh` - Updates the theme file that Nix reads
|
|
- `scripts/setup-simple-theme-sync.sh` - One-time setup script
|
|
- `nixos/home/danny/home.nix` - Contains the conditional Alacritty configuration
|
|
|
|
## Theme Colors
|
|
|
|
### Catppuccin Latte (Light)
|
|
- Background: `#eff1f5` (base)
|
|
- Foreground: `#4c4f69` (text)
|
|
- Accent colors optimized for light backgrounds
|
|
|
|
### Catppuccin Mocha (Dark)
|
|
- Background: `#1e1e2e` (base)
|
|
- Foreground: `#cdd6f4` (text)
|
|
- Accent colors optimized for dark backgrounds
|
|
|
|
## Integration with NixOS
|
|
|
|
The solution uses Nix's conditional configuration in `home.nix`:
|
|
|
|
```nix
|
|
colors = let
|
|
systemThemeFile = "/Users/danny/.local/share/nvim_color_scheme";
|
|
isLightTheme = builtins.pathExists systemThemeFile &&
|
|
builtins.readFile systemThemeFile == "light\n";
|
|
|
|
lightColors = { /* Catppuccin Latte colors */ };
|
|
darkColors = { /* Catppuccin Mocha colors */ };
|
|
in if isLightTheme then lightColors else darkColors;
|
|
```
|
|
|
|
This approach:
|
|
- ✅ Works with Spotlight/Applications folder launches
|
|
- ✅ No shell aliases or wrapper scripts needed
|
|
- ✅ Integrates cleanly with NixOS configuration
|
|
- ✅ Minimal complexity - just 3 simple scripts
|
|
- ✅ Uses the same theme file as your Neovim configuration |