{
  description = "Jukebox";
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };
  outputs = { nixpkgs, flake-utils, ... }:
    flake-utils.lib.eachDefaultSystem (system:
      let pkgs = nixpkgs.legacyPackages.${system};
      in {
        # nixosConfigurations.jukebox = nixpkgs.lib.nixosSystem {
        #   inherit system;
        #   modules = [ ./system/configuration.nix ];
        # };
        packages.jukebox = pkgs.rustPlatform.buildRustPackage {
          name = "jukebox";
          src = ./app;
          cargoLock.lockFile = ./app/Cargo.lock;
        };
        devShells.default = pkgs.mkShell {
          buildInputs = with pkgs; [
            atkmm
            cairo
            cargo
            gdk-pixbuf
            glib
            gtk3
            just
            openscad-unstable
            openssl
            pango
            pkg-config
            rustc
            rustPlatform.bindgenHook
            webkitgtk_4_1
            xdotool
          ];
        };
      });
}
