{
  withSystem,
  inputs,
  ...
}: {
  # perSystem = { ... }: { config.packages.hello = ...; };

  flake.homeConfigurations.crash = withSystem "x86_64-linux" (
    ctx @ {
      config,
      inputs',
      ...
    }:
      inputs.home-manager.lib.homeManagerConfiguration {
        pkgs = inputs.nixpkgs.legacyPackages.${"x86_64-linux"};
        extraSpecialArgs = {
          inherit inputs inputs';
          packages = config.packages;
        };
        modules = [
          (
            {
              config,
              lib,
              pkgs,
              ...
            }: {
              imports = [
                ../../modules/programs/shell.nix
                ../../modules/programs/neovim.nix
                (import ../../modules/programs/git.nix {})
                ../../modules/programs/core.nix
                ../../modules/programs/devel.nix
                ../../modules/programs/ssh.nix
                ../../modules/programs/ssh-agent.nix
                (import ../../modules/programs/emacs.nix {})
                ../../modules/programs/fonts.nix
                ../../modules/programs/desktop.nix
                ../../modules/programs/media.nix
                ../../modules/programs/games.nix
              ];
              home.username = "nathan";
              home.homeDirectory = "/home/nathan/";
              programs.command-not-found.enable = true;
              home.stateVersion = "24.11";
              programs.home-manager.enable = true;

              # Allow unfree packages
              nixpkgs.config.allowUnfree = true;

              # Machine specific configuration
              services.emacs.defaultEditor = true;

              systemd.user = {
                targets.tray = {
                  Unit = {
                    Description = "Home Manager System Tray";
                    Requires = ["graphical-session.target"];
                  };
                };
                services.syncthingtray = {
                  Service.ExecStart = lib.mkForce "${pkgs.syncthingtray}/bin/syncthingtray --wait";
                };
              };

              home.packages = with pkgs; [
                # Stylus note taking
                xournalpp
                rnote
                # Drawing and image editing
                krita
                inkscape
                gimp
                # System monitoring
                nvtopPackages.full
                # RSS reader for testing
                kdePackages.akregator
                newsflash
                liferea
                # Crypto
                # exodus
                # 3d printing
                # bambu-studio
                orca-slicer
                openscad-unstable
                vscode
              ];
            }
          )
        ];
      }
  );
}