Note
This is a pre-release as Zig 0.17.0 hasn't yet been released.
The customisation update
Hello World! (Programming joke)
For Ly v1.5.0, there are some new customisation features that will make you think: "Wow, what is all of this doing in a display manager?"...wait, no, "Wow, this is so impressive!"
Yeah. That's better.
The new features in question
More seriously, you can now create your own animations in Lua! To show it off, you can find an elementary cellular automata over at https://codeberg.org/fairyglade/ly-community (with a GIF of it running below), which is a brand new repository for community-made animations, both for Lua and .dur animations! (The black hole animation can now be found there, for example.)
You can also customise all UI corners via some new options you can find in the configuration file. They are pretty well documented, so you shouldn't have too much trouble figuring them out. (However, if you do, feel free to join our Matrix space!)
These make up the big new features for this release, but of course, they're far from the only new features available in this release.
Full changelog
To wrap it up, here is the complete changelog for Ly v1.5.0:
- Added a
--validate-configargument to check for any errors in an Ly configuration file - Added an error prefix when printing the error messages for when shutting down or rebooting fails
- Added
config.box_h_positionandconfig.box_v_positionfor relative positioning of the center box - Added support for printing Ly logs to
syslogby settingconfig.ly_log = null - Fixed incorrect offset calculations for
.duranimations bigger than the screen - Improved build times by always building
translate-cinDebug - Improved build times by using Zig's native backend instead of LLVM in
Debugon supported platforms (such as x86) - Improved
.duranimation loading times and memory usage by streaming the decompression phase - Improved the errors when failing to get lock state
- Added support for handling
termbox2errors, as well as logging some of them - Added support for KMSCON v10 by removing usage of the
--seatsargument - Set
--term=linuxin the KMSCON service - Added a traditional Chinese translation
- Added a Cyrillic Serbian translation
- Added all missing translations
- Added a contributing guide
- Fixed fallback user detection when
/etc/login.defsdoesn't contain bothUID_MINandUID_MAX - Fixed
XDG_RUNTIME_DIRnot being set even if/run/user/UIDexists - Added support for Lua animations
- Stopped drawing the info line when automatically logging in
- Fixed an authentication error when using automatic login on FreeBSD
- Updated the README to address SELinux issues
- Added battery capacity support for FreeBSD
- Added
config.type_usernameto restore previous functionality of manually typing in a username - Added support for customising corners via
config.corner_bottom_left,config.corner_bottom_right,config.corner_top_leftandconfig.corner_top_right - Stopped setting
ShiftandCtrlkeys for arrow keys - Fixed some TTY permission issues by launching Ly with
agettyin the default systemd service- This should also remove the need for any workaround when using
systemd-logindas the service now creates appropriate symbolic links forautovt@.service
- This should also remove the need for any workaround when using
- Fixed some more TTY permission issues by applying
chmodandchownto the current TTY - Improved the normal and the KMSCON systemd services
- Removed
config.hide_key_hints,config.hide_keyboard_locks,config.hide_version_stringandconfig.show_ttyas these are now superseded by the new corner customisation options- Do note that these options aren't migrated by default, so you'll have to modify these new options to restore the behavior of the previous options if you have modified them
- Fixed a use-after-free when migrating the old save file
- Removed
config.hibernate_cmd,config.hibernate_key,config.restart_cmd,config.shutdown_cmd,config.sleep_cmdandconfig.sleep_key, including the runtime dependency onshutdown - Ordered
config.battery_idalphabetically - Added support for disabling
config.brightness_down_key,config.brightness_up_key,config.restart_key,config.show_password_keyandconfig.shutdown_keyby setting them tonull - Replaced
config.savewithconfig.save_file_dirto allow decoupling save state from configuration- You can disable saving by setting the new option to
null
- You can disable saving by setting the new option to
- Made the code more robust against integer overflows that could occur by having a ridiculously low screen resolution
- Added more allocation tracking when building in
Debugmode - Fixed handling of symbolic links for
config.session_log