How much features??!!
Note: This version has only been released on Codeberg, as the previous release suggested. Please move all links that point to the GitHub mirror to this Codeberg repository. Thanks!
Hey everyone! Today I'm finally pleased to announce the release of Ly v1.1.0, a quite hefty release I must say! It packs a bunch of new features and bug fixes. Here are all the new features introduced with this release (in no particular order):
- Added support for 32-bit "true" color
- Added a new color mix animation
- Added brightness control support with
brightnessctl - Added support for the s6 & dinit service managers
- Added support for building without X11 support
- Added pam_systemd & elogind integration with the default PAM file
- Added better authentication support for FreeBSD
- Added better compatibility for 32-bit systems, particularly when building
- Added an error message when the config file cannot be loaded successfully
- Added support for setting numlock on BSD
- Added support for multiple (cyclable) messages in the info line
- Added an animation timeout option in the config (
animation_timeout_sec) - Added support for patching resource files (config, scripts, services, etc...) directly when building Ly
- Added support for running login & logout scripts
- Added an error message when numlock cannot be set
- Added session logging support (only works with shell & Wayland sessions)
- Added support for Farsi digits in the big clock
- Added support for centering the session name on screen
- Added an error message when the sleep command fails
- Added a helper script in order to keep lang files synchronized with the code
- Added support for using hexadecimal numbers in the config file
- Added support for using up to a UTF-32 codepoint for the password asterisk
- Added support for empty passwords
- Added an internal animation framework for more easily handling animations
- Added support for crawling multiple session directories
- Made the foreground color used in the CMatrix animation customizable
- Made the default Vi mode customizable
- Switched from the utmp library to utmpx for better FreeBSD support
- Improved the config migrator
- Made the password asterisk optional (the password is hidden when no asterisk is chosen)
- Made the failed authentication count configurable
- Consolidated the
xsetup.shandwsetup.shscripts into a singlesetup.shscripts, and made the shell session use this new script - Made the minimum and maximum Unicode codepoints for the Matrix animation customizable
- Made the DOOM animation colors customizable
- Largely improved build system commands
- The current version of Ly is now printed at the top-left corner of the screen for easier debugging
Here are also all the bug fixes integrated in this release:
- GNOME Keyring & KWallet are now properly unlocked upon login
- The shutdown & reboot commands are now executed only after everything has been deinitialized for sanity purposes
- Updated zigini to fix an escaping bug
- Updated termbox2 to v2.6.0-dev, notably to fix a Unicode character bug
- termbox2 is now handled outside authentication to avoid potential bugs
- The screen resize check is now slightly more reliable
- Fixed position of the sleep key hint on screen
- The destination directory is no longer being included in the config directory when building
- Only unsigned integers are now used in the Matrix animation to improve reliability
- The
err_console_deverror is no longer spammed in the info line when first time opening it didn't work - Rewrote the DOOM animation to make it more reliable & have less intense flames
New for this release as well is the inclusion of a vendor tarball to allow for offline builds in containers.
FreeBSD support was also improved with this release, albeit it is still incomplete. There was also, more generally, much refactoring in order to separate the UI code from the authentication code, reduce dependency on many runtime dependencies (such as mcookie or tput) and termbox2, reduce dependency on external C code, and reduce overall stability of the program by notably reducing the number of heap allocations. That's alotta refactoring, hehe! More details about this can be found in the miscelleanous changes below.
Moreover, I've tried to make upgrading from Ly v1.0.x as painless as possible. If you encounter any bugs in the process, please report them!
Finally, below are all the remaining, miscelleanous changes shaping up this release. Thanks to you all for making this awesome release happen!
- Remove support for Zig <=0.13.0 and add support for Zig 0.14.0
- Updated the French, Spanish, Catalan and Polish translations
- Added an (incomplete) Chinese and an Arabic translation
- Error messages in the info line are now displayed in red
- Made the build output more verbose
- Removed the
max_desktop_len,max_login_lenandmax_password_lenconfig options as the internal buffers are now dynamically resized - Removed dependency on the
mcookieX11 tool, the MD5 hash is now directly generated in code by Ly - The old session & username save file (from Ly v0.6.0 and prior) is now deleted if it already exists
- Removed dependency on the
tputncurses tool, cursor resetting & screen clearing is now done directly in code by Ly - Removed the
save_fileconfig option, as it was already deprecated and unused - Config file options are now arranged alphabetically for more coherence with the code
- The config file now uses hexadecimal numbers for colors