Skip to content
This repository was archived by the owner on Aug 16, 2026. It is now read-only.

Releases: Tobiichi-Origuchi/tuigreety

tip

tip Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Jul 11:07
e4f250c

Continuous build from master.

0.11.1

Choose a tag to compare

@github-actions github-actions released this 20 Jul 11:50
0.11.1
0a36f9a

Added

  • 36dfedc Add explicit CLI overrides for disabling configured debug logging, issue and time display, remembered state, user discovery, secret feedback, mock mode, and power-command isolation.
  • f641dd0 Add configurable login prompt titles with hostname-based, custom, and hidden modes.
  • 75efc5d Add an administrator-configured default username without requiring user enumeration or remembered state.
  • 83c410f Add optional quiet session launch, discarding the authenticated session's standard output and error.
  • 5943e28 Add non-fatal Num Lock activation for Linux virtual consoles.
  • b639688 Add battery status, configurable time and status-bar placement, and independent responsive controls for every status item.

Changed

  • 761b674 Keep configuration reload work off the async runtime and coalesce rapid updates to the latest bounded revision.
  • dcff56d Calculate compatible multi-battery percentages from summed current and full capacities instead of averaging percentages.
  • 44f7423 Cache static greeting, title, and status data and sample Caps Lock only when visible, reducing work during screen refreshes.

Fixed

  • 533fa6a Expand /etc/issue with a single-pass agetty-compatible subset, including \S{PRETTY_NAME}, and avoid an extra blank line before the prompt.
  • 7c5f23a Prevent an option missing its required value from consuming the valid option that follows it.
  • 6ec4718 Apply standard XDG session paths for empty variables and reject malformed Desktop Entry groups, keys, locales, duplicates, and control characters.
  • 3534cf5 Reject NUL-containing commands, wrappers, environment entries, and usernames without erasing valid lower-priority configuration.
  • 4635e8b Write successful --help output to standard output while keeping diagnostics on standard error.
  • 85e4c5f Evaluate session TryExec availability using the greeter's effective execution permissions.
  • 0339386 Reclaim the battery row when no battery is available and suppress stale battery data after the widget is disabled.

Security

  • 4e5418a Redact PAM messages and greetd error descriptions from persistent debug logs.
  • 3f7c9ff Enforce an 8 MiB limit on incoming and outgoing greetd IPC frames before allocating or writing their bodies.
  • 177b224 Read configuration through one bounded regular-file transaction and warn about unsafe ownership, modes, ancestors, or replacement paths.

0.11.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 06:49
0.11.0
06dc6b4

Added

  • 94fed78 Add exact TOML argv arrays and explicit false values for power actions while retaining shell-quoted legacy strings.

Changed

  • 81c7b33 Read Caps Lock directly from the console and keep terminal I/O outside the shared UI lock for smoother rendering.
  • 55e1de8 Resolve Wayland and X11 session paths independently and preserve sessions by stable identity across discovery.
  • 3c3c317 Move configuration parsing and user/session discovery off the UI lock, serializing and coalescing rapid reloads.
  • 17536ba Replace separate remember files with one versioned, transactional state cache and safe legacy migration.
  • 0299ba2 Run power commands asynchronously with a visible waiting state, Escape cancellation, a 30-second timeout, and process-group cleanup.
  • 2209ed5 Center prompts and their newest feedback as one responsive block on normal and constrained terminals.

Fixed

  • c2fcde0 Keep user and session choices stable across unrelated reloads, close invalid menus, and apply deterministic fallbacks when choices disappear.
  • bfc4565 Surface rejected or failed hot reloads without replacing PAM prompts or other authentication feedback.
  • 56b02d1 Hide disabled power actions and omit suspend or hibernate when no supported runtime manager is available.
  • 28225d3 Parse command-line arguments once so help, version, and config checking follow the same option semantics without requiring a TTY or greetd.
  • a0a3c2e Supervise terminal and configuration watcher workers, preventing EOF, errors, or worker failure from causing busy loops or silent stalls.
  • 648c4c4 Preserve configured environment variables when the default session command is wrapped.
  • a9ace20 Reject blank or missing launch sources before authentication and cancel a live transaction if reload removes the final source.
  • e780d57 Accept valid F-key swaps and cycles atomically while rejecting conflicting keybinding layers.
  • da364eb Preserve lower theme layers and make TOML false explicitly clear inherited colors.
  • 31c888c Resolve UID defaults once per configuration revision and reject invalid one-sided range overrides atomically.
  • 1ac7aef Give startup, config checking, and hot reload consistent source-located diagnostics without making runtime configuration errors fatal.
  • b720f0d Apply identical, symlinked, or hard-linked system and explicit configuration files only once per revision.
  • c71fde6 Require a usable greetd connection before terminal or real power interaction while keeping mock and information-only modes socket-independent.

Security

  • 17536ba Harden remembered state against symlinks, hard links, special files, unsafe ownership or modes, oversized data, corruption, and concurrent writers.
  • a72377f Move and zeroize PAM responses, queued requests, and serialized IPC frames across success, cancellation, failure, and shutdown paths.
  • 1ac7aef Warn when active configuration is not root-owned or is group/world-writable while preserving fail-open greeter startup.

0.10.3

Choose a tag to compare

@github-actions github-actions released this 18 Jul 01:24
0.10.3
3aa7a5c

Added

  • db6a095 Add --ipc-timeout and general.ipc-timeout controls for greetd transactions, with a 120-second default.

Changed

  • d891a6f Follow the Desktop Entry specification when discovering sessions, including Type, Hidden, TryExec, desktop-ID priority, and deterministic ordering.
  • 1d7873a Parse session Exec values with specification-compliant quoting and field-code handling while preserving exact arguments through greetd's shell invocation.
  • f81f9e9 Make text editing grapheme-aware and keep long input fields and menus usable through horizontal and vertical viewports.

Fixed

  • 2843417 Make multi-character password masks cycle predictably and prevent an empty mask from causing a panic.
  • 172f39b Ignore key-release events, handle repeated keys and compound modifiers correctly, and reveal an empty-prefix username completion only when exactly one eligible user exists.
  • 250d9ac Correct --version and packaged notices to identify Tuigreety, its derivative status, both copyright holders, and the GPLv3+ license.
  • 606f785 Start the selected session command consistently in both debug and release builds.
  • db6a095 Prevent greetd errors or stalled PAM exchanges from freezing the greeter; failures are surfaced, recoverable connections are retried, cancellation remains responsive, and state changes render immediately.
  • ebf89eb Restore raw mode, the alternate screen, and cursor visibility after normal exits, errors, panics, power actions, SIGINT, and SIGTERM.
  • f81f9e9 Prevent layout overflow and cursor errors on tiny terminals, extreme dimensions, and Unicode input; oversized interactive values now produce a visible warning instead of growing without bound.

Security

  • 3a44314 Isolate and zeroize command-editor input so opening or closing nested menus cannot replace or retain a PAM response.

0.10.2

Choose a tag to compare

@github-actions github-actions released this 17 Jul 03:01
0.10.2
a7dbfb0

Added

  • 46bf09c Add CLI and TOML controls for explicitly enabling or disabling the legacy F2 command editor.

Changed

  • 46bf09c Disable the unauthenticated F2 arbitrary-command editor by default; session commands now come from administrator configuration or installed sessions unless explicitly enabled.

Fixed

  • 99edd90 Exclude the executable name from option parsing, removing the spurious unexpected positional argument 'tuigreet' warning.
  • 46bf09c Update remembered usernames and sessions only after greetd confirms the exact submitted session started; failed or cancelled attempts no longer change the cache.
  • 7786e54 Keep --version nonempty and current for release tags, development commits, dirty trees, shallow clones, and source archives.
  • f4f3a06 Preserve unrelated valid options when duplicate, unknown, malformed, positional, or non-UTF-8 command-line arguments are ignored.
  • 003d741 Prevent authentication success and real or mock power actions from deadlocking behind a full render/event queue.

Security

  • c5d3ab8 Write debug logs only to private regular files, reject unsafe links and special files, and redact session commands and environment values.

0.10.1

Choose a tag to compare

@github-actions github-actions released this 15 Jul 08:49
0.10.1
49873ce

Added

  • 5bf0e03 Add configuration hot reload with last-known-good fallback for invalid updates.
  • af9d6b4 Add --check-config, source-located diagnostics, and a fully documented system configuration template.

Changed

  • 5bb3a73 Restrict display-manager configuration to system and explicitly selected files; CLI options remain highest priority.
  • af9d6b4 Reject duplicate TOML keys and preserve valid runtime settings when configuration parsing fails.

Fixed

  • aec2031 Prevent exit requests from deadlocking when the event queue is full.

Removed

  • 811434c Remove external text overrides and the obsolete text.conf interface.

0.10.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 12:08
0.10.0
fe99667

Changelog

0.10.0 - 2026-07-14

Added

  • 59906e4 Add suspend and hibernate actions, selecting systemctl for systemd and loginctl for elogind systems (inspired by NotAShelf's fork commit 993ad6f).
  • b646be4 Add --mock mode for previewing the interface and authentication flow without a running greetd instance.
  • c5ee801 Add configurable refresh rates with --refresh-rate, while keeping cursor blinking on an independent, stable timer.
  • 262ca68 Add opt-in username completion with --user-autocomplete, including unique-prefix and single-user completion.
  • ba6d6b7 Add layered TOML configuration with CLI, user, and system precedence; invalid fields produce warnings without preventing startup.
  • 50c6be3 Add complete TOML theme configuration for every existing theme color field.

Changed

  • 20332b5 Ignore unknown command-line options with a warning so stale greetd configurations can still start the greeter.
  • 8a57206 Allow a user-menu UID range containing a single UID (adapted from NotAShelf's fork commit b629525).
  • 8fd54e4 Support the full 32-bit UID range in user filtering (adapted from NotAShelf's fork commit 9a812bd).
  • b379c21 Replace built-in i18n assets with opt-in text override files, allowing every displayed label to be customized without loading localization data by default.
  • 3d13831 Complete initial authentication before the first visible frame when a user is already selected, avoiding the one-row-to-two-row prompt jump.
  • 9b0850d Rename the project and package to tuigreety while retaining the tuigreet executable name for configuration compatibility.

Fixed

  • 4bc8f2c Use the real terminal dimensions for the first frame, preventing an initial layout rendered at the wrong size.
  • 15746f1 Clear the startup screen directly through crossterm, restoring immediate display after Plymouth or boot handoff.
  • 4226eba Prevent concurrent IPC handling from racing over greetd state (adapted from NotAShelf's fork commit e0785c4).
  • 6d9af2d Prevent empty session, user, command, or power menus from underflowing or panicking (adapted from NotAShelf's fork PR #58).
  • 80c84e0 Preserve intentional leading and trailing whitespace in greeting text.
  • 0c72ee0 Allow --help, --version, and other information-only options to run without GREETD_SOCK (fixes upstream issue #178).
  • 25af04f Deduplicate configured session search paths while preserving their order (adapted from NotAShelf's fork commit de73f43).
  • c5ee801 Prevent periodic redraws from resetting the visible cursor blink phase.

Removed

  • b379c21 Remove bundled translations and their runtime dependencies; custom text files now provide the localization interface.