# harshjsh01/rio.facelock architecture

> Architecture diagram of the GitHub repository harshjsh01/rio.facelock, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/harshjsh01/rio.facelock
- Repository: https://github.com/harshjsh01/rio.facelock

## Overview

This repository is a small Omarchy/Quickshell biometric desktop plugin. Its documented workflow connects the desktop service to the session manager and PAM-backed authentication; the lock view presents the animated scan, success state, and password fallback. The README also describes face and fingerprint authentication across lock screen, SDDM, sudo, and Polkit, plus separate cold-boot disk protection. No source excerpts were provided, so links beyond these documented relationships are omitted.

Main entry points: [`Service.qml`](https://github.com/harshjsh01/rio.facelock/blob/main/Service.qml) (Quickshell Service), [`LockView.qml`](https://github.com/harshjsh01/rio.facelock/blob/main/LockView.qml) (Lock Screen UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop Plugin"]
  node_service["Quickshell Service<br/>[Service.qml]"]
  node_lockview["Lock Screen UI<br/>[LockView.qml]"]
  node_manifest["Plugin Manifest<br/>[manifest.json]"]
end

subgraph group_auth["Authentication"]
  node_pam["PAM Stack"]
  node_facelock["Face Recognition"]
  node_fingerprint["Fingerprint Service"]
  node_authentry["System Auth Entry Points"]
end

subgraph group_integrations["System Integrations"]
  node_session["Omarchy Session Manager"]
  node_onnx["ONNX Runtime"]
  node_camera["Camera"]
  node_coldboot["Cold-Boot Disk Unlock"]
end

node_user(("User"))

node_user -->|"uses"| node_lockview
node_service -->|"connects to"| node_session
node_service -->|"interfaces with"| node_pam
node_authentry -->|"requests authentication"| node_pam
node_pam -->|"uses face auth"| node_facelock
node_pam -->|"uses fingerprint"| node_fingerprint
node_facelock -->|"captures image"| node_camera
node_facelock -->|"runs inference"| node_onnx
node_user -->|"unlocks disk"| node_coldboot

click node_service "https://github.com/harshjsh01/rio.facelock/blob/main/Service.qml"
click node_lockview "https://github.com/harshjsh01/rio.facelock/blob/main/LockView.qml"
click node_manifest "https://github.com/harshjsh01/rio.facelock/blob/main/manifest.json"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_service,node_lockview,node_manifest,node_user toneBlue
class node_pam,node_facelock,node_fingerprint,node_authentry toneAmber
class node_session,node_onnx,node_camera,node_coldboot toneMint
```

## Components

### Desktop Plugin

- [Quickshell Service](https://github.com/harshjsh01/rio.facelock/blob/main/Service.qml): `Service.qml`
- [Lock Screen UI](https://github.com/harshjsh01/rio.facelock/blob/main/LockView.qml): `LockView.qml`
- [Plugin Manifest](https://github.com/harshjsh01/rio.facelock/blob/main/manifest.json): `manifest.json`

### Authentication

- **PAM Stack**
- **Face Recognition**
- **Fingerprint Service**
- **System Auth Entry Points**

### System Integrations

- **Omarchy Session Manager**
- **ONNX Runtime**
- **Camera**
- **Cold-Boot Disk Unlock**

### Other components

- **User**

## Connections

- User → Lock Screen UI: uses
- Quickshell Service → Omarchy Session Manager: connects to
- Quickshell Service → PAM Stack: interfaces with
- System Auth Entry Points → PAM Stack: requests authentication
- PAM Stack → Face Recognition: uses face auth
- PAM Stack → Fingerprint Service: uses fingerprint
- Face Recognition → Camera: captures image
- Face Recognition → ONNX Runtime: runs inference
- User → Cold-Boot Disk Unlock: unlocks disk
