aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/lib_copy.sh
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2026-07-10 11:21:24 -0700
committerPinapelz <yukais@pinapelz.com>2026-07-10 11:21:24 -0700
commit24de2a31a52d17b6f7214197bdbfeab7428742dd (patch)
treef7736c4712d5a394525a3da2f2b4294e81ba9540 /scripts/lib_copy.sh
parent861bf5be200bfcf2440fec4cda911d29ec18493f (diff)
parentbca86bbec4757cec1f6f5bdea2ed210542f10fae (diff)
Merge remote-tracking branch 'upstream'
Diffstat (limited to 'scripts/lib_copy.sh')
-rw-r--r--scripts/lib_copy.sh87
1 files changed, 61 insertions, 26 deletions
diff --git a/scripts/lib_copy.sh b/scripts/lib_copy.sh
index 9a1c0444..f31ca1a8 100644
--- a/scripts/lib_copy.sh
+++ b/scripts/lib_copy.sh
@@ -12,10 +12,10 @@ copy_phase1() {
local base="${DOTFILES_DIR:-.}"
local dirs="fastfetch kitty rofi swaync"
for DIR2 in $dirs; do
- local DIRPATH="$HOME/.config/$DIR2"
+ local DIRPATH="${XDG_CONFIG_HOME:-$HOME/.config}/$DIR2"
if [ -d "$DIRPATH" ]; then
while true; do
- printf "\n${INFO:-[INFO]} Found ${YELLOW:-}$DIR2${RESET:-} config found in ~/.config/\n"
+ printf "\n${INFO:-[INFO]} Found ${YELLOW:-}$DIR2${RESET:-} config found in ${XDG_CONFIG_HOME:-$HOME/.config}/\n"
echo -n "${CAT:-[ACTION]} Do you want to replace ${YELLOW:-}$DIR2${RESET:-} config? (y/n): "
read DIR1_CHOICE
case "$DIR1_CHOICE" in
@@ -23,17 +23,17 @@ copy_phase1() {
BACKUP_DIR=$(get_backup_dirname)
mv "$DIRPATH" "$DIRPATH-backup-$BACKUP_DIR" 2>&1 | tee -a "$log"
echo -e "${NOTE:-[NOTE]} - Backed up $DIR2 to $DIRPATH-backup-$BACKUP_DIR." 2>&1 | tee -a "$log"
- cp -r "$base/config/$DIR2" "$HOME/.config/$DIR2" 2>&1 | tee -a "$log"
+ cp -r "$base/config/$DIR2" "${XDG_CONFIG_HOME:-$HOME/.config}/$DIR2" 2>&1 | tee -a "$log"
echo -e "${OK:-[OK]} - Replaced $DIR2 with new configuration." 2>&1 | tee -a "$log"
if [ "$DIR2" = "rofi" ]; then
if [ -d "$DIRPATH-backup-$BACKUP_DIR/themes" ]; then
for file in "$DIRPATH-backup-$BACKUP_DIR/themes"/*; do
[ -e "$file" ] || continue
- cp -n "$file" "$HOME/.config/rofi/themes/" >>"$log" 2>&1 || true
+ cp -n "$file" "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/" >>"$log" 2>&1 || true
done || true
fi
if [ -f "$DIRPATH-backup-$BACKUP_DIR/0-shared-fonts.rasi" ]; then
- cp "$DIRPATH-backup-$BACKUP_DIR/0-shared-fonts.rasi" "$HOME/.config/rofi/0-shared-fonts.rasi" >>"$log" 2>&1
+ cp "$DIRPATH-backup-$BACKUP_DIR/0-shared-fonts.rasi" "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/0-shared-fonts.rasi" >>"$log" 2>&1
fi
fi
break
@@ -46,7 +46,7 @@ copy_phase1() {
esac
done
else
- cp -r "$base/config/$DIR2" "$HOME/.config/$DIR2" 2>&1 | tee -a "$log"
+ cp -r "$base/config/$DIR2" "${XDG_CONFIG_HOME:-$HOME/.config}/$DIR2" 2>&1 | tee -a "$log"
echo -e "${OK:-[OK]} - Copy completed for ${YELLOW:-}$DIR2${RESET:-}" 2>&1 | tee -a "$log"
fi
done
@@ -56,7 +56,7 @@ copy_waybar() {
local log="$1"
local base="${DOTFILES_DIR:-.}"
local DIRW="waybar"
- local DIRPATHw="$HOME/.config/$DIRW"
+ local DIRPATHw="${XDG_CONFIG_HOME:-$HOME/.config}/$DIRW"
if [ -d "$DIRPATHw" ]; then
while true; do
echo -n "${CAT:-[ACTION]} Do you want to replace ${YELLOW:-}$DIRW${RESET:-} config? (y/n): "
@@ -80,23 +80,23 @@ copy_waybar() {
for dir in "$DIRPATHw-backup-$BACKUP_DIR/configs"/*; do
[ -e "$dir" ] || continue
if [ -d "$dir" ]; then
- target_dir="$HOME/.config/waybar/configs/$(basename "$dir")"
- [ -d "$target_dir" ] || cp -r "$dir" "$HOME/.config/waybar/configs/"
+ target_dir="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/$(basename "$dir")"
+ [ -d "$target_dir" ] || cp -r "$dir" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/"
fi
done
for file in "$DIRPATHw-backup-$BACKUP_DIR/configs"/*; do
[ -e "$file" ] || continue
- target_file="$HOME/.config/waybar/configs/$(basename "$file")"
- [ -e "$target_file" ] || cp "$file" "$HOME/.config/waybar/configs/"
+ target_file="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/$(basename "$file")"
+ [ -e "$target_file" ] || cp "$file" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/"
done || true
for file in "$DIRPATHw-backup-$BACKUP_DIR/style"/*; do
[ -e "$file" ] || continue
if [ -d "$file" ]; then
- target_dir="$HOME/.config/waybar/style/$(basename "$file")"
- [ -d "$target_dir" ] || cp -r "$file" "$HOME/.config/waybar/style/"
+ target_dir="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/$(basename "$file")"
+ [ -d "$target_dir" ] || cp -r "$file" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/"
else
- target_file="$HOME/.config/waybar/style/$(basename "$file")"
- [ -e "$target_file" ] || cp "$file" "$HOME/.config/waybar/style/"
+ target_file="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/$(basename "$file")"
+ [ -e "$target_file" ] || cp "$file" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/"
fi
done || true
BACKUP_FILEw="$DIRPATHw-backup-$BACKUP_DIR/UserModules"
@@ -119,16 +119,16 @@ copy_waybar() {
copy_phase2() {
local log="$1"
local base="${DOTFILES_DIR:-.}"
- local DIR="btop cava hypr Kvantum qt5ct qt6ct swappy wallust wlogout yazi"
+ local DIR="btop cava hypr Kvantum qt5ct qt6ct starship swappy wallust wlogout yazi"
for DIR_NAME in $DIR; do
- local DIRPATH="$HOME/.config/$DIR_NAME"
+ local DIRPATH="${XDG_CONFIG_HOME:-$HOME/.config}/$DIR_NAME"
if [ -d "$DIRPATH" ]; then
echo -e "\n${NOTE:-[NOTE]} - Config for ${YELLOW:-}$DIR_NAME${RESET:-} found, attempting to back up."
BACKUP_DIR=$(get_backup_dirname)
mv "$DIRPATH" "$DIRPATH-backup-$BACKUP_DIR" 2>&1 | tee -a "$log"
fi
if [ -d "$base/config/$DIR_NAME" ]; then
- cp -r "$base/config/$DIR_NAME/" "$HOME/.config/$DIR_NAME" 2>&1 | tee -a "$log"
+ cp -r "$base/config/$DIR_NAME/" "${XDG_CONFIG_HOME:-$HOME/.config}/$DIR_NAME" 2>&1 | tee -a "$log"
echo "${OK:-[OK]} - Copy of config for ${YELLOW:-}$DIR_NAME${RESET:-} completed!" 2>&1 | tee -a "$log"
else
echo "${ERROR:-[ERROR]} - Directory config/$DIR_NAME does not exist to copy." 2>&1 | tee -a "$log"
@@ -137,13 +137,48 @@ copy_phase2() {
install_terminal_configs "$log"
}
+ensure_lua_keybinds() {
+ local log="$1"
+ local base="${DOTFILES_DIR:-.}"
+ local src_root="$base/config/hypr"
+ local dst_root="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
+ local copied=0
+ local rel_dir src_dir src_file rel_path dst_file
+
+ for rel_dir in configs UserConfigs lua; do
+ src_dir="$src_root/$rel_dir"
+ [ -d "$src_dir" ] || continue
+
+ while IFS= read -r -d '' src_file; do
+ rel_path="${src_file#$src_root/}"
+ dst_file="$dst_root/$rel_path"
+
+ if [ ! -f "$dst_file" ]; then
+ mkdir -p "$(dirname "$dst_file")"
+ if cp -f "$src_file" "$dst_file" 2>&1 | tee -a "$log"; then
+ copied=1
+ echo "${NOTE:-[NOTE]} - Added missing Lua file: ${YELLOW:-}$rel_path${RESET:-}" 2>&1 | tee -a "$log"
+ else
+ echo "${ERROR:-[ERROR]} - Failed to add missing Lua file: ${YELLOW:-}$rel_path${RESET:-}" 2>&1 | tee -a "$log"
+ fi
+ fi
+ done < <(find "$src_dir" -maxdepth 1 -type f -name '*.lua' -print0)
+ done
+
+ if [ "$copied" -eq 1 ]; then
+ echo "${OK:-[OK]} - Lua fallback copy completed." 2>&1 | tee -a "$log"
+ else
+ echo "${INFO:-[INFO]} - Lua fallback check: no missing Lua files detected." 2>&1 | tee -a "$log"
+ fi
+}
+
# Restore Animations and Monitor Profiles plus key hypr files from backup
restore_hypr_assets() {
local log="$1"
local express_mode="$2"
- local HYPR_DIR="$HOME/.config/hypr"
- local CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
+ local HYPR_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
+ local CONFIG_HOME="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
local BACKUP_DIR
BACKUP_DIR=$(get_backup_dirname)
local BACKUP_HYPR_PATH="$HYPR_DIR-backup-$BACKUP_DIR"
@@ -272,7 +307,7 @@ cleanup_duplicate_userconfigs() {
echo "${INFO:-[INFO]} Running UserConfigs duplicate cleanup for detected version v$current_version (<= 2.3.18)." 2>&1 | tee -a "$log"
- local HYPR_DIR="$HOME/.config/hypr"
+ local HYPR_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
local BASE_DIR="$HYPR_DIR/configs"
local USER_DIR="$HYPR_DIR/UserConfigs"
@@ -389,7 +424,7 @@ restore_user_configs() {
local express_mode="$2"
local old_version="$3"
- local DIRPATH="$HOME/.config/hypr"
+ local DIRPATH="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
local BACKUP_DIR
BACKUP_DIR=$(get_backup_dirname)
local BACKUP_DIR_PATH="$DIRPATH-backup-$BACKUP_DIR/UserConfigs"
@@ -535,7 +570,7 @@ restore_user_scripts() {
local log="$1"
local express_mode="$2"
- local DIRSHPATH="$HOME/.config/hypr"
+ local DIRSHPATH="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
local BACKUP_DIR
BACKUP_DIR=$(get_backup_dirname)
local BACKUP_DIR_PATH_S="$DIRSHPATH-backup-$BACKUP_DIR/UserScripts"
@@ -573,7 +608,7 @@ restore_terminal_configs() {
local log="$1"
local express_mode="$2"
- local GHOSTTY_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty"
+ local GHOSTTY_DIR="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}/ghostty"
local BACKUP_DIR
BACKUP_DIR=$(get_backup_dirname)
local GHOSTTY_BACKUP="$GHOSTTY_DIR-backup-$BACKUP_DIR"
@@ -599,7 +634,7 @@ restore_hypr_files() {
local log="$1"
local express_mode="$2"
- local DIRPATH="$HOME/.config/hypr"
+ local DIRPATH="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
local BACKUP_DIR
BACKUP_DIR=$(get_backup_dirname)
local BACKUP_DIR_PATH_F="$DIRPATH-backup-$BACKUP_DIR"
@@ -611,7 +646,7 @@ restore_hypr_files() {
fi
if [ -d "$BACKUP_DIR_PATH_F" ] && [ "$express_mode" -eq 0 ]; then
- echo -e "${NOTE:-[NOTE]} Restoring some files in ${MAGENTA:-}$HOME/.config/hypr directory${RESET:-}..." 2>&1 | tee -a "$log"
+ echo -e "${NOTE:-[NOTE]} Restoring some files in ${MAGENTA:-}${XDG_CONFIG_HOME:-$HOME/.config}/hypr directory${RESET:-}..." 2>&1 | tee -a "$log"
for FILE_RESTORE in "${FILES_2_RESTORE[@]}"; do
local BACKUP_FILE="$BACKUP_DIR_PATH_F/$FILE_RESTORE"
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage