Review flake.nix for my project?

Awesome! Yes, having a flake.nix in your project can be very useful. Not just for showing nix support, but also for contributors to ensure they have the same versions of all dependencies as you while trying out changes, and for making it easy to compile more complex projects. I guess for small projects like yours it doesn’t make that much of a difference though.

It makes it a lot easier to add projects to nixpkgs if they already have a flake in their repo, though!

In general, I think your flake is very good! Clear to read, focused and avoids most common pitfalls.

systems = ["x86_64-linux"];`

As you only have a .desktop file and a python script, "aarch64-linux" and "i686-linux" should be compatible as well, right?

pkgs = import nixpkgs {inherit system;};

This should be avoided in flakes. Instead, you should write

pkgs = nixpkgs.legacyPackages.${system}

See 1000 instances of nixpkgs - #14 by zimbatm for more information.

packages = builtins.attrValues {
         inherit
           (pkgs)
           glib

Very nice. This avoids common problems that can happen in with pkgs; [ ].

buildInputs = builtins.attrValues {

You define a lot of dependencies twice. You could put something like commonDependencies into the let part of your flake and inherit from that here and in the mkShell call to reduce duplication, but it’s a matter of taste.

postFixup = let

Hm, maybe you know something I don’t, but why are you using postFixup instead of fixupPhase?

platforms = pkgs.lib.platforms.all;

This seems incorrect.