1

I'm using Arch Linux, and have installed fingerprint-gui from AUR. It detected the sensor after I added myself to the plugdev and scanner groups. After prepending the following to /etc/pam.d/system-auth:

auth      sufficient pam_fingerprint-gui.so

I can authenticate to sudo, LightDM, GNOME Screensaver, etc. with it.

The problem is with applications using Polkit. fingerprint-gui comes with its own Polkit authentication agent (/usr/lib/fingerprint-gui/fingerprint-polkit-agent, supposed to be autostarted by /etc/xdg/autostart/fingerprint-polkit-agent.desktop). However, it does not start:

$ pgrep polkit -fa
2247 /usr/lib/polkit-1/polkitd --no-debug
$ /usr/lib/fingerprint-gui/fingerprint-polkit-agent -d
New PolkitAgentListener  0x1b5f700 
Adding new listener  PolkitQt1::Agent::Listener(0x7ffecc222550) for  0x1b5f700 

** (fingerprint-polkit-agent:2951): WARNING **: Unable to register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
"Cannot register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject" 
Destroying listener
Removing listener  PolkitQt1::Agent::Listener(0x7ffecc222550) 

Apparently there's an agent already running. The Arch Wiki suggests removing the following files from /etc/xdg/autostart if GNOME or KDE is installed:

polkit-gnome-authentication-agent-1.desktop
polkit-kde-authentication-agent-1.desktop

I use GNOME Shell, but I don't have polkit-gnome installed (and hence I don't have these files). However, it seems GNOME Shell has its own Polkit agent:

$ locate polkit | grep agent                             
/etc/xdg/autostart/fingerprint-polkit-agent.desktop
...
/usr/lib/libpolkit-agent-1.so
/usr/lib/libpolkit-agent-1.so.0
/usr/lib/libpolkit-agent-1.so.0.0.0
/usr/lib/libpolkit-qt-agent-1.so
/usr/lib/libpolkit-qt-agent-1.so.1
/usr/lib/libpolkit-qt-agent-1.so.1.112.0
...
$ lsof /usr/lib/libpolkit-agent-1.so.0.0.0
COMMAND   PID    USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
gnome-she 757    muru mem    REG  259,0    40200 289001 /usr/lib/libpolkit-agent-1.so.0.0.0

What can I do to use fingerprint-gui's Polkit agent with GNOME Shell?

$ gnome-shell --version
GNOME Shell 3.18.1

1 Answer 1

2

After dithering a bit, I replaced gnome-session with a wrapper:

$ cat /usr/local/bin/gnome-session
#! /bin/sh

/usr/lib/fingerprint-gui/fingerprint-polkit-agent -d &
exec /usr/bin/gnome-session "$@"

The fingerprint-gui Polkit agent is horribly ugly, though:

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .