fingerprintd/packaging/fingerprintd-agent.service
Jorijn van der Graaf 1934822554 An agent, so a finger can mean something in your session
The daemon announces every matched finger on the system bus and stops there,
because root has no session bus, no display and no business starting your
applications. fingerprintd-agent is the other half: it runs as you, subscribes
properly rather than parsing gdbus monitor output, filters by uid because the
signal is visible to every local user, and maps fingers to commands from a file
you own and can edit without restarting anything.

It is a separate binary and a separate subpackage because it is a separate
trust domain. /etc/fingerprintd/actions.conf is a root shell and is guarded
like one; ~/.config/fingerprintd/fingers.conf runs your commands as you, so it
is an ordinary dotfile.

Demonstrated on the phone: one press of the unlock finger both unlocks it and
opens plasma-camera.
2026-09-05 06:21:53 +02:00

23 lines
944 B
Desktop File

# SPDX-License-Identifier: GPL-3.0-only
# SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
# A USER unit: it runs as you, in your session, which is the whole point.
# `systemctl --user enable --now fingerprintd-agent`
[Unit]
Description=Run things in your session when a fingerprint matches
Documentation=https://forgejo.catcrafts.net/Catcrafts/fingerprintd
# Nothing to do without a map. Absent file, absent feature.
ConditionPathExists=%h/.config/fingerprintd/fingers.conf
[Service]
Type=simple
ExecStart=/usr/bin/fingerprintd-agent
# It only listens on the system bus and spawns your commands; if it dies,
# restarting costs nothing and losing it silently would be confusing.
Restart=on-failure
RestartSec=5
[Install]
# default.target rather than graphical-session.target: the agent needs your
# session bus, not a display, and Plasma Mobile does not reliably reach
# graphical-session.target on this device.
WantedBy=default.target