diff options
| author | Craig Jennings <c@cjennings.net> | 2026-01-29 12:17:28 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-01-29 12:17:28 -0600 |
| commit | dd2f7a242408cc86c7646c9595c3e9467c6bdd67 (patch) | |
| tree | 0f68cfc9af435c31a7bf1f857099e077f3d0f441 /dotfiles | |
| parent | 82e2fcfd0915047033599290109b4fb055fa3cf6 (diff) | |
fix(keyring,hyprpm): use template keyring, fix hyprpm warning
Keyring:
- Add empty-password login.keyring template to dotfiles
- Remove init-keyring script (secretstorage API requires prompting)
- Remove python-secretstorage dependency
- Remove PAM gnome-keyring config (not needed with template approach)
Hyprpm:
- Only run hyprpm reload if plugins are installed
- Prevents "Failed to load plugins" warning on fresh installs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'dotfiles')
| -rw-r--r-- | dotfiles/common/.local/share/keyrings/default | 1 | ||||
| -rw-r--r-- | dotfiles/common/.local/share/keyrings/login.keyring | 6 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hyprland.conf | 3 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/init-keyring | 46 |
4 files changed, 8 insertions, 48 deletions
diff --git a/dotfiles/common/.local/share/keyrings/default b/dotfiles/common/.local/share/keyrings/default new file mode 100644 index 0000000..a46884d --- /dev/null +++ b/dotfiles/common/.local/share/keyrings/default @@ -0,0 +1 @@ +login diff --git a/dotfiles/common/.local/share/keyrings/login.keyring b/dotfiles/common/.local/share/keyrings/login.keyring new file mode 100644 index 0000000..fdb8f31 --- /dev/null +++ b/dotfiles/common/.local/share/keyrings/login.keyring @@ -0,0 +1,6 @@ +[keyring] +display-name=Login +ctime=0 +mtime=0 +lock-on-idle=false +lock-after=false diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf index 1c3408e..1d1a368 100644 --- a/dotfiles/hyprland/.config/hypr/hyprland.conf +++ b/dotfiles/hyprland/.config/hypr/hyprland.conf @@ -16,9 +16,8 @@ exec-once = systemctl --user start xdg-desktop-portal-hyprland xdg-desktop-porta # Core services exec-once = /usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh -exec-once = init-keyring exec-once = dunst > ~/.local/var/log/dunst-$(date +%Y-%m-%d-%H%M%S).log 2>&1 -exec-once = hyprpm reload && sleep 2 && hyprctl dismissnotify -1 +exec-once = hyprpm list &>/dev/null && hyprpm reload; sleep 2 && hyprctl dismissnotify -1 # Desktop appearance (after portal is ready) exec-once = swww-daemon && sleep 1 && swww img ~/pictures/wallpaper/trondheim-norway.jpg diff --git a/dotfiles/hyprland/.local/bin/init-keyring b/dotfiles/hyprland/.local/bin/init-keyring deleted file mode 100755 index c8bb733..0000000 --- a/dotfiles/hyprland/.local/bin/init-keyring +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python3 -"""Initialize gnome-keyring with empty password for autologin systems. - -This script creates the 'login' keyring collection with an empty password, -allowing gnome-keyring to auto-unlock without PAM password entry. - -Only runs once - exits immediately if login keyring already exists. -""" - -import os -import sys - -# Check if login keyring already exists -keyring_dir = os.path.expanduser("~/.local/share/keyrings") -login_keyring = os.path.join(keyring_dir, "login.keyring") - -if os.path.exists(login_keyring): - sys.exit(0) - -try: - import secretstorage -except ImportError: - print("python-secretstorage not installed", file=sys.stderr) - sys.exit(1) - -try: - connection = secretstorage.dbus_init() - - # Check if login collection exists via D-Bus - collections = list(secretstorage.get_all_collections(connection)) - for collection in collections: - if collection.get_label() == "login" or collection.get_label() == "Login": - # Already exists - sys.exit(0) - - # Create login collection with empty password - secretstorage.create_collection(connection, "Login", password=b"") - - # Set as default - os.makedirs(keyring_dir, exist_ok=True) - with open(os.path.join(keyring_dir, "default"), "w") as f: - f.write("login") - -except Exception as e: - print(f"Failed to initialize keyring: {e}", file=sys.stderr) - sys.exit(1) |
