Fingwit is used to configure fingerprint authentication.
It's an XApp so it can work in any distribution and many desktop environments.
Fingwit relies on Fprintd.
Here's the list of supported fingerprint readers: https://fprint.freedesktop.org/supported-devices.html.
An Appimage could be provided in the future.
Fingwit uses two PAM modules:
- Its own module: pam_fingwit.so
- Fprint's module: pam_fprintd.so
pam_fprintd.so performs the fingerprint authentication.
pam_fingwit.so decides when it's safe for the computer to use pam_fprintd.so and when it's better to skip it (for instance when you try to log in with an encrypted home directory).
A typical PAM configuration therefore looks like this:
auth	[authinfo_unavail=1 default=ignore]	pam_fingwit.so # debug
auth	[success=end default=ignore]	pam_fprintd.so max-tries=1 timeout=10 # debug
auth	[success=1 default=ignore]	pam_unix.so nullok
If pam_fingwit.so thinks fingerprint authentication is safe, it returns ignore and lets PAM proceed towards pam_fprintd.so.
If pam_fingwit.so thinks fingerprint authentication should be avoided, it returns authinfo_unavail and tells PAM to skip pam_fprintd.so.
- policykit/pkexec situations.
- Screensaver unlocking.
- Login greeter only if the user already has a session (such as when switching between users).
- Initial login (after reboot/power-on). The user keyring requires a password to unlock, as does decrypting a user's home directory. This can be overridden in gsettings for the root user (gsettings set org.x.fingwit login-enabled true).
- SSH sessions
pam_fingwit.so supports a debug option.
If you enable this option in your PAM configuration, the module will write its debug output in system logs. Check your auth.log or journalctl.
- python3
- python3-gi
- python3-pam
- gir1.2-gtk-3.0
- fprintd
- libpam-fprintd
- meson (>= 0.59.0)
- ninja-build
- python3
- gettext
- debhelper-compat (= 13) if you want to build a Debian package
sudo apt install debhelper-compat meson ninja-build python3 gettext
dpkg-buildpackageThis will create a .deb package in the parent directory.
After you install the .deb package, you can run fingwit from the command line, or find it in the Preferences category of your application menu.
Fingwit uses the Meson build system:
# Install build dependencies (example for different distros)
# Fedora: sudo dnf install meson ninja-build python3 gettext
# Arch: sudo pacman -S meson ninja python gettext
# openSUSE: sudo zypper install meson ninja python3 gettext-tools
# Build and install
meson setup builddir --prefix=/usr/local
meson compile -C builddir
sudo meson install -C builddirFor development and testing without installing:
meson setup builddir
meson compile -C builddir
# Run directly from build directory
./builddir/fingwitAn AppImage is a portable application format that runs on any Linux distribution without installation.
- Docker installed on your system
- x86_64 architecture
cd appimage/
./build.shThis will:
- Build a Docker container with all dependencies
- Build fingwit using Meson inside the container
- Create a portable AppImage file
- Output: appimage/fingwit.AppImage
# Make executable and run
chmod +x fingwit.AppImage
./fingwit.AppImage
# Or extract and run (if FUSE is not available)
./fingwit.AppImage --appimage-extract-and-runNote: The AppImage requires the host system to have fprintd service running and fingerprint hardware drivers installed, as it provides the application but relies on the host for system integration.
The AppImage currently has issues. Check xapp-project#16 for more info.
Please use Launchpad to translate Fingwit: https://translations.launchpad.net/linuxmint/latest/.
The PO files in this project are imported from there.
- Code: GPLv3