Releases: tuxx/fancylock
Release v0.0.9
🛡️ v0.0.9 - Focus & Polish
✨ Features
- Wayland Keyboard Improvements (#4)
- Enhanced key event handling for Wayland, including support for modifier keys like Shift and Alt.
- Removed debug log that printed password characters.
🧹 Refactoring
-
Cleaner Help Output
- Unified flag formatting: short (
-c) and long (--config) variants are clearly grouped. - Removed configuration examples from help text to keep it concise.
- Unified flag formatting: short (
-
Configuration & Codebase Simplification
- Removed unused features:
IdleTimeout,BlurBackground,BackgroundColor, andMediaPlayerCmdsettings.- Idle monitoring implementations for both X11 and Wayland.
- Media playback is now hardcoded to mpv, simplifying player integration.
- New media control options (disabled by default):
lock_pause_media: pause media on lock.unlock_unpause_media: resume on unlock.
- Removed unused features:
🛠 Fixes
- Proper handling of modifiers in Wayland input.
- Eliminated accidental logging of sensitive password input.
Release v0.0.8
🚀 fancylock v0.0.8 – “Centralized Security, Dynamic Display”
This release brings major architectural improvements, smarter resolution handling, visual polish, and a faster, more unified approach to lockout logic. Designed to make your lockscreen smarter, leaner, and more adaptable—no matter your display setup.
🔐 Pam.d service file
- PAM rules optimized for faster password checks.
🛡️ Lockout Logic Consolidation
- Introduced a
LockoutManagerto unify lockout behavior across X11 and Wayland. - Lockout policies are now centrally managed, reducing duplicated logic and ensuring consistent security enforcement.
- Cleaner codebase with lockout logic abstracted into
lockout.go.
📺 Smarter Multi-Monitor & Resolution Handling
- Wayland implementation no longer relies on hardcoded resolutions like
3840x2160. - New
getSurfaceDimensions()helper dynamically adapts to your monitor layout. - Uses fallback dimensions only when necessary, improving compatibility with unusual setups.
🔐 UI & UX Improvements
- Lock screen now appears only after the shake animation completes—no more overlapping visuals.
- Updated intruder message:
INTRUDER ALERT Security cooldown engaged <timer> - Improved feedback and better timed transitions during lockout events.
🎶 Multi-Monitor Audio Enhancement
- Each monitor can now play more unique media independently, enhancing the multi-display experience.
🧼 Internal Cleanup & Packaging
- Moved common types to
internal/types.gofor better modularity. - Removed verbose debug/info logs by default. You can now opt-in to nerdy logs.
- Arch AUR package updated:
- Installs the proper
pam.dfile.
- Installs the proper
🚧 Upcoming for future versions:
- For sure: Improved X11 lockscreen messages. Quite ugly now.
- For sure: Be able to set the lockout message when 3 wrong passwords are entered.
- Maybe: Consolidate drawing logic for wayland/x11. Not sure if this has a benefit yet.
- Maybe: Instead of running mpv commands, use a go library to display videos/images.
fancylock v0.0.8 continues our mission of secure, polished, and elegant screen locking on Wayland and X11. ✨
Release v0.0.7
🚀 FancyLock v0.0.7
This release is packed with security, usability, and visual improvements for an even fancier screen locking experience.
✨ New Features
-
Custom PAM Service
Now uses its own PAM config to bypass faillock lockouts, preventing extended lockouts from repeated login failures. -
Built-in Font
No more font issues—fonts are now baked into the binary.
🖼️ UI Improvements
-
Larger Password Dots and Lockout Messages
Clearer, more prominent visuals across all monitors. -
Big "LOCKED" and Timer
Makes it unmistakable that the screen is locked, and how long until retry.
🔐 Security & Stability
-
SecurePassword Handling
Passwords are now stored in memory-safe structures with zero-wipe protection. -
PAM Lockout Logic
Improved lockout visuals and retry timers, complete with countdown and shaking animation. -
Wayland & Hyprland Fixes
Fixed crashes on authentication flow and resource leaks, especially under Hyprland. -
Post-Unlock Delay
Small delay after unlocking ensures all Wayland resources clean up cleanly.
🧠 Internal Improvements
-
Switched from
xrandrcommand to native XRandR extension
No more shelling out to detect monitors—FancyLock now uses Go-native X11 calls for speed and reliability. -
Mutex Protection
Thread-safe access to shared resources like media processes and lock state. -
Better Logging & Error Handling
Log clarity improved across authentication, monitor detection, and media handling.
Thanks for using FancyLock! ❤️
Stay secure, stay fancy.
Release v0.0.6
🎉 FancyLock v0.0.6 released! 🔒📼
This release brings no functional changes to the locker itself, but...
🚀 We now have an official Arch Linux AUR package!
You can install FancyLock on Arch and Arch-based distros via:
yay -S fancylock-binOr manually:
git clone https://aur.archlinux.org/fancylock-bin.git
cd fancylock-bin
makepkg -si🧠 fancylock-bin installs the precompiled binary from GitHub releases — no Go compiler needed.
✅ Includes:
- All recent fixes
- Prebuilt
fancylock-linux-amd64 - AUR publishing automation 🎉
Thanks for using FancyLock!
Release v0.0.5
🦚 FancyLock v0.0.5 – Hyprland, Hooks & Hype
This release brings Hyprland into the fold! 🎉
We now support basic functionality under Hyprland, so your sleek Hyprland setup just got a whole lot fancier.
✨ New Features
- 🧠 Hyprland Support (Basic)
Fancylock now plays nicely with Hyprland, laying the groundwork for deeper integration and smooth multi-monitor setups. - 🔧 pre_lock_command & post_lock_command
You can now run custom shell commands before and after locking the screen in your config.json.
Use cases include dimming the display, muting audio, or preparing your system for lockdown in style.
Ready to give it a spin? Update to v0.0.5 and level up your lock screen game.
Release v0.0.4
More logging for x11 sessions
- Added more logging to easier debug x11 sessions.
[auto] go fmt applied to staged files
Release v0.0.3
project structure, build system & git hooks.
Main new thing for the release
- Added native
-vflag using embedded version info
Internal code structure changes
- Moved all non-main Go files into internal/ for cleaner separation
- Introduced Makefile with multi-arch support (amd64, arm64, arm)
- Embedded version metadata (git tag, commit, build date) via ldflags
- Updated GitHub Actions to use Makefile for builds and packaging
- Updated README.md with new build instructions and make targets
- Added .githooks to run go fmt before commit.
This sets up FancyLock for clean CI builds, multi-platform releases (thought we still only builds amd64 for now), and future expansion 🎉
(HAPPY HAKKR NOISES)
Release v0.0.2
New Features
Improved Command-Line Interface
- Default Help Display: Running FancyLock without any parameters now shows the help screen instead of starting in idle monitor mode
- Enhanced Usage Instructions: Clearer documentation of all available options directly in the CLI
- Usage Examples: Common usage patterns are now displayed in the help text
Installation
- Download the appropriate release for your system
- Extract the archive:
tar -xzvf fancylock-linux.tar.gz - Make the binary executable:
chmod +x fancylock - Run with
./fancylock
Configuration
FancyLock looks for a configuration file at ~/.config/fancylock/config.json. You can specify a different configuration file using the -c option.
Release v0.0.1
First official release of FancyLock, a fancy X11 screen locker with media playback capabilities.
Key features:
- X11 screen locking with password authentication via PAM
- Media playback during lock screen (videos and images)
- Multi-monitor support
- Configurable idle timeout for automatic locking
- Configurable logging system with debug mode
Known limitations:
- No Wayland support yet
- Limited styling options
This initial release provides a stable foundation for future improvements
while delivering the core functionality of a screen locker with media playback.