{ description = "NixOS configuration"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-master.url = "github:nixos/nixpkgs"; nixpkgs-traxys.url = "github:traxys/nixpkgs/inflight"; nix-gaming = { url = "github:fufexan/nix-gaming"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-ld = { url = "github:Mic92/nix-ld/main"; inputs.nixpkgs.follows = "nixpkgs"; }; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; naersk = { url = "github:nix-community/naersk"; inputs.nixpkgs.follows = "nixpkgs"; }; comma = { url = "github:nix-community/comma"; inputs.naersk.follows = "naersk"; inputs.nixpkgs.follows = "nixpkgs"; }; raclette = { url = "github:traxys/raclette"; inputs.naersk.follows = "naersk"; inputs.nixpkgs.follows = "nixpkgs"; }; nur = { url = "github:nix-community/NUR"; inputs.nixpkgs.follows = "nixpkgs"; }; gsm.url = "github:traxys/git-series-manager"; flake-parts.url = "github:hercules-ci/flake-parts"; treefmt-nix.url = "github:numtide/treefmt-nix"; flake-root.url = "github:srid/flake-root"; nix-index-database.url = "github:Mic92/nix-index-database"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; nixos-cosmic = { url = "github:lilyinstarlight/nixos-cosmic"; inputs.nixpkgs.follows = "nixpkgs"; }; # Extra Package Sources meson-syntax = { url = "github:Monochrome-Sauce/sublime-meson"; flake = false; }; glaurung.url = "git+https://gitea.familleboyer.net/traxys/Glaurung"; simulationcraft = { url = "github:simulationcraft/simc"; flake = false; }; kabalist = { url = "github:traxys/kabalist"; flake = false; }; roaming_proxy = { url = "github:traxys/roaming_proxy"; inputs.naersk.follows = "naersk"; inputs.nixpkgs.follows = "nixpkgs"; }; mujmap = { url = "github:elizagamedev/mujmap"; #inputs.nixpkgs.follows = "nixpkgs"; }; fioul.url = "github:traxys/fioul"; nixvim = { url = "github:nix-community/nixvim"; #url = "/home/traxys/Documents/nixvim"; #url = "github:traxys/nixvim?ref=dev"; inputs.nixpkgs.follows = "nixpkgs"; }; "vim-headerguard" = { url = "github:drmikehenry/vim-headerguard"; flake = false; }; "wiki.vim" = { url = "github:lervag/wiki.vim"; flake = false; }; "diagram.nvim" = { url = "github:3rd/diagram.nvim/feature/toggle"; flake = false; }; "blink.compat" = { url = "github:saghen/blink.compat"; flake = false; }; }; outputs = inputs@{ flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } ( { self, ... }: { systems = [ "x86_64-linux" "aarch64-linux" ]; debug = true; imports = [ ./pkgs ./neovim/pkg.nix ./hostconfig ./templates inputs.treefmt-nix.flakeModule inputs.flake-root.flakeModule ]; perSystem = { inputs', lib, system, config, ... }: { _module.args = { naersk' = inputs.naersk.lib.${system}; pkgs = import inputs.nixpkgs { inherit system; config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "warcraftlogs" ]; }; }; packages = let names = [ "glaurung" "raclette" "roaming_proxy" "mujmap" ]; in lib.genAttrs names (name: inputs'.${name}.packages.${name}); formatter = config.treefmt.build.wrapper; treefmt.config = { inherit (config.flake-root) projectRootFile; programs = { nixfmt-rfc-style.enable = true; statix.enable = true; }; }; }; flake = let extraInfo = import ./extra_info.nix; in { hmModules = { minimal = import ./minimal/hm.nix { inherit inputs extraInfo; flake = self; }; personal-cli = import ./personal-cli/hm.nix; gui = import ./gui/hm.nix; wm = import ./wm/hm.nix; personal-gui = import ./personal-gui/hm.nix; gaming = import ./gaming/hm.nix; work = import ./hostconfig/thinkpad-nixos/work.nix; }; nixosModules = { minimal = import ./minimal/nixos.nix { inherit extraInfo; }; personal-cli = import ./personal-cli/nixos.nix; gui = import ./gui/nixos.nix; wm = import ./wm/nixos.nix; de = import ./de/nixos.nix inputs.nixos-cosmic; personal-gui = import ./personal-gui/nixos.nix; roaming = import ./roaming/nixos.nix; gaming = import ./gaming/nixos.nix; }; }; } ); }