3 Commits

Author SHA1 Message Date
Sovran_Systems a48fe1c882 Merge pull request #198 from naturallaw777/copilot/add-gnome-keyring-unlock-service
Unlock GNOME Keyring on session start using stored free-user password
2026-04-12 06:49:28 -05:00
copilot-swe-agent[bot] d07ea9a227 Add gnome-keyring-unlock service and update change-free-password to re-key keyring
Agent-Logs-Url: https://github.com/naturallaw777/staging_alpha/sessions/311643b0-e3d5-4ee5-a8f8-da5baa59cab8

Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com>
2026-04-12 11:47:42 +00:00
copilot-swe-agent[bot] 0f77c6834c Initial plan 2026-04-12 11:45:49 +00:00
+25
View File
@@ -33,6 +33,8 @@ let
echo "$NEW_PASS" > "$SECRET_FILE"
chmod 600 "$SECRET_FILE"
echo "Password for 'free' updated and saved."
echo "$NEW_PASS" | ${pkgs.gnome-keyring}/bin/gnome-keyring-daemon --unlock || echo "Warning: GNOME Keyring re-key failed." >&2
echo "GNOME Keyring re-keyed with new password."
'';
in
{
@@ -116,4 +118,27 @@ in
'';
};
# ── 2. Unlock GNOME Keyring on graphical session start ─────
systemd.services.gnome-keyring-unlock = {
description = "Unlock GNOME Keyring with stored free password";
after = [ "free-password-setup.service" "display-manager.service" ];
wants = [ "free-password-setup.service" ];
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Type = "oneshot";
User = "free";
ExecStartPre = "${pkgs.coreutils}/bin/sleep 3";
};
path = [ pkgs.gnome-keyring pkgs.coreutils ];
script = ''
SECRET_FILE="/var/lib/secrets/free-password"
if [ -f "$SECRET_FILE" ]; then
gnome-keyring-daemon --unlock < "$SECRET_FILE"
echo "GNOME Keyring unlocked with stored password."
else
echo "No password file found, skipping keyring unlock."
fi
'';
};
}