♻️ refactor(spawn-window): better organize script
Split the icons and colors dictionaries into separate files to keep things managable
This commit is contained in:
+14
-179
@@ -1,5 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Determine the directory of the current script
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Source the icons dictionary
|
||||
source "$SCRIPT_DIR/icons-dict.sh"
|
||||
|
||||
# Source the colors dictionary
|
||||
source "$SCRIPT_DIR/colors-dict.sh"
|
||||
|
||||
# Default values
|
||||
type="tab"
|
||||
title=""
|
||||
@@ -12,180 +21,11 @@ cmd=""
|
||||
cmd_flag=""
|
||||
icon=""
|
||||
|
||||
# Icon dictionary for NerdFont glyphs
|
||||
declare -A icons=(
|
||||
["code"]=" " # Code icon
|
||||
["git"]=" " # Git icon
|
||||
["docs"]=" " # Docs icon
|
||||
["web"]=" " # Web icon
|
||||
["music"]=" " # Music icon
|
||||
["bug"]=" " # Bug icon
|
||||
["info"]=" " # Info icon
|
||||
["question"]=" " # Question icon
|
||||
["warning"]=" " # Warning icon
|
||||
["error"]=" " # Error icon
|
||||
["folder"]=" " # Folder icon
|
||||
["file"]=" " # File icon
|
||||
["lock"]=" " # Lock icon
|
||||
["unlock"]=" " # Unlock icon
|
||||
["key"]=" " # Key icon
|
||||
["search"]=" " # Search icon
|
||||
["clock"]=" " # Clock icon
|
||||
["calendar"]=" " # Calendar icon
|
||||
["download"]=" " # Download icon
|
||||
["vim"]=" " # Vim icon
|
||||
["nvim"]=" " # Neovim icon
|
||||
["neovim"]=" " # Neovim icon
|
||||
["python"]=" " # Python icon
|
||||
["shell"]=" " # Shell icon
|
||||
["rust"]=" " # Rust icon
|
||||
["go"]=" " # Go icon
|
||||
["java"]=" " # Java icon
|
||||
["lua"]=" " # Lua icon
|
||||
["cat"]=" " # Cat icon
|
||||
["dog"]=" " # Dog icon
|
||||
["fish"]=" " # Fish icon
|
||||
["cow"]=" " # Cow icon
|
||||
["bird"]=" " # Bird icon
|
||||
["config"]=" " # Config icon
|
||||
["home"]=" " # Home icon
|
||||
["game"]=" " # Game icon
|
||||
["image"]=" " # Image icon
|
||||
["video"]=" " # Video icon
|
||||
["pdf"]=" " # PDF icon
|
||||
["music2"]=" " # Music2 icon
|
||||
["archive"]=" " # Archive icon
|
||||
["heart"]=" " # Heart icon
|
||||
["md"]=" " # MarkDown icon
|
||||
["apple"]=" " # Apple icon
|
||||
["mac"]=" " # Apple icon
|
||||
["google"]=" " # Google icon
|
||||
["microsoft"]=" " # Microsoft icon
|
||||
["ms"]=" " # Microsoft icon
|
||||
["windows"]=" " # Windows icon
|
||||
["slack"]=" " # Slack icon
|
||||
["linux"]=" " # Linux icon
|
||||
["ubuntu"]=" " # Linux icon
|
||||
["archlinux"]=" " # ArchLinux icon
|
||||
["arch"]=" " # ArchLinux icon
|
||||
["debian"]=" " # Debian icon
|
||||
["fedora"]=" " # Fedora icon
|
||||
["freebsd"]=" " # FreeBSD icon
|
||||
["gentoo"]=" " # Gentoo icon
|
||||
["manjaro"]=" " # Manjaro icon
|
||||
["nixos"]=" " # NixOS icon
|
||||
["opensuse"]=" " # OpenSUSE icon
|
||||
["suse"]=" " # OpenSUSE icon
|
||||
["redhat"]=" " # RedHat icon
|
||||
["centos"]=" " # RedHat icon
|
||||
["endeavoros"]=" " # EndeavorOS icon
|
||||
["endeavor"]=" " # EndeavorOS icon
|
||||
["eos"]=" " # EndeavorOS icon
|
||||
["github"]=" " # GitHub icon
|
||||
["gh"]=" " # GitHub icon
|
||||
["youtube"]=" " # YouTube icon
|
||||
["yt"]=" " # YouTube icon
|
||||
["poop"]=" " # Poop icon
|
||||
["sun"]=" " # Sun icon
|
||||
["moon"]=" " # Moon icon
|
||||
["rain"]=" " # Rain icon
|
||||
["cloud"]=" " # Cloud icon
|
||||
["alien"]=" " # Alien icon
|
||||
["lightbulb"]=" " # Lightbulb icon
|
||||
["lightning"]=" " # Lightning icon
|
||||
["night"]=" " # Night icon
|
||||
["day"]=" " # Day icon
|
||||
["chat"]=" " # Chat icon
|
||||
["mail"]=" " # Mail icon
|
||||
["terminal"]=" " # Terminal icon
|
||||
["sleep"]=" " # Sleep icon
|
||||
["bed"]=" " # Sleep icon
|
||||
["note"]=" " # Note icon
|
||||
["notes"]=" " # Note icon
|
||||
["fire"]=" " # Fire icon
|
||||
["trash"]=" " # Trash icon
|
||||
["garbage"]=" " # Trash icon
|
||||
["trashcan"]=" " # Trash icon
|
||||
["recycle"]=" " # Trash icon
|
||||
["water"]=" " # Water icon
|
||||
["beer"]=" " # Beer icon
|
||||
["coffee"]=" " # Coffee icon
|
||||
["cake"]=" " # Cake icon
|
||||
["package"]=" " # Package icon
|
||||
["inbox"]=" " # Inbox icon
|
||||
["outbox"]=" " # Outbox icon
|
||||
["scissors"]=" " # Scissors icon
|
||||
["stats"]=" " # Stats icon
|
||||
["database"]=" " # Database icon
|
||||
["link"]=" " # Link icon
|
||||
["flag"]=" " # Flag icon
|
||||
["pizza"]=" " # Pizza icon
|
||||
["burger"]=" " # Burger icon
|
||||
["success"]=" " # Success icon
|
||||
["fail"]=" " # Fail icon
|
||||
["warn"]=" " # Warn icon
|
||||
["alert"]=" " # Warn icon
|
||||
["car"]=" " # Car icon
|
||||
["bicycle"]=" " # Bicycle icon
|
||||
["bike"]=" " # Bicycle icon
|
||||
["airplane"]=" " # Airplane icon
|
||||
["plane"]=" " # Airplane icon
|
||||
["boat"]=" " # Boat icon
|
||||
["sailboat"]=" " # Boat icon
|
||||
["ship"]=" " # Ship icon
|
||||
["shipit"]=" " # Ship icon
|
||||
["train"]=" " # Train icon
|
||||
["subway"]=" " # Subway icon
|
||||
["bus"]=" " # Bus icon
|
||||
["motorbike"]=" " # Motorcycle icon
|
||||
["motorcycle"]=" " # Motorcycle icon
|
||||
["truck"]=" " # Truck icon
|
||||
)
|
||||
|
||||
# Catppuccin Macchiato color palette with additional common colors
|
||||
# Function to convert color names to hex codes
|
||||
convert_color() {
|
||||
case "$1" in
|
||||
rosewater) echo "#f4dbd6" ;;
|
||||
flamingo) echo "#f0c6c6" ;;
|
||||
pink) echo "#f5bde6" ;;
|
||||
mauve) echo "#c6a0f6" ;;
|
||||
red) echo "#ed8796" ;;
|
||||
maroon) echo "#ee99a0" ;;
|
||||
peach) echo "#f5a97f" ;;
|
||||
yellow) echo "#eed49f" ;;
|
||||
green) echo "#a6da95" ;;
|
||||
teal) echo "#8bd5ca" ;;
|
||||
sky) echo "#91d7e3" ;;
|
||||
sapphire) echo "#7dc4e4" ;;
|
||||
blue) echo "#8aadf4" ;;
|
||||
lavender) echo "#b7bdf8" ;;
|
||||
text) echo "#cad3f5" ;;
|
||||
subtext1) echo "#b8c0e0" ;;
|
||||
subtext0) echo "#a5adcb" ;;
|
||||
overlay2) echo "#939ab7" ;;
|
||||
overlay1) echo "#8087a2" ;;
|
||||
overlay0) echo "#6e738d" ;;
|
||||
surface2) echo "#5b6078" ;;
|
||||
surface1) echo "#494d64" ;;
|
||||
surface0) echo "#363a4f" ;;
|
||||
base) echo "#24273a" ;;
|
||||
mantle) echo "#1e2030" ;;
|
||||
crust) echo "#181926" ;;
|
||||
black) echo "#181926" ;; # Crust
|
||||
white) echo "#cad3f5" ;; # Text
|
||||
gray) echo "#6e738d" ;; # Overlay0
|
||||
grey) echo "#6e738d" ;; # Overlay0
|
||||
silver) echo "#a5adcb" ;; # Subtext0
|
||||
orange) echo "#f5a97f" ;; # Peach
|
||||
brown) echo "#24273a" ;; # Base
|
||||
purple) echo "#b7bdf8" ;; # Lavender
|
||||
cyan) echo "#91d7e3" ;; # Sky
|
||||
magenta) echo "#f5bde6" ;; # Pink
|
||||
gold) echo "#eed49f" ;; # Yellow
|
||||
*) echo "$1" ;; # If not a recognized color, assume it's already a hex code
|
||||
esac
|
||||
local color_name="$1"
|
||||
echo "${colors[$color_name]:-$color_name}"
|
||||
}
|
||||
|
||||
# Function to show usage
|
||||
usage() {
|
||||
echo "Usage: $0 [options] [command]"
|
||||
@@ -317,13 +157,8 @@ esac
|
||||
|
||||
# Set the title with the icon if provided
|
||||
if [[ -n "$icon" ]]; then
|
||||
if [[ "$type" == "tab" ]]; then
|
||||
title_with_icon="$icon $title"
|
||||
title_without_icon="$title"
|
||||
else
|
||||
title_with_icon="$icon $title"
|
||||
title_without_icon="$title"
|
||||
fi
|
||||
title_with_icon="$icon$title"
|
||||
title_without_icon="$title"
|
||||
else
|
||||
title_with_icon="$title"
|
||||
title_without_icon="$title"
|
||||
|
||||
Reference in New Issue
Block a user