clone of my dotfiles.ssp.sh
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

keyring and EnteAuth preparation

sspaeti 44482f28 dcd75629

+128
+4
hypr/.config/hypr/sspaeti/autostart-apps.sh
··· 18 18 while ! systemctl --user is-active --quiet gnome-keyring-daemon.service; do 19 19 sleep 0.2 20 20 done 21 + 22 + # Fix Ente Auth keyring integration (prevents duplicate keyring creation) 23 + # ~/.config/hypr/sspaeti/fix-ente-keyring.sh > /tmp/keyring-fix-startup.log 2>&1 24 + 21 25 brave --password-store=basic --new-window --ozone-platform=wayland --force-device-scale-factor=1.0 & 22 26 while [ -z "$brave_addr" ]; do 23 27 sleep 0.5
+124
hypr/.config/hypr/sspaeti/fix-ente-keyring.sh
··· 1 + #!/bin/bash 2 + # Fix Ente Auth keyring integration - prevents duplicate keyring creation 3 + # Ensures libsecret can properly "unlock" the unencrypted default keyring 4 + # Preserves all existing passwords 5 + # 6 + # Author: Adapted for Omarchy/Hyprland setup 7 + # Location: ~/.config/hypr/sspaeti/fix-ente-keyring.sh 8 + 9 + set -e 10 + 11 + KEYRING_DIR="$HOME/.local/share/keyrings" 12 + KEYRING_FILE="$KEYRING_DIR/Default_keyring.keyring" 13 + BACKUP_DIR="/tmp/keyring_backups_$(date +%Y%m%d_%H%M%S)" 14 + 15 + echo "=== Ente Auth Keyring Fix (Preserving Passwords) ===" 16 + echo "" 17 + 18 + # Step 1: Check if keyring exists 19 + if [ ! -f "$KEYRING_FILE" ]; then 20 + echo "❌ Default keyring not found at: $KEYRING_FILE" 21 + echo " Please run the Omarchy default-keyring.sh script first" 22 + exit 1 23 + fi 24 + 25 + echo "✓ Found existing keyring: $KEYRING_FILE" 26 + 27 + # Step 2: Create backup directory and backup current keyring 28 + mkdir -p "$BACKUP_DIR" 29 + cp "$KEYRING_FILE" "$BACKUP_DIR/Default_keyring.keyring" 30 + echo "✓ Backed up to: $BACKUP_DIR/" 31 + 32 + # Step 3: Update the keyring file to have proper libsecret metadata 33 + # This ensures libsecret can "unlock" it properly 34 + echo "" 35 + echo "Updating keyring metadata for libsecret compatibility..." 36 + 37 + # Check if it has the required FlutterSecureStorage control entry 38 + if ! grep -q "FlutterSecureStorage Control" "$KEYRING_FILE"; then 39 + echo " Adding FlutterSecureStorage control entry..." 40 + 41 + # Append the control entry to the keyring 42 + cat >> "$KEYRING_FILE" << EOF 43 + 44 + [2] 45 + item-type=0 46 + display-name=FlutterSecureStorage Control 47 + secret=The meaning of life 48 + mtime=$(date +%s) 49 + ctime=$(date +%s) 50 + 51 + [2:attribute0] 52 + name=explanation 53 + type=string 54 + value=Because of quirks in the gnome libsecret API, flutter_secret_storage needs to store a dummy entry to guarantee that this keyring was properly unlocked. More details at http://crbug.com/660005. 55 + EOF 56 + echo " ✓ FlutterSecureStorage control entry added" 57 + else 58 + echo " ✓ FlutterSecureStorage control entry already exists" 59 + fi 60 + 61 + # Step 4: Ensure proper permissions 62 + chmod 600 "$KEYRING_FILE" 63 + chmod 644 "$KEYRING_DIR/default" 64 + chmod 700 "$KEYRING_DIR" 65 + echo "✓ Permissions verified" 66 + 67 + # Step 5: Restart gnome-keyring-daemon to reload the keyring 68 + echo "" 69 + echo "Restarting keyring daemon..." 70 + systemctl --user restart gnome-keyring-daemon.service 2>/dev/null || \ 71 + systemctl --user restart gnome-keyring-daemon.socket 2>/dev/null || \ 72 + pkill -HUP gnome-keyring-daemon 2>/dev/null || true 73 + sleep 2 74 + echo "✓ Daemon restarted" 75 + 76 + # Step 6: Verify the keyring is recognized 77 + echo "" 78 + echo "Verifying keyring status..." 79 + if dbus-send --session --print-reply --dest=org.freedesktop.secrets \ 80 + /org/freedesktop/secrets org.freedesktop.DBus.Properties.Get \ 81 + string:org.freedesktop.Secret.Service string:Collections 2>&1 | grep -q "Default_5fkeyring"; then 82 + echo "✓ Keyring is recognized by secret service" 83 + else 84 + echo "⚠ Warning: Keyring may not be fully initialized" 85 + echo " Try logging out and back in" 86 + fi 87 + 88 + # Step 7: Clean up any duplicate keyrings if they exist 89 + echo "" 90 + echo "Checking for duplicate keyrings..." 91 + DUPLICATES_FOUND=0 92 + for keyring in "$KEYRING_DIR"/Default_keyring_*.keyring; do 93 + if [ -f "$keyring" ]; then 94 + echo " Found duplicate: $(basename "$keyring")" 95 + # Move to backup directory instead of cluttering keyring dir 96 + mv "$keyring" "$BACKUP_DIR/" 97 + echo " ✓ Moved to: $BACKUP_DIR/$(basename "$keyring")" 98 + DUPLICATES_FOUND=$((DUPLICATES_FOUND + 1)) 99 + fi 100 + done 101 + 102 + if [ $DUPLICATES_FOUND -eq 0 ]; then 103 + echo "✓ No duplicate keyrings found" 104 + else 105 + echo "✓ Cleaned up $DUPLICATES_FOUND duplicate keyring(s)" 106 + echo " Backups saved in: $BACKUP_DIR/" 107 + fi 108 + 109 + echo "" 110 + echo "=== Fix Complete ===" 111 + echo "" 112 + echo "Your passwords have been preserved in:" 113 + echo " $KEYRING_FILE" 114 + echo "" 115 + echo "Backups saved to:" 116 + echo " $BACKUP_DIR/" 117 + echo "" 118 + echo "Test Ente Auth:" 119 + echo " enteauth" 120 + echo "" 121 + echo "If issues persist, check logs:" 122 + echo " tail -f ~/.local/share/io.ente.auth/logs/$(date +%Y-%m-%d).txt" 123 + echo " journalctl --user -u gnome-keyring-daemon -f" 124 + echo ""