Add screen lock and idle management to ringtail #211

Merged
eblume merged 1 commit from feature/ringtail-screen-lock into main 2026-02-19 06:46:38 -08:00
Owner

Summary

  • Configure swayidle to lock screen (swaylock) after 15 minutes of inactivity
  • Turn off display (DPMS) after 60 minutes, auto-restore on activity
  • swaylock themed with Catppuccin Macchiato to match existing Sway config
  • Add Mod4+l keybinding for manual screen lock
  • Add PAM service for swaylock authentication
  • Disable system suspend/hibernate entirely (workstation should never sleep)

What changes

All changes in nixos/ringtail/configuration.nix:

  • security.pam.services.swaylock — required for swaylock to authenticate on NixOS
  • systemd.sleep.extraConfig — blocks all sleep/hibernate modes
  • programs.swaylock (home-manager) — lock screen appearance config
  • services.swayidle (home-manager) — idle timeout daemon with lock + DPMS events
  • New keybinding Mod4+l for manual lock

Deployment and Testing

  • mise run provision-ringtail
  • Verify swayidle is running: systemctl --user status swayidle
  • Test manual lock with Super+l
  • Verify display DPMS off after idle (can lower timeout temporarily to test)
  • Confirm machine does not suspend: systemctl status sleep.target
## Summary - Configure **swayidle** to lock screen (swaylock) after 15 minutes of inactivity - Turn off display (DPMS) after 60 minutes, auto-restore on activity - **swaylock** themed with Catppuccin Macchiato to match existing Sway config - Add `Mod4+l` keybinding for manual screen lock - Add PAM service for swaylock authentication - Disable system suspend/hibernate entirely (workstation should never sleep) ## What changes All changes in `nixos/ringtail/configuration.nix`: - `security.pam.services.swaylock` — required for swaylock to authenticate on NixOS - `systemd.sleep.extraConfig` — blocks all sleep/hibernate modes - `programs.swaylock` (home-manager) — lock screen appearance config - `services.swayidle` (home-manager) — idle timeout daemon with lock + DPMS events - New keybinding `Mod4+l` for manual lock ## Deployment and Testing - [ ] `mise run provision-ringtail` - [ ] Verify swayidle is running: `systemctl --user status swayidle` - [ ] Test manual lock with `Super+l` - [ ] Verify display DPMS off after idle (can lower timeout temporarily to test) - [ ] Confirm machine does not suspend: `systemctl status sleep.target`
Configure swayidle + swaylock for automatic screen locking after 15
minutes of inactivity and display power-off after 60 minutes. Swaylock
uses Catppuccin Macchiato theme to match the existing Sway config.
Also adds Mod4+l keybinding for manual lock and disables system
suspend/hibernate entirely.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
eblume merged commit 9829a6f971 into main 2026-02-19 06:46:38 -08:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eblume/blumeops!211
No description provided.