Commits

trunk
All users
Until Feb 10, 2026
February 2026
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
1 2 3 4 5 6 7
8 9 10 11 12 13 14

Commits on February 3, 2026

  1. espadonne committed

Commits on January 24, 2026

  1. mfwolffe committed
  2. mfwolffe committed

Commits on January 18, 2026

  1. mfwolffe committed
  2. espadonne committed

Commits on January 17, 2026

  1. espadonne committed

Commits on January 16, 2026

  1. Add daemon mode and CLI subcommands
    New subcommands:
    - daemon: Listen for IPC lock commands
    - lock: Send to daemon or lock directly
    - status: Query lock state from daemon
    - shutdown: Gracefully stop daemon
    
    Default (no args) locks directly for backwards compatibility.
    Daemon handles lock/query-state/shutdown commands via IPC.
    mfwolffe committed
  2. Add IPC module for daemon communication
    Unix socket-based IPC at $XDG_RUNTIME_DIR/garlock.sock:
    - JSON protocol with Command/Response/Event types
    - Non-blocking server for daemon mode
    - Client for sending commands to running daemon
    - Socket cleanup on exit
    mfwolffe committed
  3. Add ctrlc dependency for signal handling
    Required for graceful daemon shutdown on SIGTERM/SIGINT.
    mfwolffe committed
  4. Add time format documentation to config
    Document common strftime patterns:
    - 24-hour with/without seconds
    - 12-hour with AM/PM
    - Day and full date formats
    mfwolffe committed
  5. Add dev feature for escape key exit
    Production builds no longer allow escape to exit - only successful
    PAM authentication unlocks the screen. Use --features dev for testing.
    mfwolffe committed
  6. Optimize blur with downsample-blur-upsample
    Significantly faster blur processing by:
    1. Downsampling image to 1/4 resolution
    2. Applying blur at reduced size (16x fewer pixels)
    3. Upsampling back to original resolution
    
    Especially beneficial on ARM where image processing is slower.
    mfwolffe committed
  7. Integrate text overlays into render loop
    - Add overlay renderer initialization
    - Composite time, caps lock, failed attempts, and cooldown overlays
    - Position overlays relative to ring center
    - Add periodic 1-second timer for time display updates
    - Make escape key exit conditional on 'dev' feature
    mfwolffe committed
  8. Add text overlay renderer for lock screen
    Pango/Cairo-based text rendering for:
    - Configurable time display with strftime formats
    - Caps Lock warning indicator
    - Failed authentication attempts counter
    - Cooldown timer display
    
    Includes alpha compositing for overlay blending onto background.
    mfwolffe committed
  9. Add chrono dependency for time formatting
    Required for configurable time display on lock screen with strftime patterns.
    mfwolffe committed
  10. Add cooldown after repeated failed attempts
    - Block authentication during cooldown period
    - Start cooldown after max_attempts failures (default 3)
    - Configurable cooldown duration (default 5 seconds)
    - Reset attempt counter after cooldown expires
    mfwolffe committed
  11. mfwolffe committed
  12. Add main entry point and event loop
    - CLI with clap: --daemon, --config, --debug, --lock
    - Screenshot capture and blur on startup
    - Keyboard input handling with ring feedback
    - PAM authentication on Enter key
    - Timer-based state updates and rendering
    mfwolffe committed
  13. Add PAM authentication module
    - Background thread for non-blocking auth
    - Password verification via system-auth PAM stack
    - Requires /etc/pam.d/garlock config
    mfwolffe committed
  14. Add dual state machine for auth and input
    - AuthState: Idle, Validating, Invalid
    - InputState: Idle, Letter, Backspace, Clear, Neutral
    - Timer-based state decay (300ms input, 1500ms invalid)
    - Ring state mapping from combined auth/input states
    mfwolffe committed
  15. Add secure password buffer with zeroize
    - Automatic memory zeroing on drop
    - UTF-8 character support for international passwords
    - Proper backspace handling for multi-byte characters
    mfwolffe committed
  16. Add XKB keyboard input handling
    - Keycode to character mapping via xkbcommon
    - Special key detection: Enter, Backspace, Escape, Ctrl+U
    - Modifier key filtering (Shift, Ctrl, Alt, Caps Lock)
    - Caps Lock state detection
    mfwolffe committed
  17. Add swaylock-style ring indicator
    - Cairo-based circular ring rendering
    - State-based colors: idle, typing, verifying, wrong, clear
    - Segment highlighting for keystroke feedback
    - Alpha compositing onto background
    mfwolffe committed
  18. Add background processing with gaussian blur
    - Convert screenshot to blurred background
    - Configurable blur radius and brightness
    - Fallback solid color support
    mfwolffe committed
  19. Add screenshot capture from root window
    - XGetImage-based screen capture
    - BGRA pixel format for X11 compatibility
    mfwolffe committed
  20. Add X11 window with keyboard/pointer grabs
    - LockerWindow for fullscreen override-redirect window
    - Keyboard and pointer grabs for security
    - RandR monitor detection for multi-monitor support
    mfwolffe committed
  21. Add configuration module with TOML support
    - Config structs for general, background, ring, indicator, font
    - Auto-create default config on first run
    - Load from ~/.config/garlock/config.toml
    mfwolffe committed
  22. mfwolffe committed
  23. Initial project setup
    - Workspace Cargo.toml with dependencies
    - .gitignore for Rust project
    mfwolffe committed