5.0 KiB
5.0 KiB
Changelog
All notable changes to ewwii are documented here.
This changelog follows the Keep a Changelog format, and this project adheres to Semantic Versioning.
[0.1.3] - 2025-09-17
Changed
updatecommand so that it preserves current widget state.--inject-varsargument of update to just--inject(or-iin short).
Fixed
image_widthandimage_heightnot working for image widget.
[0.1.2] - 2025-09-13
Added
- "Parent-death signal is not supported" warning on macOS.
- Error logging on parent-death signal fail.
Fixed
- Code not compiling for FreeBSD.
[0.1.1] - 2025-09-07
Added
- Better poll handling for performance.
Changed
updateto not require a window argument.
Fixed
- Poll/Listen handlers not working for multiple windows.
[0.1.0] - 2025-09-06
Added
- SIGINT and SIGTERM catching to KILL AND OBLITERATE children cleanly.
- Proper poll/listen handler setup in
open_window(...). - Cleaner poll/listen handler shutdown on
ewwii close. api::linuxfor getting system information likecpu,gpu,ram,disk,kernel versionetc.- Support for defining multiple
enter([..])at top level.
Changed
- Changed
std::monitorreturn values so that it will work fine with Rhai. - Error handling so that it uses rhai_trace and codespan-reporting for more user-friendly and pretty errors.
- Internal WidgetNode parsing so that user don't have to return anything (in rhai).
Fixed
- Ewwii creating zombie process on opening window.
- Ewwii shutting down all poll/listen handlers when any window closes.
- Broken
%based width/height in window definition. - Default poll/listen variables not working in external modules.
call-fnscommand not returning anything.poll/listendefinition extractor not skipping comments.
Removed
- Deprecated attribute warning which cluttered the logs.
std::json(Rhai has built in json support).std::math(Rhai already convers everything that it has).- The need for
dyn_idfor dynamic system. THIS IS A MAJOR UX change as it massivly reduces errors and the burden on users. - Daemon exit on configuration error mechanism in favor of hot-reloading.
[0.1.0-beta] - 2025-08-27
Added
std::jsonmodule to handle all json related tasks in Rhai.api::wifimodule for handling wifi related tasks.- Better error handling for
ErrorFunctionNotFound. - Better dynamic system which can handle dyn_id issues and reodering.
std::mathmodule for mathematics related tasks.propagate_natural_heightproperty to scroll widget.- Faster re-evaluation of configuration by reusing compiled configuration.
- Improved runtime error handling of WidgetNode casting.
- Caching for ParseConfig in re-evaluation system.
- Proper error handling for runtime error in external module code.
- call-fns command for calling a Rhai function. Note: The function can only see poll/listen variables as their initial value.
- update command with --inject-vars flag to update widget state. Note: All poll/listen variables will reset to their initial values.
std::commandmodule for running shell commands.INPUT_VALenvironment variable for Input widget commands (onchangeandonaccept), containing the current text of the input field.- Parse error handling for external module code.
- Killing poll/listen handlers feature in
ewwii killcommand.
Changed
x,y,widget, andheightproperties on window definition are now optional.- Internal Id to WidgetInfo mapping now borrows values instead of owning them to improve performance.
- homogeneous is no longer set to true if
space_evenlyproperty on box is not defined. - Widget creation and diffing system to borrow WidgetNode instead of owning them to improve performance.
Fixed
- Ewwii window not closing when user requests with
WM_DELETE_WINDOWevent. - Ewwii window not resizable by default.
- Ewwii not printing errors from external modules.
- Prevents early termination caused by kill_on_drop on
listen. - Slider updating value while dragging issue.
[0.1.0-alpha] - 2025-08-18
Added
- Introduced new programmable configuration system based on Rhai, replacing the Yuck syntax.
- New widget tree system using Rhai functions like
box,centerbox,defwidget, etc. - Diffing system which is the backbone of dynamic updates.
Changed
- Complete rewrite of the internal widget compiler to support declarative Rhai input.
- GTK widget construction is redesigned to work with the new tree.
- Replaced
Simplexprand Yuck AST with Rhai's built in expression system and widget trees. - Removed dependency on Yuck parser.
- Full rewrite of Documentation.
Removed
- Entire Yuck and Simplexpr code from the parsing and rendering codebase.