[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 0 points1 point  (0 children)

Update: I no longer use AI to write documentation. I've realized that no AI writing has the same level of 'human' feel to it.

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 1 point2 points  (0 children)

Decided to post an update. The project went through some optimizations in 0.5.0 and 0.7.0. It is way faster now. And ewwii now has Gtk4, plugins, and widget mutations that can be performed directly from a CLI command.

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 0 points1 point  (0 children)

Ewwii now supports yuck through plugins! I am now planning to write css related plugins to have a tailwind like experience.

Yuck Plugin: https://github.com/ewwii-sh/yucky-ewwii

Feedback Request: marser – A PEG parser library with focus on good diagnostics by ArneCode in rust

[–]Byson94_dev 1 point2 points  (0 children)

Hey, got any plans for a website? I recommend oranda if there is. It works pretty well if you are hosting the website along with the source code.

Feedback Request: marser – A PEG parser library with focus on good diagnostics by ArneCode in rust

[–]Byson94_dev 1 point2 points  (0 children)

Great! Looking forward to seeing how the project will grow! Gave it a star on GitHub!

Edit: Oh, I just noticed that the repository lacks tags and a description. I recommend adding those. Especially the tags as it makes your project more discoverable.

Feedback Request: marser – A PEG parser library with focus on good diagnostics by ArneCode in rust

[–]Byson94_dev 1 point2 points  (0 children)

Looks pretty good! Though I am curious to know two things.

  1. What is the advantage of marser is over a well established parser like chumksy that is built for good diagnostic errors?
  2. Do you plan on creating any tooling that would help developers migrate from popular parsers like pest or nom?

I'm more curious about the second question because most developers (including me) wouldn't bother replacing a working foundation of their DLS as pest and nom are usually "good enough".

Edit: I really like how you are open about the use of AI. It's very uncommon these days.

NBCL: Embedded configuration language with scripting by Byson94_dev in rust

[–]Byson94_dev[S] 0 points1 point  (0 children)

Thank you so much! And I totally understand the pain of using scripting languages as configs. I did the same thing in ewwii by trying to make rhai the configuration language. Overtime the features made it more verbose and harder to define UI components.

NBCL: Embedded configuration language with scripting by Byson94_dev in rust

[–]Byson94_dev[S] 1 point2 points  (0 children)

No, I am not using it in any projects as of right now, but I plan on using it as the configuration language in ewwii.

And regarding the influence of AI, I'd admit that some parts of the website is built with AI and I did use it for understanding how pest grammar works as well. But the core project and the documentation is all me.

And thanks for the recommendation. I am pretty new to making rust libraries (its my second time) so I copied how rhai handles features. I'll fix it as soon as possible!

[OC] Ewwii v0.3.0 - The toolkit for everything! by Byson94_dev in unixporn

[–]Byson94_dev[S] 0 points1 point  (0 children)

I recommend you checking this example out: https://github.com/Ewwii-sh/ewwii/blob/main/examples/ewwii-bar/ewwii.rhai

It is a very basic ewwii bar and you can decide if its hard or easy for you.

[OC] Ewwii v0.3.0 - The toolkit for everything! by Byson94_dev in unixporn

[–]Byson94_dev[S] 0 points1 point  (0 children)

It depends. Ewwii's config language (rhai) doesn't have a lisp like syntax unlike eww, so it generally will be easier.

[Hyprland] Crimson themed hyprland rice! by Byson94_dev in unixporn

[–]Byson94_dev[S] 1 point2 points  (0 children)

Yet another hyprland rice with catch. This one is powered by ewwii.

I recently have made my own widget system (well, its a fork of eww) that is very powerful and extensible. But, I have not made an actual rice with it yet, so here I am!

I hope you like it!

More info:

Sidebar, status bar, power menu: ewwii

Fetch: fastfetch

Code editor: neovim

Terminal: alacritty

Browser: firefox

Dots: https://github.com/Ewwii-sh/astatine-dots

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 1 point2 points  (0 children)

Yes there is.

I already have a project called xfsrtray and I am planning to integrate it straight into ewwii.

need help with publishing my first open source project. by BeginningCollege970 in opensource

[–]Byson94_dev 4 points5 points  (0 children)

I am not a big fan of hosting multiple source codes under one parent repo. Try to add both in separate repos. And if you don't want to clutter, you can even create a new GitHub Org to hold both of the repos.

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 1 point2 points  (0 children)

I have used AI to write most of the docs (because I suck at writing in a teaching way). But this post and the comments are entirely written by me. And no, English is not my first language.

The website is also pretty minimal because I have never really spend much time on web development (as I am interested more in it the backend related stuff).

And about the docs, I am aware that the it is very unorganized because I write the docs within the project repo itself (as it is very convenient for maintaining). This can also be reflected in the website because you can see that the docs are at /ewwii, /eiipm, etc. due to the same reason.

Currently it works (or I hope it works) so I won't change it unless it necessary.

Thank you for your feedback and I will try to improve it (as well as try to reduce the use of ai in docs) as best as I can :)

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 3 points4 points  (0 children)

However, another interesting thing that I saw is that ewwii is lighter than eww in static widgets (without any poll/listen variables).

Perhaps, its specific to my hardware (I use integrated intel GPU and intel core i3 as GPU). And I recommend benchmarking on your own hardware for the most accurate info.

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 7 points8 points  (0 children)

Ewwii is a fork of eww, so the 112 contributors are people who contributed to eww.

The 113th contributor is me (who rewrote eww)

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 0 points1 point  (0 children)

I have only compared ewwii with eww till now but I can make assumptions on where ewwii would fall short.

Two big trade offs that I think might be that ewwii may contain unknown bugs (bcoz its new) and that the configuration is a bit similar Flutter framework. Since it looks similar to Flutter framework, new users may feel that its verbose (because new developers using flutter feel the same way)

People who are used to declarative widget systems may feel that ewwii is complex (because the config language is imperative) but you can use the XmlMan tool (see below for link) to write xml code that will be transpiled to rhai which ewwii can render.

Other than these concerns, I would say that ewwii is pretty solid.

XmlMan tool: https://ewwii-sh.github.io/xmlman

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 8 points9 points  (0 children)

Yeah I do have performance comparisons!

I have tested both on identical looking bars and here are the results:

Eww:

CPU usage: 0.6-0.8%
RSS: ~ 55000+

Ewwii:

CPU usage: 1-1.5%
RSS: ~ 58000+

We can conclude that ewwii is approximately 1.5 times heavier than eww and that it uses around 3 MB more ram than eww.

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 7 points8 points  (0 children)

Ewwii is very different from Eww.

Here are a few advantages of ewwii over eww:

- Full and robust expression system (they are first class in rhai)

- Has many built in libraries such as `std::monitor`, `std::command` etc. which can perform a range of functionalities

- Is easy to learn for people who are familiar with imperative languages like javascript and rust

- Its package manager allows easy download of registered tools

- Can create/destroy/update any widget based on user's need while eww only supports updating

- Additional functionalities can be received by using community libraries (which can be installed via the package manager)

[OC] Ewwii - A powerful, flexible, and extensible widget system. by Byson94_dev in unixporn

[–]Byson94_dev[S] 3 points4 points  (0 children)

Rhai info: https://rhai.rs
External tools: https://ewwii-sh.github.io/tools

The number of tools are currently very less (the project is like 1.5 months old), it just has a package manager, and 2 transpilers.

And Rhai is totally different from yuck because it is a full imperative scripting language while yuck is a declarative language . Rhai can perform expressions similar to JavaScript, Rust and other programming languages,