| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/bin/bash
- # ~/.local/bin/font-manager
- # This script extracts font archives and rebuilds font cache
- FONT_DIR="$HOME/.local/share/fonts"
- ARCHIVE_DIR="$FONT_DIR/archives"
- ACTIVE_DIR="$FONT_DIR/active"
- # Function to extract a specific font archive
- extract_font() {
- local archive="$1"
- if [ -f "$ARCHIVE_DIR/$archive.tar.gz" ]; then
- echo "Extracting $archive fonts..."
- tar -xzf "$ARCHIVE_DIR/$archive.tar.gz" -C "$ACTIVE_DIR"
- fc-cache -f
- echo "Done! $archive fonts are now active."
- else
- echo "Error: Font archive $archive.tar.gz not found."
- exit 1
- fi
- }
- # Function to list available font archives
- list_fonts() {
- echo "Available font archives:"
- ls -1 "$ARCHIVE_DIR" | sed 's/\.tar\.gz$//'
- }
- # Function to rebuild font cache
- rebuild_cache() {
- echo "Rebuilding font cache..."
- fc-cache -f
- echo "Done!"
- }
- # Function to extract all fonts
- extract_all() {
- echo "Extracting all font archives..."
- for archive in "$ARCHIVE_DIR"/*.tar.gz; do
- tar -xzf "$archive" -C "$ACTIVE_DIR"
- done
- fc-cache -f
- echo "Done! All fonts are now active."
- }
- # Function to clean active fonts directory
- clean_fonts() {
- echo "Cleaning active fonts directory..."
- find "$ACTIVE_DIR" -type f -name "*.ttf" -o -name "*.otf" | xargs rm -f
- echo "Done! Active fonts directory is now clean."
- }
- # Main script logic
- case "$1" in
- "extract")
- extract_font "$2"
- ;;
- "list")
- list_fonts
- ;;
- "rebuild")
- rebuild_cache
- ;;
- "all")
- extract_all
- ;;
- "clean")
- clean_fonts
- ;;
- *)
- echo "Usage: font-manager [command] [options]"
- echo "Commands:"
- echo " extract [name] Extract specific font archive"
- echo " list List available font archives"
- echo " rebuild Rebuild font cache"
- echo " all Extract all font archives"
- echo " clean Remove all active fonts"
- ;;
- esac
|