From 86c0551687ca59341afbe7e773eb71f70a62da54 Mon Sep 17 00:00:00 2001 From: Chris Titus Date: Mon, 13 Jul 2026 01:38:21 -0500 Subject: [PATCH] Add selected installer and theme improvements --- README.md | 24 +++++++- assets/palettes.png | Bin 0 -> 106711 bytes setup.sh | 144 +++++++++++++++++++++++++++++++++++++++++--- starship-theme | 124 ++++++++++++++++++++++++++++++++++++++ uninstall.sh | 110 +++++++++++++++++++++++++++------ 5 files changed, 373 insertions(+), 29 deletions(-) create mode 100644 assets/palettes.png create mode 100755 starship-theme diff --git a/README.md b/README.md index 0888b2a..0516527 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ This repository provides a comprehensive `.bashrc` configuration along with supp ## Table of Contents - [Installation](#installation) +- [Switching Color Palettes](#switching-color-palettes) - [Uninstallation](#uninstallation) - [Configuration Files](#configuration-files) - [.bashrc](#bashrc) @@ -35,7 +36,9 @@ The `setup.sh` script automates the installation process by: - Installing Bash 5 with Homebrew on macOS - Adding Homebrew Bash to `/etc/shells` and setting it as the default login shell on macOS - Installing dependencies (bash-completion, neovim, starship, fzf, zoxide) -- Installing the MesloLGS Nerd Font required for the prompt when available +- Installing Starship and JetBrainsMono Nerd Font on Linux +- Selecting JetBrainsMono Nerd Font in Ptyxis or GNOME Terminal when available +- Installing the MesloLGS Nerd Font required for the prompt on macOS when available - Linking configuration files from `~/.local/share/mybash` to your home directory - Linking the fastfetch config to `~/.config/fastfetch/config.jsonc` - Ensuring `~/.bash_profile` initializes Homebrew on macOS @@ -51,6 +54,20 @@ bash --version `$SHELL` should point to the Homebrew Bash path, such as `/opt/homebrew/bin/bash` on Apple Silicon or `/usr/local/bin/bash` on Intel Macs. On Linux, ensure you have the required permissions and a supported package manager. +## Switching Color Palettes + +Use `starship-theme` to recolor the prompt without changing its layout: + +```bash +starship-theme # interactive picker +starship-theme fedora # apply a palette directly +starship-theme list # list available palettes +``` + +Available palettes include Ubuntu, Claude, Arch, Fedora, Debian, Mint, Manjaro, Pop!_OS, Kali, Gentoo, Dracula, and the original Nord theme. + +![Starship color palettes](assets/palettes.png) + ## Uninstallation To uninstall the `.bashrc` configuration, run: @@ -59,13 +76,18 @@ To uninstall the `.bashrc` configuration, run: cd mybash chmod +x uninstall.sh ./uninstall.sh +./uninstall.sh --keep-deps ``` +Use `--keep-deps` to remove the mybash configuration while retaining installed software and fonts. + The `uninstall.sh` script reverses the installation process by: - Removing installed dependencies - Uninstalling fonts - Removing symbolic links to configuration files +- Restoring the `.bashrc` backup created during installation +- Restoring previous Ptyxis or GNOME Terminal font settings - Deleting the `~/.local/share/mybash` directory - Cleaning up additional utilities like `starship`, `fzf`, and `zoxide` diff --git a/assets/palettes.png b/assets/palettes.png new file mode 100644 index 0000000000000000000000000000000000000000..a7e4b6bde54d965e969d10e1f889fc85dfa9e451 GIT binary patch literal 106711 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

j}kY*VkObUbH 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 literal 0 HcmV?d00001 diff --git a/setup.sh b/setup.sh index 3a050f5..bcf1345 100755 --- a/setup.sh +++ b/setup.sh @@ -5,6 +5,9 @@ set -eu SCRIPT_DIR=$(unset CDPATH && cd -- "$(dirname -- "$0")" && pwd -P) OS_NAME=$(uname -s 2>/dev/null || echo unknown) MYBASHDIR="$HOME/.local/share/mybash" +NERD_FONT_FAMILY="JetBrainsMono Nerd Font" +NERD_FONT_SIZE=12 +NERD_FONT_URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz" if command -v tput >/dev/null 2>&1 && [ -t 1 ]; then RC=$(tput sgr0) @@ -138,24 +141,24 @@ ensure_homebrew_bash_macos() { install_dependencies_linux() { if command_exists nala; then - sudo_cmd nala install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide + sudo_cmd nala install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide curl fontconfig tar xz-utils elif command_exists apt-get; then sudo_cmd apt-get update - sudo_cmd apt-get install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide + sudo_cmd apt-get install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide curl fontconfig tar xz-utils elif command_exists dnf; then - sudo_cmd dnf install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide + sudo_cmd dnf install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide curl fontconfig tar xz elif command_exists yum; then - sudo_cmd yum install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide + sudo_cmd yum install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide curl fontconfig tar xz elif command_exists pacman; then - sudo_cmd pacman -S --needed bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide + sudo_cmd pacman -S --needed bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide curl fontconfig tar xz elif command_exists zypper; then - sudo_cmd zypper install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide + sudo_cmd zypper install -y bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide curl fontconfig tar xz elif command_exists emerge; then - sudo_cmd emerge --ask=n app-shells/bash-completion sys-apps/bat app-text/tree app-text/multitail app-misc/fastfetch app-editors/neovim app-misc/trash-cli app-shells/fzf app-shells/zoxide + sudo_cmd emerge --ask=n app-shells/bash-completion sys-apps/bat app-text/tree app-text/multitail app-misc/fastfetch app-editors/neovim app-misc/trash-cli app-shells/fzf app-shells/zoxide net-misc/curl media-libs/fontconfig app-arch/tar app-arch/xz-utils elif command_exists xbps-install; then - sudo_cmd xbps-install -Sy bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide + sudo_cmd xbps-install -Sy bash-completion bat tree multitail fastfetch neovim trash-cli fzf zoxide curl fontconfig tar xz elif command_exists nix-env; then - nix-env -iA nixpkgs.bash-completion nixpkgs.bat nixpkgs.tree nixpkgs.multitail nixpkgs.fastfetch nixpkgs.neovim nixpkgs.trash-cli nixpkgs.fzf nixpkgs.zoxide + nix-env -iA nixpkgs.bash-completion nixpkgs.bat nixpkgs.tree nixpkgs.multitail nixpkgs.fastfetch nixpkgs.neovim nixpkgs.trash-cli nixpkgs.fzf nixpkgs.zoxide nixpkgs.curl nixpkgs.fontconfig nixpkgs.gnutar nixpkgs.xz else print_colored "$RED" "Can't find a supported package manager." return 1 @@ -177,6 +180,122 @@ install_dependencies() { esac } +install_starship_linux() { + [ "$OS_NAME" = Linux ] || return 0 + + if command_exists starship; then + return 0 + fi + + print_colored "$YELLOW" "Installing Starship..." + mkdir -p "$HOME/.local/bin" + starship_installer=$(mktemp) + if ! curl -fsSL https://starship.rs/install.sh -o "$starship_installer"; then + rm -f "$starship_installer" + print_colored "$RED" "Failed to download the Starship installer." + return 1 + fi + if ! sh "$starship_installer" -y -b "$HOME/.local/bin"; then + rm -f "$starship_installer" + print_colored "$RED" "Starship installation failed." + return 1 + fi + rm -f "$starship_installer" +} + +install_nerd_font_linux() { + [ "$OS_NAME" = Linux ] || return 0 + + if fc-list 2>/dev/null | grep -qi "$NERD_FONT_FAMILY"; then + return 0 + fi + + print_colored "$YELLOW" "Installing $NERD_FONT_FAMILY..." + font_temp_dir=$(mktemp -d) + font_archive="$font_temp_dir/JetBrainsMono.tar.xz" + font_unpack_dir="$font_temp_dir/unpacked" + font_dir="$HOME/.local/share/fonts/JetBrainsMonoNerdFont" + mkdir -p "$font_unpack_dir" "$font_dir" + + if ! curl -fsSL "$NERD_FONT_URL" -o "$font_archive"; then + rm -rf "$font_temp_dir" + print_colored "$RED" "Failed to download $NERD_FONT_FAMILY." + return 1 + fi + if ! tar -xJf "$font_archive" -C "$font_unpack_dir"; then + rm -rf "$font_temp_dir" + print_colored "$RED" "Failed to extract $NERD_FONT_FAMILY." + return 1 + fi + + find "$font_unpack_dir" -type f -name 'JetBrainsMonoNerdFont-*.ttf' -exec cp {} "$font_dir"/ \; + font_found= + for font_file in "$font_dir"/*.ttf; do + if [ -f "$font_file" ]; then + font_found=1 + break + fi + done + rm -rf "$font_temp_dir" + + if [ -z "$font_found" ]; then + print_colored "$RED" "No standard JetBrainsMono Nerd Font files were found in the archive." + return 1 + fi + + fc-cache -f >/dev/null 2>&1 + print_colored "$GREEN" "$NERD_FONT_FAMILY installed." +} + +configure_terminal_font_linux() { + [ "$OS_NAME" = Linux ] || return 0 + + if ! command_exists gsettings; then + print_colored "$YELLOW" "Set your terminal font to '$NERD_FONT_FAMILY' manually." + return 0 + fi + + terminal_schemas=$(gsettings list-schemas 2>/dev/null || true) + terminal_configured=0 + + if printf '%s\n' "$terminal_schemas" | grep -q '^org.gnome.Ptyxis$'; then + ptyxis_backup="$MYBASHDIR/terminal-font-ptyxis.backup" + if [ ! -f "$ptyxis_backup" ]; then + { + printf 'use-system-font=%s\n' "$(gsettings get org.gnome.Ptyxis use-system-font)" + printf 'font-name=%s\n' "$(gsettings get org.gnome.Ptyxis font-name)" + } >"$ptyxis_backup" + fi + gsettings set org.gnome.Ptyxis use-system-font false + gsettings set org.gnome.Ptyxis font-name "$NERD_FONT_FAMILY $NERD_FONT_SIZE" + terminal_configured=1 + fi + + if printf '%s\n' "$terminal_schemas" | grep -q '^org.gnome.Terminal.ProfilesList$'; then + gnome_profile=$(gsettings get org.gnome.Terminal.ProfilesList default 2>/dev/null | tr -d "'") + if [ -n "$gnome_profile" ]; then + gnome_schema="org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$gnome_profile/" + gnome_backup="$MYBASHDIR/terminal-font-gnome.backup" + if [ ! -f "$gnome_backup" ]; then + { + printf 'profile=%s\n' "$gnome_profile" + printf 'use-system-font=%s\n' "$(gsettings get "$gnome_schema" use-system-font)" + printf 'font=%s\n' "$(gsettings get "$gnome_schema" font)" + } >"$gnome_backup" + fi + gsettings set "$gnome_schema" use-system-font false + gsettings set "$gnome_schema" font "$NERD_FONT_FAMILY $NERD_FONT_SIZE" + terminal_configured=1 + fi + fi + + if [ "$terminal_configured" -eq 1 ]; then + print_colored "$GREEN" "Configured the terminal to use $NERD_FONT_FAMILY." + else + print_colored "$YELLOW" "Set your terminal font to '$NERD_FONT_FAMILY' manually." + fi +} + backup_existing() { target=$1 if [ -e "$target" ] || [ -L "$target" ]; then @@ -250,17 +369,22 @@ install_configs() { cp -p "$SCRIPT_DIR/README.md" "$MYBASHDIR/README.md" cp -p "$SCRIPT_DIR/setup.sh" "$MYBASHDIR/setup.sh" cp -p "$SCRIPT_DIR/uninstall.sh" "$MYBASHDIR/uninstall.sh" - chmod +x "$MYBASHDIR/setup.sh" "$MYBASHDIR/uninstall.sh" + cp -p "$SCRIPT_DIR/starship-theme" "$MYBASHDIR/starship-theme" + chmod +x "$MYBASHDIR/setup.sh" "$MYBASHDIR/uninstall.sh" "$MYBASHDIR/starship-theme" link_file "$MYBASHDIR/.bashrc" "$HOME/.bashrc" link_file "$MYBASHDIR/starship.toml" "$HOME/.config/starship.toml" link_file "$MYBASHDIR/config.jsonc" "$HOME/.config/fastfetch/config.jsonc" + link_file "$MYBASHDIR/starship-theme" "$HOME/.local/bin/starship-theme" ensure_homebrew_bash_macos ensure_bash_profile_brew_shellenv ensure_bash_profile_sources_bashrc } install_dependencies +install_starship_linux +install_nerd_font_linux install_configs +configure_terminal_font_linux print_colored "$GREEN" "Installation complete. Restart your shell or run: source ~/.bashrc" diff --git a/starship-theme b/starship-theme new file mode 100755 index 0000000..845b4af --- /dev/null +++ b/starship-theme @@ -0,0 +1,124 @@ +#!/usr/bin/env bash + +set -euo pipefail + +DEST="${STARSHIP_CONFIG:-$HOME/.config/starship.toml}" +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)" + +SLOTS=(3B4252 434C5E 4C566A 86BBD8 06969A 33658A) + +declare -A THEMES=( + [ubuntu]="772953 E95420 77216F 5E2750 772953 E95420" + [nord]="3B4252 434C5E 4C566A 86BBD8 06969A 33658A" + [arch]="2E3B43 1793D1 0F5E8C 33A4DB 0C4A6E 1793D1" + [fedora]="2B3A67 3C6EB4 294172 51A2DA 1D2D52 3C6EB4" + [debian]="4A0E22 D70A53 A80030 E0467A 6E0024 D70A53" + [mint]="264A20 4E9A06 2E6B08 87CF3E 1C3817 4E9A06" + [manjaro]="123B22 16A085 0E7A5F 35BF5C 0C2D1A 16A085" + [popos]="2B3539 2C7A85 1F5A63 48B9C7 24414A FAA05A" + [claude]="2B2A28 C15F3C 8A4A30 D9A87E 6B4232 C15F3C" + [kali]="12233A 2777FF 17539E 4D8DFF 0E2A5E 2777FF" + [gentoo]="2E2A40 62548E 4A3F73 9B8AC4 39305C 62548E" + [dracula]="6272A4 BD93F9 FF79C6 8BE9FD 50FA7B BD93F9" +) + +ORDER=(ubuntu claude arch fedora debian mint manjaro popos kali gentoo dracula nord) + +error() { + printf 'starship-theme: %s\n' "$*" >&2 +} + +find_base() { + local candidate slot valid + local -a candidates=() + + if [[ -n ${STARSHIP_THEME_BASE:-} ]]; then + candidates+=("$STARSHIP_THEME_BASE") + fi + candidates+=( + "$SCRIPT_DIR/starship.toml" + "$HOME/.local/share/mybash/starship.toml" + ) + + for candidate in "${candidates[@]}"; do + [[ -f $candidate ]] || continue + valid=1 + for slot in "${SLOTS[@]}"; do + if ! grep -q "#$slot" "$candidate"; then + valid=0 + break + fi + done + if ((valid)); then + printf '%s\n' "$candidate" + return 0 + fi + done + + return 1 +} + +list_themes() { + local theme + printf 'Available palettes:\n' + for theme in "${ORDER[@]}"; do + printf ' %s\n' "$theme" + done +} + +apply_theme() { + local name=$1 base temp_file index + local -a colors sed_args + + if [[ -z ${THEMES[$name]+set} ]]; then + error "unknown palette: $name" + list_themes >&2 + return 1 + fi + + base=$(find_base) || { + error "no pristine mybash starship.toml was found" + return 1 + } + read -ra colors <<<"${THEMES[$name]}" + mkdir -p "$(dirname -- "$DEST")" + temp_file=$(mktemp "${DEST}.tmp.XXXXXX") + + for index in "${!SLOTS[@]}"; do + sed_args+=(-e "s/#${SLOTS[$index]}/#${colors[$index]}/g") + done + + if ! sed "${sed_args[@]}" "$base" >"$temp_file"; then + rm -f "$temp_file" + error "failed to build the $name palette" + return 1 + fi + mv -f "$temp_file" "$DEST" + printf 'Applied "%s" palette to %s\n' "$name" "$DEST" +} + +main() { + local choice=${1:-} + + case $choice in + list | -l | --list) + list_themes + ;; + "") + if command -v fzf >/dev/null 2>&1; then + choice=$(printf '%s\n' "${ORDER[@]}" | fzf --prompt='Pick a palette: ' --height=40% --reverse) || return 0 + else + printf 'Pick a palette:\n' + select choice in "${ORDER[@]}"; do + [[ -n $choice ]] && break + done + fi + [[ -n $choice ]] && apply_theme "$choice" + ;; + *) + apply_theme "$choice" + ;; + esac +} + +main "$@" diff --git a/uninstall.sh b/uninstall.sh index c917477..9c46b9a 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -86,16 +86,16 @@ uninstall_dependencies() { } uninstall_font() { - FONT_NAME="MesloLGS Nerd Font Mono" - FONT_DIR="$HOME/.local/share/fonts/$FONT_NAME" - - if [ -d "$FONT_DIR" ]; then - print_colored "$YELLOW" "Removing font: $FONT_NAME" - rm -rf "$FONT_DIR" - fc-cache -fv - print_colored "$GREEN" "Font removed: $FONT_NAME" - else - print_colored "$YELLOW" "Font not found: $FONT_NAME" + for FONT_DIR in \ + "$HOME/.local/share/fonts/JetBrainsMonoNerdFont" \ + "$HOME/.local/share/fonts/MesloLGS Nerd Font Mono"; do + if [ -d "$FONT_DIR" ]; then + print_colored "$YELLOW" "Removing font directory: $FONT_DIR" + rm -rf "$FONT_DIR" + fi + done + if command_exists fc-cache; then + fc-cache -f >/dev/null 2>&1 || true fi } @@ -131,11 +131,20 @@ remove_configs() { print_colored "$YELLOW" "Removing configuration files..." - # Remove .bashrc symlink and restore backup if it exists + # Remove the managed .bashrc symlink and restore the newest timestamped backup. if [ -L "$USER_HOME/.bashrc" ]; then rm "$USER_HOME/.bashrc" + BASHRC_BACKUP= if [ -f "$USER_HOME/.bashrc.bak" ]; then - mv "$USER_HOME/.bashrc.bak" "$USER_HOME/.bashrc" + BASHRC_BACKUP="$USER_HOME/.bashrc.bak" + fi + for BACKUP_CANDIDATE in "$USER_HOME"/.bashrc.bak.*; do + if [ -f "$BACKUP_CANDIDATE" ]; then + BASHRC_BACKUP=$BACKUP_CANDIDATE + fi + done + if [ -n "$BASHRC_BACKUP" ]; then + mv "$BASHRC_BACKUP" "$USER_HOME/.bashrc" print_colored "$GREEN" "Restored original .bashrc" fi fi @@ -145,10 +154,50 @@ remove_configs() { # Remove fastfetch config rm -f "$USER_HOME/.config/fastfetch/config.jsonc" + rm -f "$USER_HOME/.local/bin/starship-theme" print_colored "$GREEN" "Configuration files removed" } +restore_terminal_font() { + if ! command_exists gsettings; then + return 0 + fi + + FONT_BACKUP_DIR="$USER_HOME/.local/share/mybash" + PTYXIS_BACKUP="$FONT_BACKUP_DIR/terminal-font-ptyxis.backup" + GNOME_BACKUP="$FONT_BACKUP_DIR/terminal-font-gnome.backup" + + if [ -f "$PTYXIS_BACKUP" ]; then + while IFS='=' read -r FONT_KEY FONT_VALUE; do + case $FONT_KEY in + use-system-font | font-name) + gsettings set org.gnome.Ptyxis "$FONT_KEY" "$FONT_VALUE" 2>/dev/null || true + ;; + esac + done <"$PTYXIS_BACKUP" + print_colored "$GREEN" "Restored the previous Ptyxis font settings" + fi + + if [ -f "$GNOME_BACKUP" ]; then + GNOME_PROFILE= + while IFS='=' read -r FONT_KEY FONT_VALUE; do + case $FONT_KEY in + profile) + GNOME_PROFILE=$FONT_VALUE + ;; + use-system-font | font) + if [ -n "$GNOME_PROFILE" ]; then + GNOME_SCHEMA="org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$GNOME_PROFILE/" + gsettings set "$GNOME_SCHEMA" "$FONT_KEY" "$FONT_VALUE" 2>/dev/null || true + fi + ;; + esac + done <"$GNOME_BACKUP" + print_colored "$GREEN" "Restored the previous GNOME Terminal font settings" + fi +} + remove_mybash_data() { if [ -d "$MYBASHDIR" ]; then print_colored "$YELLOW" "Removing mybash data directory..." @@ -157,14 +206,39 @@ remove_mybash_data() { fi } +# Argument parsing +KEEP_DEPS=0 +for ARG in "$@"; do + case $ARG in + --keep-deps) + KEEP_DEPS=1 + ;; + -h | --help) + printf '%s\n' "Usage: ./uninstall.sh [--keep-deps]" + printf '%s\n' "" + printf '%s\n' " --keep-deps Remove mybash configuration but keep installed software and fonts." + exit 0 + ;; + *) + printf 'Unknown option: %s\n' "$ARG" >&2 + exit 2 + ;; + esac +done + # Main execution -determine_package_manager -determine_sudo_command -uninstall_dependencies -uninstall_font -uninstall_starship_and_fzf -uninstall_zoxide +if [ "$KEEP_DEPS" -eq 0 ]; then + determine_package_manager + determine_sudo_command + uninstall_dependencies + uninstall_font + uninstall_starship_and_fzf + uninstall_zoxide +else + print_colored "$YELLOW" "Keeping installed software and fonts." +fi remove_configs +restore_terminal_font remove_mybash_data print_colored "$GREEN" "Uninstallation complete. Please restart your shell for changes to take effect."