summaryrefslogtreecommitdiff
path: root/raveos-center/adat
diff options
context:
space:
mode:
authorNippy <nippy@Beller-Mac-mini.lan>2026-11-02 14:52:58 +0100
committerNippy <nippy@Beller-Mac-mini.lan>2026-11-02 14:52:58 +0100
commitcdb89e6ede34118d8decb9b586135936cba3fb81 (patch)
tree87c45cae9a07526197d9c742b5c2517487478564 /raveos-center/adat
parent1de3b1015d67a93f39ce74f39c9c2ae0300bc3a9 (diff)
downloadRaveOS-PKGBUILD-cdb89e6ede34118d8decb9b586135936cba3fb81.tar.gz
RaveOS-PKGBUILD-cdb89e6ede34118d8decb9b586135936cba3fb81.zip
Discord fixHEADmain
Diffstat (limited to 'raveos-center/adat')
-rwxr-xr-xraveos-center/adat/actions/discord.sh88
1 files changed, 67 insertions, 21 deletions
diff --git a/raveos-center/adat/actions/discord.sh b/raveos-center/adat/actions/discord.sh
index cf728be..9b626b3 100755
--- a/raveos-center/adat/actions/discord.sh
+++ b/raveos-center/adat/actions/discord.sh
@@ -51,10 +51,10 @@ remove_installed_packages() {
find_discord_dirs() {
local d
for d in "$HOME"/.config/discord/app-*/resources/app.asar; do
- [[ -f "$d" ]] && printf '%s\n' "$(dirname "$(dirname "$d")")"
+ [[ -e "$d" ]] && printf '%s\n' "$(dirname "$(dirname "$d")")"
done
for d in "$HOME/.local/share/discord" "$HOME/.local/share/Discord" /usr/lib/discord /opt/discord; do
- [[ -f "$d/resources/app.asar" ]] && printf '%s\n' "$d"
+ [[ -e "$d/resources/app.asar" ]] && printf '%s\n' "$d"
done
}
@@ -62,12 +62,18 @@ if [[ "$ACTION" == "remove" ]]; then
echo "Removing Discord + Vencord for $USER..."
while IFS= read -r dir; do
[[ -n "$dir" ]] || continue
- run_as_user /usr/local/bin/VencordInstallerCli-linux -uninstall -location "$dir" 2>/dev/null || true
- run_as_user /usr/local/bin/VencordInstallerCli-linux -uninstall-openasar -location "$dir" 2>/dev/null || true
+ run_as_user /usr/local/bin/VencordInstallerCli-linux -uninstall -location "$dir" </dev/null 2>/dev/null || true
+ run_as_user /usr/local/bin/VencordInstallerCli-linux -uninstall-openasar -location "$dir" </dev/null 2>/dev/null || true
done < <(find_discord_dirs)
remove_installed_packages discord
+ run_as_user env DBUS_SESSION_BUS_ADDRESS="unix:path=$TARGET_XDG_RUNTIME_DIR/bus" \
+ systemctl --user disable --now vencord-patch.path 2>/dev/null || true
+ rm -f "$HOME/.config/systemd/user/vencord-patch.path" \
+ "$HOME/.config/systemd/user/vencord-patch.service" \
+ "$HOME/.config/systemd/user/default.target.wants/vencord-patch.path"
rm -f /etc/pacman.d/hooks/vencord-reinstall.hook
rm -f /usr/local/bin/vencord-reinstall.sh
+ rm -f /usr/local/bin/vencord-patch
rm -f /usr/local/bin/VencordInstallerCli-linux
rm -rf "$HOME/.config/Vencord"
echo "Discord + Vencord removal complete!"
@@ -112,19 +118,64 @@ chmod +x /usr/local/bin/VencordInstallerCli-linux
# app-<verzió> mappákat (~/.config/discord/app-*/resources/app.asar), ezért
# ezeket user-ként, explicit -location-nel patcheljük. Régi rendszer-szintű
# telepítés (/usr/lib/discord) esetén is működik.
-mapfile -t DISCORD_DIRS < <(find_discord_dirs)
+cat > /usr/local/bin/vencord-patch << 'PATCH'
+#!/bin/bash
+for _ in $(seq 1 60); do
+ hianyzik=0
+ for d in "$HOME"/.config/discord/app-*/; do
+ [ -d "$d" ] || continue
+ [ -e "${d}resources/app.asar" ] || hianyzik=1
+ done
+ [ "$hianyzik" = 0 ] && break
+ sleep 5
+done
+for asar in "$HOME"/.config/discord/app-*/resources/app.asar "$HOME"/.local/share/discord/resources/app.asar "$HOME"/.local/share/Discord/resources/app.asar /usr/lib/discord/resources/app.asar /opt/discord/resources/app.asar; do
+ [ -f "$asar" ] || continue
+ res=$(dirname "$asar")
+ [ -e "$res/_app.asar" ] && continue
+ [ -w "$res" ] || continue
+ dir=$(dirname "$res")
+ echo "Vencord patch: $dir"
+ /usr/local/bin/VencordInstallerCli-linux -install -location "$dir" </dev/null || true
+ /usr/local/bin/VencordInstallerCli-linux -install-openasar -location "$dir" </dev/null || true
+done
+PATCH
+chmod 755 /usr/local/bin/vencord-patch
+
+UNIT_DIR="$HOME/.config/systemd/user"
+run_as_user mkdir -p "$UNIT_DIR/default.target.wants"
+cat > "$UNIT_DIR/vencord-patch.service" << 'UNIT'
+[Unit]
+Description=Vencord patch az uj Discord verziokra
+StartLimitIntervalSec=0
+
+[Service]
+Type=oneshot
+ExecStart=/usr/local/bin/vencord-patch
+UNIT
+cat > "$UNIT_DIR/vencord-patch.path" << 'UNIT'
+[Unit]
+Description=Uj Discord verzio figyelese a Vencordhoz
+
+[Path]
+PathChanged=%h/.config/discord
+MakeDirectory=yes
+
+[Install]
+WantedBy=default.target
+UNIT
+ln -sf ../vencord-patch.path "$UNIT_DIR/default.target.wants/vencord-patch.path"
+chown -R "$USER:$USER" "$HOME/.config/systemd"
+run_as_user env DBUS_SESSION_BUS_ADDRESS="unix:path=$TARGET_XDG_RUNTIME_DIR/bus" \
+ systemctl --user daemon-reload 2>/dev/null || true
+run_as_user env DBUS_SESSION_BUS_ADDRESS="unix:path=$TARGET_XDG_RUNTIME_DIR/bus" \
+ systemctl --user start vencord-patch.path 2>/dev/null || true
echo "Installing Vencord..."
-if ((${#DISCORD_DIRS[@]})); then
- for dir in "${DISCORD_DIRS[@]}"; do
- echo "Discord location: $dir"
- run_as_user /usr/local/bin/VencordInstallerCli-linux -install -location "$dir" || true
- run_as_user /usr/local/bin/VencordInstallerCli-linux -install-openasar -location "$dir" || true
- done
+if [[ -n "$(find_discord_dirs)" ]]; then
+ run_as_user /usr/local/bin/vencord-patch
else
- echo "Discord app dir not found (indítsd el egyszer a Discordot), user-mode auto-detect..."
- run_as_user /usr/local/bin/VencordInstallerCli-linux -install || true
- run_as_user /usr/local/bin/VencordInstallerCli-linux -install-openasar || true
+ echo "A Discord az elso inditaskor tolti le magat, a Vencord ezutan automatikusan felkerul."
fi
# Pacman hook: Discord update után Vencord újratelepítés
@@ -145,11 +196,7 @@ HOOK
# Reinstall script - user neve bele van égetve telepítéskor
cat > /usr/local/bin/vencord-reinstall.sh << SCRIPT
#!/bin/bash
-for dir in "$HOME"/.config/discord/app-*/; do
- [ -f "\${dir}resources/app.asar" ] || continue
- runuser -u "$USER" -- env HOME="$HOME" /usr/local/bin/VencordInstallerCli-linux -install -location "\${dir%/}" || true
- runuser -u "$USER" -- env HOME="$HOME" /usr/local/bin/VencordInstallerCli-linux -install-openasar -location "\${dir%/}" || true
-done
+runuser -u "$USER" -- env HOME="$HOME" /usr/local/bin/vencord-patch || true
SCRIPT
chmod +x /usr/local/bin/vencord-reinstall.sh
@@ -199,5 +246,4 @@ fi
chown -R "$USER:$USER" "$HOME/.config/Vencord"
echo "Discord + Vencord installation complete!"
-echo "Note: Ha a Vencord nem lett azonnal alkalmazva, indítsd el a Discordot egyszer,"
-echo "majd a kovetkezo Discord frissitesnel automatikusan feltelepul."
+echo "Ha a Vencord az elso inditaskor meg nem latszik, inditsd ujra a Discordot."