My nixos configuration!
{
  inputs,
  outputs,
  lib,
  pkgs,
  config,
  ...
}: {
  options.cady.home = {
    defaults = lib.mkEnableOption "Cady Universal Home Defaults!!";
    userDirsOverride = lib.mkEnableOption "apparently i hate uppercase now";
  };

  config = lib.mkMerge [
    (lib.mkIf config.cady.home.defaults {
      nixpkgs.config.allowUnfree = true;
      # QEMU + KVM autostart, see nix/common.nix for extra setup.
      dconf.settings = {
        "org/virt-manager/virt-manager/connections" = {
          autoconnect = ["qemu:///system"];
          uris = ["qemu:///system"];
        };
      };

      # Enable home-manager and git
      programs.home-manager.enable = true;
      programs.git = {
        enable = true;
        userEmail = lib.mkDefault "evanev7@gmail.com";
        userName = lib.mkDefault "caedesyth";
      };

      # Move .gtkrc-2.0 out of home and into .config, in line with gtk 3 and 4.
      gtk.gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
      # Disable news message
      news.display = "silent";
      # Reload systemd units when reloading home-manager
      systemd.user.startServices = "sd-switch";
    })
    (lib.mkIf config.cady.home.userDirsOverride {
      xdg.userDirs = let
        filesDir = "/mysc/files";
      in {
        enable = true;
        createDirectories = true;
        desktop = "${config.home.homeDirectory}/desktop";
        documents = "${config.home.homeDirectory}" + filesDir;
        download = "${config.home.homeDirectory}/downloads";
        music = "${config.home.homeDirectory}" + filesDir;
        pictures = "${config.home.homeDirectory}" + filesDir;
        publicShare = "${config.home.homeDirectory}/mysc/public";
        templates = "${config.home.homeDirectory}/mysc/templates";
        videos = "${config.home.homeDirectory}" + filesDir;
        extraConfig = {
          XDG_PROJECTS_DIR = "${config.home.homeDirectory}/projects";
        };
      };
      gtk.gtk3.bookmarks = builtins.map (file: "file://${config.home.homeDirectory}/${file}") [
        "projects"
        "desktop"
        "downloads"
        "nixos"
        "mysc/files"
      ];
    })
  ];
}