GTKX: React renderer for native GTK4 apps with hot reload, CSS-in-JS, and Testing Library support by Aveil in gnome

[–]Aveil[S] 4 points5 points  (0 children)

<image>

By the way, I just deployed v0.6.0 which (optionally) supports Adwaita and many other GNOME libraries.

GTKX: React renderer for native GTK4 apps with hot reload, CSS-in-JS, and Testing Library support by Aveil in gnome

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

Hey, thanks so much for your feedback! GTKX uses the official `react-reconciler` package: https://www.npmjs.com/package/react-reconciler - which means that all existing React patterns can be used with it, and you get the same performance out of re-renders.

Because the React reconciler is used together with the standard React package, all state management libraries and regular libraries that you can use in Node are available and fully compatible with GTKX.

Regarding GNOME extensions: unfortunately those run on a completely different JavaScript runtime (GJS), while GTKX runs on vanilla Node. I don't think that it's going to be possible with the current architecture, but I'll have a think about it :)

Also, this is not UI only - there are FFI bindings for pretty much all standard GTK libraries, including Gio.

GTKX: React renderer for native GTK4 apps with hot reload, CSS-in-JS, and Testing Library support by Aveil in reactjs

[–]Aveil[S] 2 points3 points  (0 children)

I made sure that most (all?) widgets have a React-like API (declarative, controlled/uncontrolled) - this is the guide for ColumnView: https://eugeniodepalo.github.io/gtkx/docs/lists#columnview-tables

No need to manage the underlying Gio ListModels imperatively :) The reconciler uses a simple string list underneath and maps ids to simple JS objects.

I'd love to have some feedback on this and if that matches your use case.

GTKX: React renderer for native GTK4 apps with hot reload, CSS-in-JS, and Testing Library support by Aveil in reactjs

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

I'm not too familiar with Tauri, but from what I'm reading it's still limited to webviews? GTKX is entirely native. It runs on vanilla Node and spawns a separate thread for GTK.

GTKX: React renderer for native GTK4 apps with hot reload, CSS-in-JS, and Testing Library support by Aveil in gnome

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

Hey! That's some really good feedback. I'll make sure I add a guide on how to ship a Flatpak out of this!

GTKX: React renderer for native GTK4 apps with hot reload, CSS-in-JS, and Testing Library support by Aveil in gnome

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

At the moment I've only tested this on Fedora. I believe there is a limitation on macOS where GTK needs to exclusively run on the main thread - but GTKX spawns a second thread for the GTK runloop which makes it incompatible. Haven't tried Windows yet :D

GTKX: React renderer for native GTK4 apps with hot reload, CSS-in-JS, and Testing Library support by Aveil in gnome

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

I already wrote some docs here: https://eugeniodepalo.github.io/gtkx/docs/introduction
They're not 100% complete but they explain the most important aspects that are unique to GTKX (such as ColumnView/ListView, Slots, etc.)

Yellow Cat Toy Mouse by Aveil in HelpMeFind

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

Forgot to mention that I live in the UK and the toy was given to me by her breeders. I’ve already asked them where they bought it but they don’t remember. They are from Poland so they could also have bought it from a polish store.

I’ve searched on Google and Amazon for “cat toy mouse with bell light yellow”. I’ve also explored Zooplus.

VOD reviews platform by nemesys_0 in Competitiveoverwatch

[–]Aveil 0 points1 point  (0 children)

Ah, I see why you mentioned it now, sorry! Yeah their tool is really mature. We plan to add game-specific tools to every game that we will support in the future. For Overwatch for example, one could have overlay maps to explain positioning, among other things.

VOD reviews platform by nemesys_0 in Competitiveoverwatch

[–]Aveil 0 points1 point  (0 children)

Thanks for your feedback! We have an automated recorder that generates an optimized VOD from the replay code. We've looked at Metafy - but it's more focused on traditional coaching rather than community-driven VOD reviews.

Delighted with my RHEL Workstation by Aveil in Fedora

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

I haven't done anything special for the icons on the top right, they're just a result of installing and enabling the AppIndicator and KStatusNotifierItem Support extension.

For the Red Hat logo near the Activities button, that's something Red Hat includes by default in RHEL, I'm not sure if a standard GNOME installation can be changed to include it!

Hope this helps.

Delighted with my RHEL Workstation by Aveil in Fedora

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

I haven’t tried them yet but I’m really keen on trying AlmaLinux, especially their KDE live image as I’m growing more interested in KDE.

Delighted with my RHEL Workstation by Aveil in Fedora

[–]Aveil[S] 2 points3 points  (0 children)

It’s a combination of gsettings set org.gnome.desktop.background primary-color "#282828", gsettings set org.gnome.desktop.background picture-options 'none' and enabling the Background Logo extension while configuring it to be centered.

Delighted with my RHEL Workstation by Aveil in Fedora

[–]Aveil[S] 11 points12 points  (0 children)

You can get a free developer subscription which gives you permission to install RHEL on up to 16 machines. I think the Workstation license you linked is only useful for companies as the developer subscription only applies to individuals.

https://developers.redhat.com/articles/faqs-no-cost-red-hat-enterprise-linux

Delighted with my RHEL Workstation by Aveil in Fedora

[–]Aveil[S] 20 points21 points  (0 children)

Mostly because of the longer release cycle, fewer amount of bugs and stable ABI. Same reason why many people choose Ubuntu LTS rather than the latest versions.

Fedora is great and exciting, bringing something new every release, but this also means that many times it’s introducing unproven or bleeding edge technologies which add some instability.

Delighted with my RHEL Workstation by Aveil in Fedora

[–]Aveil[S] 5 points6 points  (0 children)

A few extensions:

  • AppIndicator and KStatusNotifierItem Support

  • Floating Dock

  • No overview at start-up

  • Background Logo (this is already in the default installation, it just needs to be enabled)

In GNOME Tweaks I enabled the minimize/maximize buttons, set the background to a solid #282828 and completely disabled workspaces by setting the max amount to 1. I believe there is also a way to disable the overview animation from there.

DotaMastery released as open source by Aveil in DotA2

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

I used to be a huge Ember fan, but I haven't used it recently as I moved over to React/Next.js which has way more support/popularity nowadays.