Skip to content

Releases

v0.4.0

Choose a tag to compare

@AuthenticSm1les AuthenticSm1les released this 07 Nov 11:31

Breaking changes

  • The in-greeter PAM and fingerprint backends are gone. greetd already runs PAM, so all authentication now goes through greetd. For fingerprint login, add auth sufficient pam_fprintd.so to /etc/pam.d/greetd. Removed with them: the auth:* options and the $PAMFAIL, $PAMPROMPT, $FPRINTFAIL, $FPRINTPROMPT, $USER and $DESC label variables. The pam and sdbus-c++ dependencies are dropped too.
  • general:debug_mode and general:debug_log_path are replaced by command-line flags. The flags take effect before the config is parsed, so config errors now reach the debug log:
    • -d / --debug (or HYPRLOGIN_DEBUG=1) turns on debug logging and logs to /var/cache/hyprlogin/debug.log.
    • --log-file <path> (or HYPRLOGIN_LOG_FILE) writes the log to a different file.
    • The environment variables can go in greetd's command, so you don't have to edit hyprland-greeter.lua.
  • The greeter no longer runs with --verbose. It logged every frame into greetd's journal.

Removed options in an existing config are reported as config errors, and the greeter starts anyway.

New

  • Remembers the last user and session, like tuigreet does. On by default: sessions:remember_user, sessions:remember_session and sessions:remember_dir. The cache directory is created by the package's tmpfiles.d entry.
  • Nix flake with a package, an overlay and a NixOS module (programs.hyprlogin).

Fixes

  • The password never appears in the debug log, and neither does its length.
  • The debug log file is created with mode 0600 and doesn't follow symlinks. Lines are written unbuffered, so a crash doesn't lose them.
  • XDG_CURRENT_DESKTOP is set correctly for sessions with several DesktopNames (#17, thanks @prismaticbridge).
  • Logging in before the session lock is active no longer leaves the greeter stuck (#15, thanks @manumuxoz).
  • The binary is rebuilt against libhyprgraphics.so.5 (#16).
  • A warning is logged when a background or image isn't readable by the greeter user.
  • Fixed the exit_command syntax in the example config.
  • Upstream hyprlock fixes: auth now starts only once the session lock is acquired (hyprwm/hyprlock#1091), and a failure message stays until the next key press (hyprwm/hyprlock#1084).

Prebuilt binary

Built on Arch Linux for x86_64, against hyprlang (.so.2), hyprutils (.so.13) and hyprgraphics (.so.5).

  • hyprlogin-0.4.0-x86_64.tar.gz has the binary, the configs and the tmpfiles.d entry:

    sudo tar -xzf hyprlogin-0.4.0-x86_64.tar.gz -C /
    sudo systemd-tmpfiles --create hyprlogin.conf
  • hyprlogin is the bare stripped binary.

SHA256SUMS has the checksums for both files.

v0.3.0

Choose a tag to compare

@AuthenticSm1les AuthenticSm1les released this 13 Sep 09:48

What's changed

  • Fixed slow login: exit_command now works on the Lua-config greeter (hyprctl eval 'hl.dispatch(hl.dsp.exit())'), eliminating the ~5s greetd timeout wait.
  • Synced 13 upstream hyprlock fixes: EGL/rendering, animation, config parsing, PAM (deadlock, fprintd, conversation), lock-surface, cmake libpam.
  • Removed lock-screen-only code: screencopy + dmabuf/GBM, grace period, SIGUSR1 external-unlock.
  • Documentation: HYPRLOCK-DIVERGENCE.md so future upstream ports don't reintroduce removed subsystems.

Binary

Pre-built hyprlogin (x86_64, stripped). Install with:

sudo install -Dm755 hyprlogin /usr/bin/hyprlogin

v0.2.0

Choose a tag to compare

@AuthenticSm1les AuthenticSm1les released this 29 May 22:28

What Changed

  • Crash fix: Added hide_when_empty to label config values map (was missing, caused RASSERT abort on startup)
  • New feature: hide_when_empty config option for labels
  • $GREETD_USER improvement: Clears entire format string when no username set
  • Greet label: Enabled by default in example.conf with font_size = 16 and hide_when_empty = true
  • Debug logging: Added formatString logging for easier diagnosis

v0.1.0

Choose a tag to compare

@AuthenticSm1les AuthenticSm1les released this 23 May 16:27

What changed

  • Dead code removal (15+ files cleaned)
  • Bug fix: isExecutableCommand() infinite loop with env-var prefixes
  • Bug fix: updatePlaceholder $FAIL mutation corrupting placeholder text after failed login
  • Bug fix: redundant updatePlaceholder calls (~50/sec → 2 per session)
  • Bug fix: layout label overlap (250px → 25%)
  • Global debug logging via Log::CLogger::debug()
  • 9 test suites with 191 tests
  • Created src/helpers/Box.hpp wrapper

Full changelog: d229ed6...5ca0998