This repository was archived by the owner on Aug 16, 2026. It is now read-only.
Releases: Tobiichi-Origuchi/tuigreety
Releases · Tobiichi-Origuchi/tuigreety
Release list
tip
Continuous build from master.
0.11.1
Added
36dfedcAdd explicit CLI overrides for disabling configured debug logging, issue and time display, remembered state, user discovery, secret feedback, mock mode, and power-command isolation.f641dd0Add configurable login prompt titles with hostname-based, custom, and hidden modes.75efc5dAdd an administrator-configured default username without requiring user enumeration or remembered state.83c410fAdd optional quiet session launch, discarding the authenticated session's standard output and error.5943e28Add non-fatal Num Lock activation for Linux virtual consoles.b639688Add battery status, configurable time and status-bar placement, and independent responsive controls for every status item.
Changed
761b674Keep configuration reload work off the async runtime and coalesce rapid updates to the latest bounded revision.dcff56dCalculate compatible multi-battery percentages from summed current and full capacities instead of averaging percentages.44f7423Cache static greeting, title, and status data and sample Caps Lock only when visible, reducing work during screen refreshes.
Fixed
533fa6aExpand/etc/issuewith a single-pass agetty-compatible subset, including\S{PRETTY_NAME}, and avoid an extra blank line before the prompt.7c5f23aPrevent an option missing its required value from consuming the valid option that follows it.6ec4718Apply standard XDG session paths for empty variables and reject malformed Desktop Entry groups, keys, locales, duplicates, and control characters.3534cf5Reject NUL-containing commands, wrappers, environment entries, and usernames without erasing valid lower-priority configuration.4635e8bWrite successful--helpoutput to standard output while keeping diagnostics on standard error.85e4c5fEvaluate sessionTryExecavailability using the greeter's effective execution permissions.0339386Reclaim the battery row when no battery is available and suppress stale battery data after the widget is disabled.
Security
4e5418aRedact PAM messages and greetd error descriptions from persistent debug logs.3f7c9ffEnforce an 8 MiB limit on incoming and outgoing greetd IPC frames before allocating or writing their bodies.177b224Read configuration through one bounded regular-file transaction and warn about unsafe ownership, modes, ancestors, or replacement paths.
0.11.0
Added
94fed78Add exact TOML argv arrays and explicitfalsevalues for power actions while retaining shell-quoted legacy strings.
Changed
81c7b33Read Caps Lock directly from the console and keep terminal I/O outside the shared UI lock for smoother rendering.55e1de8Resolve Wayland and X11 session paths independently and preserve sessions by stable identity across discovery.3c3c317Move configuration parsing and user/session discovery off the UI lock, serializing and coalescing rapid reloads.17536baReplace separate remember files with one versioned, transactional state cache and safe legacy migration.0299ba2Run power commands asynchronously with a visible waiting state, Escape cancellation, a 30-second timeout, and process-group cleanup.2209ed5Center prompts and their newest feedback as one responsive block on normal and constrained terminals.
Fixed
c2fcde0Keep user and session choices stable across unrelated reloads, close invalid menus, and apply deterministic fallbacks when choices disappear.bfc4565Surface rejected or failed hot reloads without replacing PAM prompts or other authentication feedback.56b02d1Hide disabled power actions and omit suspend or hibernate when no supported runtime manager is available.28225d3Parse command-line arguments once so help, version, and config checking follow the same option semantics without requiring a TTY or greetd.a0a3c2eSupervise terminal and configuration watcher workers, preventing EOF, errors, or worker failure from causing busy loops or silent stalls.648c4c4Preserve configured environment variables when the default session command is wrapped.a9ace20Reject blank or missing launch sources before authentication and cancel a live transaction if reload removes the final source.e780d57Accept valid F-key swaps and cycles atomically while rejecting conflicting keybinding layers.da364ebPreserve lower theme layers and make TOMLfalseexplicitly clear inherited colors.31c888cResolve UID defaults once per configuration revision and reject invalid one-sided range overrides atomically.1ac7aefGive startup, config checking, and hot reload consistent source-located diagnostics without making runtime configuration errors fatal.b720f0dApply identical, symlinked, or hard-linked system and explicit configuration files only once per revision.c71fde6Require a usable greetd connection before terminal or real power interaction while keeping mock and information-only modes socket-independent.
Security
17536baHarden remembered state against symlinks, hard links, special files, unsafe ownership or modes, oversized data, corruption, and concurrent writers.a72377fMove and zeroize PAM responses, queued requests, and serialized IPC frames across success, cancellation, failure, and shutdown paths.1ac7aefWarn when active configuration is not root-owned or is group/world-writable while preserving fail-open greeter startup.
0.10.3
Added
db6a095Add--ipc-timeoutandgeneral.ipc-timeoutcontrols for greetd transactions, with a 120-second default.
Changed
d891a6fFollow the Desktop Entry specification when discovering sessions, includingType,Hidden,TryExec, desktop-ID priority, and deterministic ordering.1d7873aParse sessionExecvalues with specification-compliant quoting and field-code handling while preserving exact arguments through greetd's shell invocation.f81f9e9Make text editing grapheme-aware and keep long input fields and menus usable through horizontal and vertical viewports.
Fixed
2843417Make multi-character password masks cycle predictably and prevent an empty mask from causing a panic.172f39bIgnore key-release events, handle repeated keys and compound modifiers correctly, and reveal an empty-prefix username completion only when exactly one eligible user exists.250d9acCorrect--versionand packaged notices to identify Tuigreety, its derivative status, both copyright holders, and the GPLv3+ license.606f785Start the selected session command consistently in both debug and release builds.db6a095Prevent 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.ebf89ebRestore raw mode, the alternate screen, and cursor visibility after normal exits, errors, panics, power actions,SIGINT, andSIGTERM.f81f9e9Prevent 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
3a44314Isolate and zeroize command-editor input so opening or closing nested menus cannot replace or retain a PAM response.
0.10.2
Added
46bf09cAdd CLI and TOML controls for explicitly enabling or disabling the legacy F2 command editor.
Changed
46bf09cDisable the unauthenticated F2 arbitrary-command editor by default; session commands now come from administrator configuration or installed sessions unless explicitly enabled.
Fixed
99edd90Exclude the executable name from option parsing, removing the spuriousunexpected positional argument 'tuigreet'warning.46bf09cUpdate remembered usernames and sessions only after greetd confirms the exact submitted session started; failed or cancelled attempts no longer change the cache.7786e54Keep--versionnonempty and current for release tags, development commits, dirty trees, shallow clones, and source archives.f4f3a06Preserve unrelated valid options when duplicate, unknown, malformed, positional, or non-UTF-8 command-line arguments are ignored.003d741Prevent authentication success and real or mock power actions from deadlocking behind a full render/event queue.
Security
c5d3ab8Write debug logs only to private regular files, reject unsafe links and special files, and redact session commands and environment values.
0.10.1
Added
5bf0e03Add configuration hot reload with last-known-good fallback for invalid updates.af9d6b4Add--check-config, source-located diagnostics, and a fully documented system configuration template.
Changed
5bb3a73Restrict display-manager configuration to system and explicitly selected files; CLI options remain highest priority.af9d6b4Reject duplicate TOML keys and preserve valid runtime settings when configuration parsing fails.
Fixed
aec2031Prevent exit requests from deadlocking when the event queue is full.
Removed
811434cRemove external text overrides and the obsoletetext.confinterface.
0.10.0
Changelog
0.10.0 - 2026-07-14
Added
59906e4Add suspend and hibernate actions, selectingsystemctlfor systemd andloginctlfor elogind systems (inspired by NotAShelf's fork commit993ad6f).b646be4Add--mockmode for previewing the interface and authentication flow without a running greetd instance.c5ee801Add configurable refresh rates with--refresh-rate, while keeping cursor blinking on an independent, stable timer.262ca68Add opt-in username completion with--user-autocomplete, including unique-prefix and single-user completion.ba6d6b7Add layered TOML configuration with CLI, user, and system precedence; invalid fields produce warnings without preventing startup.50c6be3Add complete TOML theme configuration for every existing theme color field.
Changed
20332b5Ignore unknown command-line options with a warning so stale greetd configurations can still start the greeter.8a57206Allow a user-menu UID range containing a single UID (adapted from NotAShelf's fork commitb629525).8fd54e4Support the full 32-bit UID range in user filtering (adapted from NotAShelf's fork commit9a812bd).b379c21Replace built-in i18n assets with opt-in text override files, allowing every displayed label to be customized without loading localization data by default.3d13831Complete initial authentication before the first visible frame when a user is already selected, avoiding the one-row-to-two-row prompt jump.9b0850dRename the project and package totuigreetywhile retaining thetuigreetexecutable name for configuration compatibility.
Fixed
4bc8f2cUse the real terminal dimensions for the first frame, preventing an initial layout rendered at the wrong size.15746f1Clear the startup screen directly through crossterm, restoring immediate display after Plymouth or boot handoff.4226ebaPrevent concurrent IPC handling from racing over greetd state (adapted from NotAShelf's fork commite0785c4).6d9af2dPrevent empty session, user, command, or power menus from underflowing or panicking (adapted from NotAShelf's fork PR #58).80c84e0Preserve intentional leading and trailing whitespace in greeting text.0c72ee0Allow--help,--version, and other information-only options to run withoutGREETD_SOCK(fixes upstream issue #178).25af04fDeduplicate configured session search paths while preserving their order (adapted from NotAShelf's fork commitde73f43).c5ee801Prevent periodic redraws from resetting the visible cursor blink phase.
Removed
b379c21Remove bundled translations and their runtime dependencies; custom text files now provide the localization interface.