This commit is contained in:
2026-03-05 09:40:10 +01:00
parent 0a4ff4c504
commit 84bee93e89
10 changed files with 157 additions and 20 deletions

View File

@ -0,0 +1,53 @@
#!/usr/bin/env python3
import subprocess
from argparse import ArgumentParser
from pathlib import Path
if __name__ == "__main__":
parser = ArgumentParser(description="Alacritty theme switcher")
parser.add_argument(
"mode",
help="The mode to switch the Alacritty theme to (e.g., 'dark' or 'light')",
)
args = parser.parse_args()
if args.mode not in ["dark", "light"]:
print("Invalid mode. Please choose 'dark' or 'light'.")
exit(1)
"""
The Alacritty config directory should contain the following files:
└── themes
├── current.toml -> dark/default.toml
├── dark
│ └── default.toml
└── light
└── default.toml
The default.toml files can be symlinks to the actual theme files, so you can easily switch between
different themes by changing the symlink target.
To change the light/dark theme, we can simply change the current.toml symlink to point to the
appropriate theme file.
"""
alacritty_config = Path.home() / ".config/alacritty"
themes_dir = alacritty_config / "themes"
current_theme = themes_dir / "current.toml"
target_theme = themes_dir / args.mode / "default.toml"
if not target_theme.exists():
print(f"Target theme file not found at {target_theme}")
exit(1)
if current_theme.exists() and not current_theme.is_symlink():
print(f"Current theme file {current_theme} is not a symlink. Please fix this manually.")
exit(1)
if current_theme.exists():
current_theme.unlink()
current_theme.symlink_to(target_theme)
print("Done!")