teaser for my little winter project. โ„

#gnome #design #app #flatpak #rust #icon #foss

RE: https://mastodon.social/@hbons/115684542795059829

several people told me (unprompted) that they liked my "micro dev blogging" for Bobby on here.

so fave if you want to see my failures in real time for the next one. :)

#gnome #linux #programming

alright let's get started!

got a backend that mirrors+archives to SQLite (hence Bobby) space weather data from the NOAA. and you'll be able to self-host a mirror.

now to write a beautiful aurora dashboard in #gtk #libadwaita UI!

#linux #opensource #gnome #design

the NOAA space weather data does not have an API. it's a bunch of undocumented random .json files behind a CDN that sometimes partially cuts cached files.

so I wanted to have something reliable to work with first.

it's... interesting for an official government agency... ๐Ÿคจ

hitting the ground running because of all the code reuse. thanks Bobby. :)

#linux #opensource #gnome #gtk #libadwaita #design #aurora

been a while since I used a Grid (probably GTK2 days). and being able to set relative positions to other items is a lot more intuitive and less clunky than hardcoding edge numbers.

also <sub> and <sup> texts are working nicely for scientific notations! ๐Ÿ“Š

#linux #opensource #gnome #gtk #libadwaita #design #aurora

adding โœจ.

almost done with the low hanging fruit. now need to add graphs over time.

best way to do that?

#linux #opensource #gnome #gtk #libadwaita #design #aurora

boom. bar charts. ๐Ÿ“Š

just using a GtkFrame and styling with CSS.

the line graph will be trickier, but thinking about generating an SVG and displaying that.

#linux #opensource #gnome #gtk #libadwaita #design #aurora

TIL about GtkLevelBar.

GtkProgressBar's lost brother from an other mother.

just set the min/max and a value. convenient!

#linux #opensource #gnome #gtk #libadwaita #design #aurora

#libadwaita has a handy .accent CSS class for labels.

using that (+bold) to highlight when measurements are good or heading in the right direction.

#linux #opensource #gnome #gtk #libadwaita #design #aurora

adding a main summary card for those not yet familiar interpreting the numbers.

I wonder if I can turn this into a widget that goes next to the weather in the shell?

#linux #opensource #gnome #gtk #design #aurora

adding a small inline โš ๏ธ icon and suddenly your eyes have a kind of anchor from which to explore the rest of the text.

sometimes decorations are good.

#linux #opensource #gnome #gtk #rust #design #aurora

got some line graphs going using SVG and with the system accent colour.

still blurry and need to iterate on the style, but it's a start. ๐Ÿ“‰

#linux #opensource #gnome #gtk #rust #design #aurora

using the .warning CSS class to highlight upcoming high Kp values. ๐Ÿšจ

the threshold will be configurable in Preferences and/or based on your location.

#linux #opensource #gnome #gtk #rust #design #aurora

settling on the layout. I think this will be it for the first release.

funky colours that match the wallpaper totally by accident... ๐Ÿ˜‰

also added a #fediverse hashtag graph. arguably the best indicator!

#linux #opensource #gnome #gtk #rust #design #aurora

ok, light theme! โ˜€๏ธ

cards use the same colour as windows. so I'm slightly changing the base window colour to the one used in sidebars (like in Files).

GTK doesn't seem to have a .dark or .light CSS selector. so had to manually toggle a class and listen for the dark mode signal. no big deal.

#linux #opensource #gnome #gtk #rust #design #aurora

had this idea of just showing country flags instead of city names.

it's less precise, but I think a lot more engaging. :)

#linux #opensource #gnome #gtk #rust #design #aurora

want to appreciate for a minute that #gtk can now baseline align labels regardless of size or style.

won't need to change the margins when playing with the font sizes later.

added the popovers that give you more information about the data you're looking at and what's important. โ„น๏ธ

#linux #opensource #gnome #gtk #rust #design #aurora

all data is now hooked up!

just need to finish the SVG line graph drawing, and this will be ready for a preview release. ๐Ÿงช

#linux #opensource #gnome #gtk #rust #design #aurora

bars ๐Ÿ“Š are now more accurate (float instead of rounding to int), and the line ๐Ÿ“ˆ is starting to look like something with real data.

layouting this is tricky. I think I will hardcode the dimensions for now...

next some sense of scale with axis.

#linux #opensource #gnome #gtk #rust #design #aurora

stuff like this will be my downfall.

#linux #opensource #gnome #gtk #rust #design #aurora

first actual storm caught! โš ๏ธ

#linux #opensource #gnome #gtk #rust #design #aurora

graphs are accurate now and I can change the y-range based on what's needed for the data.

added the ".card" class for a quick framing but now I'm thinking about keeping it. ๐Ÿค”

#linux #opensource #gnome #gtk #rust #design #aurora

woopsie! Bz literally went off the chart yesterday!

yes, I added a gradient too. ๐ŸŒˆ

#linux #opensource #gnome #gtk #rust #design #aurora

no fancy screenshot today... made automatic background data fetching and updating the dashboard work.

done, but it was a pain. ๐Ÿ˜…

now I've got some kind of Megazord composed of std::thread, glib::idle_add_local and tokio:mpsc... ๐Ÿค–

#linux #opensource #gnome #gtk #rust

ok! finally #Flatpak preview builds ๐Ÿงช for those who want to try out Auroras: https://github.com/hbons/Auroras/actions/runs/23414227266#artifacts

feedback welcome! feel free to report any issues on #GitHub.

still a bunch of stuff to fix like #a11y, but if all goes well I'll publish to #Flathub soon. :)

#linux #opensource #gnome #gtk #rust #design #aurora

@hbons Now I really want a weather app with that widgetry!
@jimmac my mind went there too. :)