{
  inputs,
  outputs,
  lib,
  pkgs,
  ...
}: {
  # these settings propagate to home-manager's nixpkgs
  nixpkgs = {
    overlays = [
      inputs.nix-rice.overlays.default
      inputs.helix.overlays.default
      inputs.nixd.overlays.default
      outputs.overlays.additions
      outputs.overlays.rice
      outputs.overlays.murex
      outputs.overlays.murex-starship
      outputs.overlays.murex-jump
      outputs.overlays.comfyui
      outputs.overlays.comfyui-plugins
    ];
    config = {
      allowUnfree = true;
      allowUnfreePredicate = _: true;
      cudaSupport = true;
    };
  };

  nix = {
    # add flake inputs to our registry to allow global use
    registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
    settings = {
      # trusted-users = ["bolt" "plank"];
      experimental-features = ["nix-command" "flakes" "pipe-operator"];
      substitute = true;
    };
    extraOptions = ''
      keep-outputs = true
      keep-derivations = true
    '';
    optimise.automatic = true;
    # package = pkgs.lix;
  };

  imports = [
    ./modules/network.nix
    ./modules/term.nix
    ./modules/cosmic.nix
    ./modules/systemdboot.nix
    ./modules/sound.nix
    ./modules/sydney.nix
    ./modules/docs.nix
    ./modules/nix-meta.nix
    ./modules/anal-retentive.nix
  ];

  hardware.enableRedistributableFirmware = true;
  hardware.enableAllFirmware = true;

  boot.tmp.useTmpfs = true;

  services.libinput.enable = true;

  # busted as hell
  # services.usbmuxd.enable = true; # for iphone

  hardware.graphics.enable = true;
  hardware.graphics.enable32Bit = true;

  services.udisks2.enable = true;

  services.flatpak.enable = true;

  security.polkit.enable = true;

  xdg.autostart.enable = true;
  xdg.portal.enable = true;

  # services.tailscale.enable = true;

  environment.systemPackages = with pkgs; [
    curl
    eza
    git
    jujutsu

    # broken \/
    # libimobiledevice
    # ifuse
  ];

  services.atuin.enable = true;

  programs.nh = {
    enable = true;
    clean.enable = true;
    clean.extraArgs = "--keep-since 3d --keep 3";
    package = inputs.nh.packages.x86_64-linux.default;
  };

  programs.nix-index-database.comma.enable = true;
  programs.nix-index.enableZshIntegration = false;
  programs.nix-index.enableBashIntegration = false;

  # gnome/freedesktop compat stuff
  programs.dconf.enable = true;
  services.gvfs.enable = true;

  # give cpuset to user
  systemd.services."user@".serviceConfig.Delegate = "memory pids cpu cpuset";

  systemd.user.extraConfig = "LogLevel=debug";
}
