77 lines
2.0 KiB
Bash
Executable File
77 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
THEME="${1:-catppuccin-mocha}"
|
|
CONFIG_DIR="$HOME/.config"
|
|
# WAYBAR_DIR="$CONFIG_DIR/niri/waybar-niri"
|
|
|
|
declare -A THEMES=(
|
|
["cat"]="catppuccin-mocha"
|
|
["rose"]="rose-pine-moon"
|
|
["dracula"]="dracula"
|
|
)
|
|
|
|
if [[ ! -v "THEMES[$THEME]" ]]; then
|
|
echo "Unknown theme: $THEME"
|
|
echo "Available themes: ${!THEMES[@]}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Switching to theme: $THEME"
|
|
|
|
# Neovim
|
|
echo "vim.cmd.colorscheme('${THEMES[$THEME]}')" >"$CONFIG_DIR/nvim/lua/current_theme.lua"
|
|
echo " ✓ Neovim"
|
|
|
|
# Kitty
|
|
if command -v kitty &>/dev/null && [[ -f "$CONFIG_DIR/kitty/themes/${THEME}.conf" ]]; then
|
|
ln -sf "$CONFIG_DIR/kitty/themes/${THEME}.conf" "$CONFIG_DIR/kitty/current-theme.conf"
|
|
kill -SIGUSR1 $(pgrep kitty) 2>/dev/null || true
|
|
echo " ✓ Kitty"
|
|
fi
|
|
|
|
# Btop
|
|
if [[ -f "$CONFIG_DIR/btop/themes/${THEME}.theme" ]]; then
|
|
sed -i "s|^color_theme = .*|color_theme = \"$CONFIG_DIR/btop/themes/${THEME}.theme\"|" "$CONFIG_DIR/btop/btop.conf"
|
|
echo " ✓ Btop"
|
|
fi
|
|
|
|
# Yazi
|
|
if [[ -f "$CONFIG_DIR/yazi/themes/${THEME}.toml" ]]; then
|
|
ln -sf "$CONFIG_DIR/yazi/themes/${THEME}.toml" "$CONFIG_DIR/yazi/theme.toml"
|
|
echo " ✓ Yazi"
|
|
fi
|
|
|
|
# # Waybar - simply copy the theme file to theme.css
|
|
# if [[ -f "$WAYBAR_DIR/themes/${THEME}.css" ]]; then
|
|
# cp "$WAYBAR_DIR/themes/${THEME}.css" "$WAYBAR_DIR/theme.css"
|
|
#
|
|
# pkill waybar 2>/dev/null || true
|
|
# sleep 0.5
|
|
# waybar -c "$WAYBAR_DIR/config.jsonc" -s "$WAYBAR_DIR/style.css" &
|
|
# echo " ✓ Waybar"
|
|
# else
|
|
# echo " ✗ Waybar: theme file not found at $WAYBAR_DIR/themes/${THEME}.css"
|
|
# fi
|
|
|
|
# Bat
|
|
if command -v bat &>/dev/null; then
|
|
case $THEME in
|
|
catppuccin-mocha) BAT_THEME="Catppuccin Mocha" ;;
|
|
rose-pine-moon) BAT_THEME="TwoDark" ;;
|
|
*) BAT_THEME="Monokai Extended" ;;
|
|
esac
|
|
|
|
if [[ -f "$CONFIG_DIR/bat/config" ]]; then
|
|
sed -i "s/^--theme=.*/--theme=\"${BAT_THEME}\"/" "$CONFIG_DIR/bat/config"
|
|
else
|
|
mkdir -p "$CONFIG_DIR/bat"
|
|
echo "--theme=\"${BAT_THEME}\"" >"$CONFIG_DIR/bat/config"
|
|
fi
|
|
echo " ✓ Bat"
|
|
fi
|
|
|
|
echo ""
|
|
echo "✓ Theme switched to: $THEME"
|