I originally thought a monorepo was the way to go here and, although it
worked, I do want to keep this config as simple as possible for people
that just want to see how to set up Hyprland/dwm on NixOS.
For those curious in running NixOS on a phone specifically, there will
soon be a separate mobile-config repository that should make learning
from it easier.
Reduces complexity since we no longer have to manually update each
package from a non-firefox source.
Requires internet connectivity at runtime but should ensure that the
extensions are always up to date.
Unfortunately it seems non-trivial to get nix-update to work with update
scripts outside of nixpkgs however I could write a script to automate
updating all packages in the future.
Avizo had some issues that ultimately made me return to the old and
reliable dunst. For example, the home-manager service would fail to
restart after the computer was idle for a set amount of time.
The way avizo manages its window also resulted in compositors like
Hyprland and picom showing a blur artifact when avizo tried to fade
itself. Ultimately using dunst simplifies things and avoids having
to look in two different places for notifications.
mpdris2 seems to have much greater feature support than mpdris2-rs,
notably the inclusion of lower notification urgency by default and the
ability to start mpdris2 without it showing a stopped notification.
The biggest feature, however, is the possibility to run multiple
mpdris2 instances at the same time. This was impossible to achieve
with mpdris2-rs since it would claim that the bus was already taken.
Notably this enables much smoother usage when running mpdris2 in both
Hyprland and dwm at the same time. Combined with dunst, this enables
seamless notifications between the two environments.
This seemed to work to an extent but resulted in some weirdness with the
uBlock Origin from LibreWolf and the uBlock Origin from this package.
The actual setting didn't change even though it was disabled in the
interface. Re-enabling the checkbox and toggling it didn't change
anything either.
This seems to work, which is great.
For some reason it wasn't being initialized properly inside the virtual
machine but it does work on actual devices.