When I have my laptop connected to the dock, I like to close the lid, which means I can't use the internal fingerprint reader. I have an external fingerprint sensor but gdm won't use that one when the lid is closed. I found that I could disable the internal one based on the state of the lid switch.
I'm using Fedora, I installed acpid and creating a lidconf file in /etc/acpi/lidconf:
event=button/lid
action=/etc/acpi/actions/lid.sh "%e"My internal reader has the following VENDOR:PRODUCT from lsusb
Bus 003 Device 002: ID 06cb:00fc Synaptics, Inc. Prometheus Fingerprint ReaderFor the script, I used the /sys filesystem to disable my reader:
#!/bin/bash
VENDOR=06cb
PRODUCT=00fc
BUS=$(grep -l $VENDOR /sys/bus/usb/devices/*/idVendor | sed 's/\(.*\)\/idVendor/\1/' | xargs -iXXX grep -l $PRODUCT XXX/idProduct | sed 's/\(.*\)\/idProduct/\1/')
state=$(echo "$1" | cut -d " " -f 3)
case "$state" in
open)
# kill 06cb:00fc
echo 1 > $BUS/authorized
;;
close)
echo 0 > $BUS/authorized
;;
esacAfter this, when the lid is closed, the internal Synaptics reader is disabled. And when the lid opens, it's re-enabled. For completeness I could disable the external one, but so far fprintd uses the Synaptics by default, so I haven't had to do that.