Name: profile-sync-daemon Version: 6.49 Release: 1%{?dist} Summary: ShivaOS — Synchronise les profils navigateurs en RAM (tmpfs) License: MIT URL: https://github.com/graysky2/profile-sync-daemon BuildArch: noarch Requires: rsync, util-linux %description Profile-sync-daemon déplace les profils Firefox/Chrome/Brave en RAM (tmpfs). Résultat : démarrage browser 3x plus rapide, navigation instantanée, moins d'usure SSD. Les profils sont synchronisés sur disque toutes les heures. %prep # no sources needed — tout est généré dans install %build # no compilation %install mkdir -p %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/lib/systemd/user mkdir -p %{buildroot}/etc # --- script principal psd --- cat > %{buildroot}/usr/bin/psd << 'EOF' #!/bin/bash # Profile Sync Daemon — ShivaOS simplifié TMPDIR="${XDG_RUNTIME_DIR:-/tmp}/psd" BACKUP_SUFFIX=".psd-backup" PROFILES=( "$HOME/.mozilla/firefox" "$HOME/.config/google-chrome" "$HOME/.config/BraveSoftware/Brave-Browser" "$HOME/.config/chromium" "$HOME/.config/opera" ) sync_to_ram() { mkdir -p "$TMPDIR" for PROFILE in "${PROFILES[@]}"; do [ -d "$PROFILE" ] || continue NAME=$(basename "$PROFILE") PARENT=$(dirname "$PROFILE") RAMDIR="$TMPDIR/$NAME" BACKUP="$PROFILE$BACKUP_SUFFIX" if [ ! -d "$BACKUP" ]; then rsync -a --delete "$PROFILE/" "$RAMDIR/" mv "$PROFILE" "$BACKUP" ln -s "$RAMDIR" "$PROFILE" echo "PSD: $NAME → RAM" fi done } sync_to_disk() { for PROFILE in "${PROFILES[@]}"; do BACKUP="$PROFILE$BACKUP_SUFFIX" RAMDIR="$TMPDIR/$(basename "$PROFILE")" [ -d "$BACKUP" ] || continue [ -L "$PROFILE" ] && rsync -a --delete "$RAMDIR/" "$BACKUP/" echo "PSD: synced $(basename "$PROFILE") → disk" done } restore() { for PROFILE in "${PROFILES[@]}"; do BACKUP="$PROFILE$BACKUP_SUFFIX" [ -d "$BACKUP" ] || continue sync_to_disk rm -f "$PROFILE" mv "$BACKUP" "$PROFILE" echo "PSD: $(basename "$PROFILE") restored" done } case "$1" in start) sync_to_ram ;; stop) restore ;; resync) sync_to_disk ;; *) echo "Usage: psd {start|stop|resync}" ;; esac EOF chmod 755 %{buildroot}/usr/bin/psd # --- systemd user services --- cat > %{buildroot}/usr/lib/systemd/user/psd.service << 'EOF' [Unit] Description=Profile Sync Daemon — navigateurs en RAM After=default.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/psd start ExecStop=/usr/bin/psd stop [Install] WantedBy=default.target EOF cat > %{buildroot}/usr/lib/systemd/user/psd-resync.service << 'EOF' [Unit] Description=PSD — resync profils vers disque [Service] Type=oneshot ExecStart=/usr/bin/psd resync EOF cat > %{buildroot}/usr/lib/systemd/user/psd-resync.timer << 'EOF' [Unit] Description=PSD — resync toutes les heures [Timer] OnUnitActiveSec=1h Unit=psd-resync.service [Install] WantedBy=timers.target EOF %post echo "PSD installé. Activer avec : systemctl --user enable --now psd psd-resync.timer" %files /usr/bin/psd /usr/lib/systemd/user/psd.service /usr/lib/systemd/user/psd-resync.service /usr/lib/systemd/user/psd-resync.timer %changelog * Wed May 20 2026 ShivaOS Team - 6.49-1.fc44 - Profile-sync-daemon ShivaOS : Firefox/Chrome/Brave/Chromium/Opera en RAM