Features β’ Installation β’ Quick Demo β’ Architecture β’ Contributing
Linux-FaceLock is a next-generation, high-performance facial recognition lock screen integration for Linux desktop environments (GNOME, KDE Plasma, XFCE, LightDM, SDDM, GDM) and Windows.
Inspired by Apple's Dynamic Island aesthetics, it delivers sub-second facial verification, zero UI latency, smooth 60 FPS spring physics, interactive audio cues, and native Linux PAM stack security.
| Feature | Description |
|---|---|
| ποΈ Dynamic Island UI | Minimalist 280Γ38 pill widget floating seamlessly on your lock screen |
| π· Live Camera & Lock Morph | Real-time camera icon βͺ morphing dynamically into an animated unlocked π state |
| π’ 3D Wireframe Mesh | Futuristic green 3D sphere animation rendered on successful facial vector match |
| π Spatial Audio Feedback | Interactive chime sound effects on popup, verification success, and invalid face shake |
| π‘οΈ PAM Stack Security | Native pam_script & PAM module integration (gdm-password, lightdm, sudo, kscreenlocker) |
| π¦ Multi-Distro Packages | Pre-compiled packages for Ubuntu/Debian (.deb), Fedora/RPM (.rpm), and Arch (.pkg.tar.zst) |
| πͺ Windows Bridge | Windows Credential Provider unlock helper for dual-boot setups |
Download the latest binary release for your distribution from GitHub Releases:
sudo dpkg -i NovaUnlock-v3.2-Debian.deb
sudo apt-get install -fsudo dnf install ./NovaUnlock-v3.2-Fedora.rpmsudo pacman -U ./NovaUnlock-v3.2-Arch.pkg.tar.zstWorks on any Linux distribution without external package manager requirements:
chmod +x nova_unlock_installer_v3.2
sudo ./nova_unlock_installer_v3.2# Clone repository
git clone https://github.com/hananqaisar-commits/Linux-FaceLock.git
cd Linux-FaceLock
# Setup virtual environment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Run interactive Dynamic Island demo
python3 -m nova_unlock.ui.face_unlock_widget --demoTry out the biometric lock screens and enrollment screens locally:
To launch the authentic iOS-style Dynamic Island scanner and cycle through scanning states (Success β Fail β Success) with audio effects:
python3 -m nova_unlock.ui.face_id_embedTo enroll your face biometric template and register it locally:
python3 -m nova_unlock.ui.enrollment_wizardTo launch the interactive macOS-style hello welcome screen (with hello greeting, dynamic island animation, and chime sound):
python3 -m nova_unlock.ui.welcome_screen
sudo systemctl enable nova-facelock.service
sudo systemctl disable nova-facelock.servicegraph TD
A[Linux Lock Screen / PAM Trigger] -->|Invoke PAM Module| B[nova_pam_auth.py]
B -->|DBus IPC Connection| C[NovaUnlock Service Daemon]
C -->|Camera Probe & OpenCV| D[Face Detection & 128D Embeddings]
D -->|Match Verified| E[Dynamic Island UI Widget]
E -->|Green Sphere + Unlock Sound| F[PAM Auth SUCCESS]
D -->|Match Failed| E2[Red Shake + Retries]
- Local Vector Storage: Face embeddings are stored locally on your encrypted drive; no biometric data ever leaves your machine.
- Liveness Detection: Multi-frame blink & motion verification prevents static photo spoofs.
- PAM Fallback: Automatic seamless fallback to password prompt if face identification times out or is unrecognized.
- Please review our SECURITY.md for vulnerability disclosure guidelines.
We welcome community contributions! Check out our CONTRIBUTING.md to get started with developer setup, testing, and PR guidelines.
| Linux-FaceLock | Howdy | fprintd | |
|---|---|---|---|
| Dynamic Island UI | β | β | β |
| PAM Integration | β | β | β |
| Lock Screen Unlock | β | β | β |
| Login Screen (LightDM/GDM) | β | β | β |
| Suspend/Resume Auto-Relock | β | β | β |
| Multi-distro Packages | β
.deb .rpm .pkg |
.deb only |
varies |
| Windows Support | β | β | β |
| Audio Feedback | β | β | β |
| Active Development (2026) | β |
This project is licensed under the MIT License β see the LICENSE file for details.
If Linux-FaceLock helped you, please consider giving it a β β it helps others discover the project!