{
  description = "Master flake for Voidarc nix config";

  inputs = {
    # System
    nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
    nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
    nvim-wrapped.url = "git+file:///home/user01/.dotfiles/.config/nvim";
    hyprland.url = "github:hyprwm/Hyprland";

    # Apps
    sls-steam.url = "github:AceSLS/SLSsteam";
    woomer = {
      url = "github:voidarclabs/woomer";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    chataigne.url = "./modules/chataigne";
    norgolith = {
      url = "github:NTBBloodbath/norgolith";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    wshowkeys = {
      url = "github:voidarclabs/wshowkeys";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    # Utils
    doot = {
      url = "github:voidarclabs/nixos.doot";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    way-edges = {
      url = "github:way-edges/way-edges";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    otter-launcher = {
      url = "github:kuokuo123/otter-launcher";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    fsel = {
      url = "github:Mjoyufull/fsel";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    # Davinci-resolve
    cracked-davinci.url = "git+https://git.voidarc.co.uk/voidarc/nixos.davinci";

    omnisearch = {
      url = "git+https://git.voidarc.co.uk/voidarc/omnisearch";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = {
    self,
    nixpkgs,
    ...
  } @ inputs: let
    system = "x86_64-linux";

    hardwareConfig = import /etc/nixos/hardware-configuration.nix;
    common = import ./configs/common.nix;

    mkSystem = extraModules:
      nixpkgs.lib.nixosSystem {
        inherit system;
        specialArgs = {inherit inputs;};
        modules =
          [
            common
            hardwareConfig
          ]
          ++ extraModules;
      };
  in {
    nixosConfigurations = {
      mobile02 = mkSystem [./configs/configuration-laptop.nix];
      hackstation = mkSystem [
        ./configs/configuration-pc.nix
        # ./modules/davinci/davinci.nix
        ./modules/i3/i3.nix
        inputs.omnisearch.nixosModules.default
        {
          services.omnisearch.enable = true;
        }
      ];
    };
  };
}
