From d2598464d6f07ff4800a14f51f040fae58385065 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 9 Jul 2025 20:26:43 -0400 Subject: [PATCH] Switch to polkit-gnome to make fingerprint authentication work better hyprpolkit was not designed well for fingerprint authentication. It doesn't allow you to easily deal with both fingerprints and passwords in the same configuration. --- bin/omarchy-fingerprint-setup | 20 +++++++++++++++++--- default/hypr/autostart.conf | 3 ++- install/hyprlandia.sh | 2 +- migrations/1752104271.sh | 4 ++++ 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 migrations/1752104271.sh diff --git a/bin/omarchy-fingerprint-setup b/bin/omarchy-fingerprint-setup index d23a0fc..48e5bca 100755 --- a/bin/omarchy-fingerprint-setup +++ b/bin/omarchy-fingerprint-setup @@ -2,9 +2,23 @@ yay -S --noconfirm --needed fprintd libfprint -# Add fingerprint authentication as a sufficient option -grep -q 'pam_fprintd.so' /etc/pam.d/system-auth || - sudo sed -i '/^auth.*pam_unix.so/ i auth sufficient pam_fprintd.so' /etc/pam.d/system-auth +# Add fingerprint authentication as an option for sudo +if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then + sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo +fi + +# Add fingerprint authentication as an option for hyprpolkitagent +if [ ! -f /etc/pam.d/polkit-1 ] || ! grep -q pam_fprintd.so /etc/pam.d/polkit-1; then + sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF' +auth required pam_unix.so +auth optional pam_fprintd.so + +account required pam_unix.so +password required pam_unix.so +session required pam_unix.so +EOF +fi + systemctl --user restart hyprpolkitagent # Enroll the first finger diff --git a/default/hypr/autostart.conf b/default/hypr/autostart.conf index 089f64a..c840548 100644 --- a/default/hypr/autostart.conf +++ b/default/hypr/autostart.conf @@ -1,4 +1,5 @@ exec-once = hypridle & mako & waybar & fcitx5 exec-once = swaybg -i ~/.config/omarchy/current/background -m fill -exec-once = systemctl --user start hyprpolkitagent +# exec-once = systemctl --user start hyprpolkitagent +exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = wl-clip-persist --clipboard regular diff --git a/install/hyprlandia.sh b/install/hyprlandia.sh index a320d9d..a7e0c3b 100644 --- a/install/hyprlandia.sh +++ b/install/hyprlandia.sh @@ -1,5 +1,5 @@ yay -S --noconfirm --needed \ - hyprland hyprshot hyprpicker hyprlock hypridle hyprpolkitagent hyprland-qtutils \ + hyprland hyprshot hyprpicker hyprlock hypridle polkit-gnome hyprland-qtutils \ wofi waybar mako swaybg \ xdg-desktop-portal-hyprland xdg-desktop-portal-gtk diff --git a/migrations/1752104271.sh b/migrations/1752104271.sh new file mode 100644 index 0000000..ace1ef9 --- /dev/null +++ b/migrations/1752104271.sh @@ -0,0 +1,4 @@ +yay -S --noconfirm --needed polkit-gnome +systemctl --user stop hyprpolkitagent +systemctl --user disable hyprpolkitagent +yay -Rns --noconfirm hyprpolkitagent