{ outputs = { devenv, flake-root, flake-parts, home-manager, just-flake, nixpkgs, pre-commit-hooks, self, ... }@inputs: let lib = nixpkgs.lib // home-manager.lib; secrets = builtins.fromTOML (builtins.readFile "${self}/secrets/secrets.toml"); systemsAttributes = lib.genAttrs lib.systems.flakeExposed; kansaiPkgs = import "${self}/lib/kansai-pkgs.nix" { inherit systemsAttributes nixpkgs self inputs ; }; in flake-parts.lib.mkFlake { inherit inputs; } { systems = builtins.attrNames (systemsAttributes (system: system)); imports = [ devenv.flakeModule flake-root.flakeModule just-flake.flakeModule (import ./home { inherit kansaiPkgs self lib inputs secrets ; inherit (self) outputs; }) (import ./hosts { inherit kansaiPkgs self lib inputs secrets ; inherit (self) outputs; }) ]; perSystem = { system, config, ... }: let pkgs = (kansaiPkgs { })."${system}"; in { imports = let parts = "${self}/parts"; in [ "${parts}/just.nix" (import "${parts}/checks.nix" { inherit pre-commit-hooks system; }) (import "${parts}/devenv.nix" { inherit config lib pkgs; }) ]; packages.default = home-manager.defaultPackage."${system}"; formatter = pkgs.nixfmt-rfc-style; }; }; inputs = { chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; # TODO: inputs flake-root.url = "github:srid/flake-root"; just-flake.url = "github:juspay/just-flake"; nix-filter.url = "github:numtide/nix-filter"; nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nixpkgs-stable.url = "github:NixOS/nixpkgs/24.05"; nur.url = "github:nix-community/NUR"; systems.url = "github:nix-systems/default"; aagl = { url = "github:ezKEa/aagl-gtk-on-nix"; inputs = { flake-compat.follows = "flake-compat"; nixpkgs.follows = "nixpkgs"; }; }; apple-fonts = { url = "github:Lyndeno/apple-fonts.nix"; # TODO: sf-pro, sf-compact, sf-mono, sf-arabic, ny inputs = { flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; }; }; cachix = { url = "github:cachix/cachix"; inputs = { devenv.follows = "devenv"; git-hooks.follows = "pre-commit-hooks"; flake-compat.follows = "flake-compat"; nixpkgs.follows = "nixpkgs"; }; }; devenv = { url = "github:cachix/devenv"; # TODO: nix inputs = { cachix.follows = "cachix"; flake-compat.follows = "flake-compat"; nixpkgs.follows = "nixpkgs"; pre-commit-hooks.follows = "pre-commit-hooks"; }; }; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; flake-parts = { url = "github:hercules-ci/flake-parts"; inputs.nixpkgs-lib.follows = "nixpkgs"; }; flake-registry = { url = "github:NixOS/flake-registry"; flake = false; }; flake-utils = { url = "github:numtide/flake-utils"; inputs.systems.follows = "systems"; }; gitignore = { url = "github:hercules-ci/gitignore.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprfocus = { url = "github:pyt0xic/hyprfocus"; inputs = { hyprland.follows = "hyprland"; nix-filter.follows = "nix-filter"; }; }; hyprland = { type = "git"; url = "https://github.com/hyprwm/Hyprland"; submodules = true; # TODO: aquamarine, hyprcursor, hyprland-protocols, hyprlang, hyprutils, # hyprwayland-scanner, xdph inputs = { nixpkgs.follows = "nixpkgs"; pre-commit-hooks.follows = "pre-commit-hooks"; systems.follows = "systems"; }; }; hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs = { hyprland.follows = "hyprland"; nixpkgs.follows = "nixpkgs"; systems.follows = "systems"; }; }; nix-alien = { url = "github:thiagokokada/nix-alien"; inputs = { flake-compat.follows = "flake-compat"; flake-utils.follows = "flake-utils"; nix-filter.follows = "nix-filter"; nix-index-database.follows = "nix-index-database"; nixpkgs.follows = "nixpkgs"; }; }; nix-gaming = { url = "github:fufexan/nix-gaming"; # TODO: umu inputs = { flake-parts.follows = "flake-parts"; nixpkgs.follows = "nixpkgs"; }; }; nix-index-database = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-search = { url = "github:diamondburned/nix-search"; inputs = { flake-compat.follows = "flake-compat"; flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; }; }; nix-thorium = { url = "github:almahdi/nix-thorium"; inputs.nixpkgs.follows = "nixpkgs"; }; notion-repackaged = { url = "github:pikokr/nix-notion-repackaged"; inputs.nixpkgs.follows = "nixpkgs"; }; omnix = { url = "github:juspay/omnix"; # TODO: cachix-push, cargo-doc-live, devour-flake, inspect, # nix-systems-aarch64-darwin, nix-systems-aarch64-linux, # nix-systems-x86_64-darwin, nix-systems-x86_64-linux, # process-compose-flake, rust-flake, treefmt-nix inputs = { flake-parts.follows = "flake-parts"; nixpkgs.follows = "nixpkgs"; systems.follows = "systems"; }; }; pia = { url = "github:Fuwn/nixos-pia"; inputs = { flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; }; }; pre-commit-hooks = { url = "github:cachix/git-hooks.nix"; inputs = { flake-compat.follows = "flake-compat"; gitignore.follows = "gitignore"; nixpkgs.follows = "nixpkgs"; nixpkgs-stable.follows = "nixpkgs-stable"; }; }; nix-prettier = { url = "github:loophp/nix-prettier"; inputs = { flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; }; }; pywal-nix = { url = "github:Fuwn/pywal-nix"; inputs = { flake-compat.follows = "flake-compat"; flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; pre-commit-hooks.follows = "pre-commit-hooks"; systems.follows = "systems"; }; }; rui = { url = "github:Fuwn/rui"; inputs = { flake-compat.follows = "flake-compat"; flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; pre-commit-hooks.follows = "pre-commit-hooks"; systems.follows = "systems"; }; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs = { nixpkgs.follows = "nixpkgs"; nixpkgs-stable.follows = "nixpkgs-stable"; }; }; spicetify-nix = { url = "github:the-argus/spicetify-nix"; inputs = { flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; }; }; tailray = { url = "github:NotAShelf/tailray"; inputs.nixpkgs.follows = "nixpkgs"; }; tsutsumi = { url = "github:Fuwn/tsutsumi"; # TODO: gigi, gitignore, nix-gleam inputs = { flake-compat.follows = "flake-compat"; flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; pre-commit-hooks.follows = "pre-commit-hooks"; systems.follows = "systems"; }; }; }; }