109 lines
3.5 KiB
Markdown
109 lines
3.5 KiB
Markdown
# Alacritty Theme Synchronization
|
|
|
|
This directory contains the theme synchronization system for Alacritty that automatically switches between Catppuccin light and dark themes based on your macOS system theme.
|
|
|
|
## Files
|
|
|
|
- `catppuccin-light.yml` - Catppuccin Latte (light) theme colors
|
|
- `catppuccin-dark.yml` - Catppuccin Mocha (dark) theme colors
|
|
- `README.md` - This documentation
|
|
|
|
## Scripts
|
|
|
|
The theme synchronization scripts are located in `/scripts/`:
|
|
|
|
- `detect-system-theme.sh` - Detects current macOS system theme (light/dark)
|
|
- `sync-alacritty-theme.sh` - Syncs Alacritty config with current system theme
|
|
- `monitor-theme-changes.sh` - Continuously monitors for theme changes
|
|
- `setup-alacritty-theme-sync.sh` - Setup script for initial configuration
|
|
|
|
## Setup
|
|
|
|
1. Run the setup script:
|
|
```bash
|
|
./scripts/setup-alacritty-theme-sync.sh
|
|
```
|
|
|
|
2. Choose your preferred method for automatic theme switching:
|
|
|
|
### Option 1: Manual Sync
|
|
Run the sync script whenever you want to update the theme:
|
|
```bash
|
|
./scripts/sync-alacritty-theme.sh
|
|
```
|
|
|
|
### Option 2: Background Monitoring
|
|
Run the monitor script in the background:
|
|
```bash
|
|
./scripts/monitor-theme-changes.sh &
|
|
```
|
|
|
|
### Option 3: LaunchAgent (Recommended)
|
|
Install as a system service that runs automatically:
|
|
```bash
|
|
cp assets/launchd/com.user.alacritty-theme-sync.plist ~/Library/LaunchAgents/
|
|
launchctl load ~/Library/LaunchAgents/com.user.alacritty-theme-sync.plist
|
|
```
|
|
|
|
### Option 4: Shell Integration
|
|
Add to your Fish shell configuration:
|
|
```bash
|
|
echo 'source /Users/danny/dotfiles/scripts/sync-alacritty-theme.sh' >> ~/.config/fish/config.fish
|
|
```
|
|
|
|
## How It Works
|
|
|
|
1. The system detects your current macOS theme using `defaults read -g AppleInterfaceStyle`
|
|
2. Based on the theme, it applies the appropriate Catppuccin color scheme:
|
|
- **Light theme** → Catppuccin Latte
|
|
- **Dark theme** → Catppuccin Mocha
|
|
3. The Alacritty configuration is updated with the new colors
|
|
4. Running Alacritty instances are restarted to apply the new theme
|
|
|
|
## 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
|
|
|
|
## Troubleshooting
|
|
|
|
### Theme not updating
|
|
- Check if Alacritty config file exists and is writable
|
|
- Verify the theme detection script works: `./scripts/detect-system-theme.sh`
|
|
- Check logs in `/tmp/alacritty-theme-sync.log`
|
|
|
|
### LaunchAgent not working
|
|
- Check if the plist file is in the correct location
|
|
- Verify permissions: `ls -la ~/Library/LaunchAgents/`
|
|
- Check launchctl status: `launchctl list | grep alacritty`
|
|
|
|
### Manual theme override
|
|
If you want to manually set a theme regardless of system setting:
|
|
```bash
|
|
# Force light theme
|
|
ALACRITTY_THEME=light ./scripts/sync-alacritty-theme.sh
|
|
|
|
# Force dark theme
|
|
ALACRITTY_THEME=dark ./scripts/sync-alacritty-theme.sh
|
|
```
|
|
|
|
## Integration with NixOS
|
|
|
|
The NixOS configuration in `nixos/home/danny/home.nix` provides the base Alacritty configuration. The theme sync scripts work on top of this configuration, dynamically updating the colors section while preserving all other settings.
|
|
|
|
## Customization
|
|
|
|
To customize the themes:
|
|
|
|
1. Edit the color values in `catppuccin-light.yml` or `catppuccin-dark.yml`
|
|
2. Run the sync script to apply changes
|
|
3. The changes will persist until the next theme switch
|
|
|
|
For more advanced customization, you can modify the sync script to use different theme files or add additional theme variants.
|