mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-03 17:41:58 +02:00
feat: Everything in the home folder under steamify (state, scripts, icon), moved once from the old name
This commit is contained in:
1 parent
2e0881b4fa
commit
479b70b337
10 files changed
+113
-20
No files matched your search
+59
-1
@@ -5,7 +5,11 @@
|
||||
# deletes the key if it didn't exist before).
|
||||
# Sourced by steamify.sh; not meant to be run on its own.
|
||||
|
||||
STATE_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/cachyos-gamescope-boot"
|
||||
STATE_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/steamify"
|
||||
# Steamify's own files in the home folder: the app (app/, from
|
||||
# steamify-app.sh) and the shortcut's and notifier's scripts (bin/).
|
||||
STEAMIFY_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/steamify"
|
||||
STEAMIFY_BIN="$STEAMIFY_DATA/bin"
|
||||
UNSET=$'\x01'
|
||||
|
||||
kset() {
|
||||
@@ -77,3 +81,57 @@ state_clear() {
|
||||
current_display_manager() {
|
||||
systemctl show -p Id --value display-manager 2>/dev/null | sed 's/\.service$//'
|
||||
}
|
||||
|
||||
migrate_dir() {
|
||||
# migrate_dir <old> <new>: moves <old> to <new> and leaves a symlink.
|
||||
# When both exist (an older release ran after a newer one), what <new>
|
||||
# lacks is moved over; a file in both keeps <new>'s copy and <old> stays
|
||||
# as it is. Returns 0 when something moved.
|
||||
local old="$1" new="$2" f moved=1
|
||||
[[ -d "$old" && ! -L "$old" ]] || return 1
|
||||
if [[ ! -e "$new" ]]; then
|
||||
mkdir -p "$(dirname "$new")"
|
||||
mv "$old" "$new" && ln -s "$new" "$old"
|
||||
return 0
|
||||
fi
|
||||
for f in "$old"/* "$old"/.[!.]*; do
|
||||
[[ -e "$f" || -L "$f" ]] || continue
|
||||
[[ -e "$new/${f##*/}" ]] && continue
|
||||
mv "$f" "$new/" && moved=0
|
||||
done
|
||||
rmdir "$old" 2>/dev/null && ln -s "$new" "$old"
|
||||
return "$moved"
|
||||
}
|
||||
|
||||
migrate_layout() {
|
||||
# Before 2.5.0 the state and scripts were under the project's old name
|
||||
# (cachyos-gamescope-boot). Moved once; the old names stay as symlinks,
|
||||
# so an older release that still runs finds the same state.
|
||||
local old_state="${XDG_STATE_HOME:-$HOME/.local/state}/cachyos-gamescope-boot"
|
||||
local old_bin="${XDG_DATA_HOME:-$HOME/.local/share}/cachyos-gamescope-boot"
|
||||
local old_icon="${XDG_DATA_HOME:-$HOME/.local/share}/icons/hicolor/scalable/apps/cachyos-gamescope-boot-wizard.svg"
|
||||
local f
|
||||
# Links left pointing at nothing once their component was turned off.
|
||||
for f in "$old_state" "$old_bin"; do [[ -L "$f" && ! -e "$f" ]] && rm -f "$f"; done
|
||||
migrate_dir "$old_state" "$STATE_DIR"
|
||||
if migrate_dir "$old_bin" "$STEAMIFY_BIN"; then
|
||||
# The notifier had the old paths built in; its unit and the
|
||||
# shortcut's entries point at the scripts.
|
||||
[[ -f "$STEAMIFY_BIN/steamify-notifier" ]] &&
|
||||
patch_file steamify-notifier.py | install_executable "$STEAMIFY_BIN/steamify-notifier" 755
|
||||
for f in "$NOTIFY_UNITS/$NOTIFY_NAME.service" "$WIZARD_APP_ENTRY" "$WIZARD_TERMINAL_ENTRY" \
|
||||
"$(wizard_desktop_dir)/$WIZARD_DESKTOP_NAME"; do
|
||||
[[ -f "$f" ]] && sed -i "s|$old_bin/|$STEAMIFY_BIN/|g" "$f"
|
||||
done
|
||||
systemctl --user daemon-reload 2>/dev/null
|
||||
fi
|
||||
if [[ -f "$old_icon" ]]; then
|
||||
if [[ -e "$WIZARD_ICON" ]]; then rm -f "$old_icon"; else mv "$old_icon" "$WIZARD_ICON"; fi
|
||||
gtk-update-icon-cache -q -f -t "$(dirname "$(dirname "$(dirname "$WIZARD_ICON")")")" 2>/dev/null || true
|
||||
fi
|
||||
for f in "$WIZARD_APP_ENTRY" "$WIZARD_TERMINAL_ENTRY" "$(wizard_desktop_dir)/$WIZARD_DESKTOP_NAME"; do
|
||||
[[ -f "$f" ]] && grep -q '^Icon=cachyos-gamescope-boot-wizard$' "$f" &&
|
||||
sed -i 's|^Icon=cachyos-gamescope-boot-wizard$|Icon=steamify|' "$f"
|
||||
done
|
||||
return 0
|
||||
}
|
||||
Reference in new issue
Block a user