#!/bin/bash # Define the destination base directory DEST_BASE=/home/someone/.config/yolk/eggs # Create an associative array of all your config mappings declare -A CONFIGS=( ["assets"]="~/.config/assets" ["dconf"]="~/.config/dconf" ["dunst"]="~/.config/dunst" ["htop"]="~/.config/htop" ["hypr"]="~/.config/hypr" ["kitty"]="~/.config/kitty" ["libreoffice"]="~/.config/libreoffice" ["nvtop"]="~/.config/nvtop" ["nwgdrawer"]="~/.config/nwg-drawer" ["openrgb"]="~/.config/OpenRGBB" ["qimgv"]="~/.config/qimgv" ["rofi"]="~/.config/rofi" ["thunar"]="~/.config/Thunar" ["xfce"]="~/.config/xfce4" ["vim"]="~/.config/vim" ["waybar"]="~/.config/waybar" ["yazi"]="~/.config/yazi" ["starship"]="~/.config/starship.toml" ["zsh"]="~/.zshrc" ["scripts"]="~/.micro_scripts" [".mine"]="~/.config/mineapps.list" ["qt5"]="~/.config/qt5ct" ["qt6"]="~/.config/qt6ct" ["gtk2"]="~/.config/gtk-2.0" ["gtk3"]="~/.config/gtk-3.0" ["gtk4"]="~/.config/gtk-4.0" ["icons"]="~/icons" ["themes_lc"]="~/.local/share/themes" ["icons_lc"]="~/.local/share/icons" ) # Create the destination directory if it doesn't exist mkdir -p "$DEST_BASE" # Loop over the configs and move them for key in "${!CONFIGS[@]}"; do src="${CONFIGS[$key]}" src_expanded=$(eval echo "$src") dest="$DEST_BASE/$key" if [ -e "$src_expanded" ]; then echo "Moving $src_expanded to $dest" mkdir -p "$(dirname "$dest")" mv "$src_expanded" "$dest" else echo "Skipping $src_expanded: does not exist." fi done