Skip to content

Instantly share code, notes, and snippets.

@amavlyanov
Last active May 28, 2026 09:56
Show Gist options
  • Select an option

  • Save amavlyanov/34e998450b28aebcbae61b2ec4e8c18f to your computer and use it in GitHub Desktop.

Select an option

Save amavlyanov/34e998450b28aebcbae61b2ec4e8c18f to your computer and use it in GitHub Desktop.
Termux Catppuccin styling script
#!/usr/bin/env bash
# Catppuccin Termux Color Scheme Installer
# Downloads Catppuccin variants and lets user choose which to set as default
set -e # Exit on error
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}Catppuccin Termux Installer${NC}"
echo -e "${BLUE}========================================${NC}\n"
# Create .termux directory if it doesn't exist
TERMUX_DIR="$HOME/.termux"
mkdir -p "$TERMUX_DIR"
echo -e "${BLUE}[1/4]${NC} Fetching available Catppuccin variants...\n"
# Catppuccin variants to download
VARIANTS=("latte" "frappe" "macchiato" "mocha")
# Download each variant
for variant in "${VARIANTS[@]}"; do
FILE_URL="https://raw.githubusercontent.com/catppuccin/termux/main/themes/catppuccin-${variant}.properties"
OUTPUT_FILE="$TERMUX_DIR/termux-catppuccin-${variant}.properties"
echo -e "${BLUE}Downloading:${NC} Catppuccin ${variant}..."
if curl -fsSL "$FILE_URL" -o "$OUTPUT_FILE"; then
echo -e "${GREEN}✓ Downloaded:${NC} ${variant}\n"
else
echo -e "${RED}✗ Failed to download:${NC} ${variant}\n"
exit 1
fi
done
echo -e "${BLUE}[2/4]${NC} All variants downloaded successfully!\n"
echo -e "${YELLOW}Available Catppuccin variants:${NC}\n"
# Display available variants
for i in "${!VARIANTS[@]}"; do
variant="${VARIANTS[$i]}"
num=$((i + 1))
case "$variant" in
latte)
description="Light theme (Recommended)"
;;
frappe)
description="Dark theme (Coffee)"
;;
macchiato)
description="Dark theme (Vanilla)"
;;
mocha)
description="Dark theme (Chocolate)"
;;
esac
printf " ${BLUE}%d)${NC} ${YELLOW}%-12s${NC} - %s\n" "$num" "$variant" "$description"
done
echo ""
echo -e "${BLUE}[3/4]${NC} Choose default color scheme:\n"
# Interactive selection
while true; do
echo -n "Enter number (1-4) or variant name [default: 1 - latte]: "
read user_choice
# Default to latte if user just presses Enter
user_choice=${user_choice:-1}
case "$user_choice" in
1|latte)
SELECTED_VARIANT="latte"
break
;;
2|frappe)
SELECTED_VARIANT="frappe"
break
;;
3|macchiato)
SELECTED_VARIANT="macchiato"
break
;;
4|mocha)
SELECTED_VARIANT="mocha"
break
;;
*)
echo -e "${RED}Invalid choice!${NC} Please enter 1-4 or a variant name.\n"
;;
esac
done
echo ""
echo -e "${BLUE}[4/4]${NC} Setting ${YELLOW}Catppuccin ${SELECTED_VARIANT}${NC} as default...\n"
# Link selected variant as the default colors.properties
DEFAULT_FILE="$TERMUX_DIR/colors.properties"
ln -s "$TERMUX_DIR/termux-catppuccin-${SELECTED_VARIANT}.properties" "$DEFAULT_FILE"
echo -e "${GREEN}✓ Default color scheme set:${NC} Catppuccin ${SELECTED_VARIANT}\n"
echo -e "${BLUE}========================================${NC}"
echo -e "${GREEN}Installation Complete!${NC}\n"
echo -e "${BLUE}Installed color schemes:${NC}"
ls -1 "$TERMUX_DIR"/termux-catppuccin-*.properties | sed 's|.*/||; s|termux-catppuccin-||; s|\.properties||' | while read variant; do
if [ "$variant" = "$SELECTED_VARIANT" ]; then
echo -e " ${GREEN}✓${NC} ${variant} (${YELLOW}default${NC})"
else
echo -e " • ${variant}"
fi
done
echo ""
echo -e "${BLUE}To apply the changes:${NC}"
echo -e " 1. Restart Termux completely, OR"
echo -e " 2. Run: ${YELLOW}exit${NC} (and reopen Termux)\n"
echo -e "${BLUE}To switch variants later:${NC}"
echo -e " ${YELLOW}cp ~/.termux/termux-catppuccin-{frappe,macchiato,mocha,latte}.properties ~/.termux/colors.properties${NC}\n"
echo -e "${BLUE}========================================${NC}\n"

Comments are disabled for this gist.