Installation
Use one of these paths. The one-line installer enables GNOME lock screen auth for the current GNOME user when possible, and skips GNOME-specific packages on KDE Plasma and other non-GNOME desktops. Manual GNOME package installs still need GNOME settings commands afterward.
Supported installer targets: Ubuntu 24.04/25.10/26.04, Debian 13, Fedora 42/43/44, Arch Linux, and Arch-compatible AUR distributions such as Manjaro and CachyOS, on x86_64 and arm64.
Path A: one-line installer (recommended)
curl -fsSL https://gaze.gundulabs.com/install.sh | shThis installs:
- the Gaze daemon and CLI
gaze-gui- the GNOME Shell extension package only when a GNOME desktop session is detected
It also configures package updates where needed, enables the gazed daemon, and tries to enable lock screen face unlock for the current GNOME user when applicable. On KDE Plasma and other non-GNOME desktops, it skips the GNOME extension package so it does not pull in GNOME Shell.
Desktop behavior:
- CLI, GUI, and normal PAM prompts work without the GNOME extension.
- If the installer detects KDE Plasma, it installs the base packages and points you to the PAM guide for login/lock integration.
- If you later want GNOME lock screen support, install the GNOME extension package manually from a GNOME session.
- GDM loads the extension from package defaults when the extension package is installed, but GDM login face auth stays disabled unless you explicitly enable it.
For non-interactive installs:
curl -fsSL https://gaze.gundulabs.com/install.sh | sh -s -- --yesPath B: manual package install
Use this if you prefer to configure package sources yourself. Debian/Ubuntu and Fedora use Gundu Labs repositories. Arch Linux and Arch-compatible distributions such as Manjaro and CachyOS use the AUR packages.
If you are replacing an existing manual repository configuration, remove the current repo files first:
Debian / Ubuntu:
sudo rm -f /etc/apt/sources.list.d/gundulabs.list /usr/share/keyrings/gundulabs-archive-keyring.gpgFedora:
sudo rm -f /etc/yum.repos.d/gundulabs.repo /etc/pki/rpm-gpg/RPM-GPG-KEY-gundulabssudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://packages.gundulabs.com/keys/gundulabs-repo.gpg \
| sudo tee /usr/share/keyrings/gundulabs-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/gundulabs-archive-keyring.gpg] https://packages.gundulabs.com/deb stable main" \
| sudo tee /etc/apt/sources.list.d/gundulabs.list >/dev/null
sudo apt update
sudo apt install gaze gaze-guisudo rpm --import https://packages.gundulabs.com/keys/gundulabs-repo.asc
sudo tee /etc/yum.repos.d/gundulabs.repo >/dev/null <<'EOF'
[gundulabs]
name=Gundu Labs
baseurl=https://packages.gundulabs.com/rpm/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.gundulabs.com/keys/gundulabs-repo.asc
EOF
sudo dnf makecache
sudo dnf install gaze gaze-gui# Requires an AUR helper such as yay or paru. yay shown here.
yay -S --needed gaze-bin gaze-gui-binPath C: GUI-only via Flatpak
The Flatpak is published to the Gundu Labs repository. The signing key and repo URL are embedded in the .flatpakref, so one command adds the remote and installs the app:
flatpak install --from https://packages.gundulabs.com/flatpak/com.gundulabs.Gaze.flatpakrefThis installs the sandboxed Gaze GUI only. It talks to the gazed daemon on the system bus, so you still need to install one of the system packages (Path A or B) for the daemon and PAM integration. Use this path when you want the GUI updated independently of the system package.
Enable GNOME lock screen auth after manual install
Only run this on GNOME desktops where you want face unlock from the lock screen. First install the extension package for your distro, then enable it for your user; package managers do not safely change per-user extension settings.
sudo apt install gaze-gnome-extensionsudo dnf install gaze-gnome-extensionyay -S --needed gaze-gnome-extension-bingnome-extensions enable gaze@gundulabs.com
gsettings set org.gnome.shell.extensions.gaze enable-face-authentication trueLog out and back in once after installing or updating the extension if the lock screen does not pick it up immediately. GDM login face auth stays disabled unless you explicitly enable it; see the GNOME Extension guide before doing that.
KDE Plasma and other PAM-based desktops
The one-line installer detects KDE Plasma and intentionally skips gaze-gnome-extension, because that package depends on GNOME Shell. Use the base gaze package's PAM modules for login or lock-screen integration. See the PAM guide and keep password fallback enabled while testing.
Enable face unlock for hyprlock
On Hyprland, install the gaze-hyprlock package (auto-installed by the one-line installer when Hyprland is detected) and point hyprlock at the Gaze PAM service. See the Hyprland guide.
Restart after install
After installation (any method), reboot once to ensure all system-level changes are fully applied.
sudo rebootVerify installation
systemctl status gazed
gaze --version
gaze-gui --helpIf daemon is inactive:
sudo systemctl enable --now gazedFirst run
gaze add-face default
gaze auth --verboseDevelopment and source builds
See the Development guide for source builds, tests, packaging, and Flatpak development workflows.