If you are not interested in the edges, only painting the sites with different colors, you can use a variation of flood fill starting with the seeds and only stacking the pixel if that color has distance lower than the one already painted that pixel.
You can use topgrade (https://github.com/topgrade-rs/topgrade) to update system, homebrew, npm, python, cargo with only one command. It also works on Linux and Windows.
Pandoc (https://pandoc.org) can be used to convert a .docx file to markdown and other file formats like djot and typst. I don't think pandoc can convert powerpoint and excel files.
I'm using Silverblue 39 for about 2 month coming from NixOS Unstable. It's working very well for me. I have some packages layered like Nvidia and fish shell and https://github.com/CheariX/silverblue-akmods-keys for AKMODS modules work with secure boot. Things like neovim, pyright, helix, starship, LSPs and CLI applications I install with brew (brew.sh). For desktop things I use Flatpak.
I had a problem with some Flatpak applications (like Steam and Discord) and brew because brew puts its folder in the $PATH before the default ones (/usr/bin ...) and those Flatpak applications tried to use SSL keys from brew instead of the system ones. I just changed the order of the $PATH to make brew bin path to be after ther system ones.
For VSCode I'm not using the Flatpak I'm using the tarball one I just extract in ~/applications and symlink the code binary in the ~/.local/bin. It's working well, I don't have problem with VSCode not executing LSPs and lint things. The only problem is VSCode from tarball cannot updates itself, so I need to download the newer version and extract to ~/applications. There is this VSCode CLI version (https://code.visualstudio.com/docs/?dv=linux64cli) but I was not able to make it use the wayland backend.