[UNRELEASED]
Added
onkeypressproperty to eventbox.onkeyreleaseproperty to eventbox.- Selection of dash as shell if it installed.
--with-pluginflag fordaemoncommand.register_functionAPI in ewwii_plugin_api for registering functions that rhai can call to.slibrhai module for calling functions registered viaregister_function.orientationproperty to eventbox.spacingproperty to eventbox.space_evenlyproperty to eventbox.- An advanced widget named
flowbox. focusableproperty to all widget.widget_nameproperty to all widget.
Fixed
- Old widget creeping into new ones after hot reload.
- Ewwii defaulting to default gtk4 theme. #9
- Few issues with eventbox drop target.
- Poll/Listen variables not exposed in other modules on first launch.
[0.3.0-beta] - 2025-10-11
Added
- Support for binary level plugins.
set-plugincommand to load shared libraries (i.e plugins).ewwii_plugin_apicrate for building ewwii plugins easily.
Changed
- The name of
sliderwidget toscale.
Fixed
focusableproperty not working issue.- Poll/Listen variable scope not accessable to all modules.
[0.3.0-alpha] - 2025-10-04
Added
- GTK4 support.
can_targetboolean property for all widgets.iconwidget which always preserves a scaling of 1:1.- Full native wayland compatibility (x11 compatibility has decreased).
Changed
- The way dynamic updates are handled.
- Window positioning logic.
- X11 communication and x11 based window handling.
- Daemon GTK main loop.
- Application of sticky and stacking propery of window on X11.
- The full implementation of eventbox widget.
- GTK controller/signal handling.
- Initialization logic of window.
- Overlay widget dynamic post-creation re-creation logic (bugs are expected).
Removed
show_detailsproperty of calendar.angleproperty from label.icon_sizeproperty from image widget.same_sizeproperty from stack widget (box is a replacement).icon_namefromimagewidget as a result of the introduction oficonwidget.transform,graph, andcircular_progresswidget (temporarily).- Application of css class on the window.
- Legacy GTK3 related code.
- Centerbox widget.
[0.2.0] - 2025-09-29
Added
statecommand to print the current poll/listen variable state.mas another duration unit for minute.std::regexlibrary for regex matching.engine-overridecommand which can be used to change engine settings of a configuration.force_normalproperty for ewwii windows. It allows user to create normal windows on wayland.- Better error support by migrating to
rhai_tracev0.3.0. - File path indicator in rhai errors.
Fixed
- The logs going to
eww_{}.loginstead ofewwii_{}.log. - Logs not truncating if it is over 100MB and not deleting if over 7 days old.
- Ewwii crashing on invalid duration property.
- The module resolver throwing error at
importdefenition. - Fixed commands sending error with success status.
Removed
- Legacy
true/falsesupport forfocusablewindow property. $INPUT_VALvariable injected in commands ran by input widget.- Many dependencies and code for faster build and lesser binary size.
monitorlibrary as a step towards GTK4.
[0.1.4] - 2025-09-18
Added
--preserveflag to theupdatecommand which preserves the new updates.
[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.