codeberg fairyglade/ly v1.4.0

13 hours ago

The refactoring update

Now that probably doesn't sound very exciting, does it...but it's really important! While Ly v1.4.0 does come with a handful of nice new features, the primary focus of this release was to completely (and I mean it) refactor the UI code to make it more up to par with traditional TUI/GUI libraries (i.e. make it nicer to use, even if only internally).

To do this, the approach taken was to split the core Ly code into ly-core, and the UI code into ly-ui. However, this also included refactoring the widget placement code, keybind handling, TUI handling, etc. It clearly wasn't the easiest of things, but it ended up really nice and I'm quite happy with the changes!

Also, Ly was ported to use Zig 0.16.0. This shouldn't cause any regressions for package maintainers, but if it does (e.g. building fails), please report them here! I've already hit several regressions which I had to workaround for the most part, so reporting more of them (if any persist) is certainly welcome.

We have a Matrix space!

If you have questions about Ly that don't necessarily require an issue, if you are a package maintainer willing to talk more directly to me, or simply wanting to say hi, the Ly Matrix space is the perfect place to do all of these! You can find it over at #ly-dm:matrix.org.

Note: There previously was a space hosted on envs.net, but it shut down so the space was migrated to matrix.org. Feel free to join the (new) space!

Donations

For this release (though it was more of a coincidence than anything else), I've added a personal donation link in the README through Liberapay (link here if you're lazy). If you wish to support my work, feel free to donate, even if it's just a small amount! But of course, no pressure, it's entirely optional!

So what are the changes?

Without further ado, here is the list of all (other) changes included in this release:

  • Updated the Swedish, Bulgarian and French translations
  • Fixed a potential use-after-free error after crawling sessions
  • Updated termbox2
  • Added support for alignments and negative offsets in .dur animations
  • Added a Fairy Glade logo as the default .dur animation (massive thanks @hynak !!)
  • Credited Kawaii-Ash (now @AshAmetrine) in the README for all the work they've done in making Ly v1.0.0 possible
  • Added global log timestamp, severity & category
  • Improved authentication logging, there should now be more logs
  • Added a shell script (by default installed to /etc/ly/startup.sh) showing how to change TTY colors
    • Note that it is not installed if installing Ly with zig build installnoconf
  • Added basic KMSCON support
    • This allows for true 32-bit color (see what I did there? :D) support in the TTY! You can thus enjoy your animations in all of their colorful glory!
    • Currently, only a systemd service is offered as ly-kmsconvt@.service. The syntax is otherwise the same as for the traditional systemd service.
    • With that said, this is currently a WIP but it can be used to log in to most sessions (though X11 sessions may have some issues), the bulk of the issues are mostly cosmetic (e.g. numlock & capslock state not working).
  • The current used VT is now logged in the global log file
  • Removed a superfluous comma in custom-sessions/README
  • String lengths are now properly calculated in places where they weren't, particularly when using non-Latin alphabet locales
  • Screen resizes are now better and more quickly handled
  • More advanced keybindings are now supported (such as Ctrl+Alt+G)
  • Renamed config.min_refresh_delta to config.animation_frame_delay
  • Added Kurdish and Esperanto translations
  • Added widget display names in some logs in the global log file
  • Fixed incorrect animation deinitialisation when the timeout occurs
  • Improved README (a classic I must say...)
  • Added a keybind to toggle password visibility
  • The -quiet argument for the X.org server is now mentioned in the config
  • Added the Xauthority file as an argument when launching the X.org server
  • Added custom command & label support
    • Complete documentation on how to use this feature can be found in the config file, but in a nutshell, it allows adding custom keybinds that execute user-defined commands for the former, and for the latter, simply executing custom commands and showing its outputs in the UI
  • The config.waylandsessions and config.xsessions options can now be set to null if not used
  • Added config.show_tty to display the active TTY in the top-right corner of the UI
  • Added config.shell to toggle the visibility of the built-in shell session
  • Made logging in & out more reliable, particularly with X11 sessions

Don't miss a new ly release

NewReleases is sending notifications on new releases.