This repository has no description
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166{ description = "A simple NixOS flake";
inputs = {
# Core inputs nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; moppkgs.url = "git+https://knot.moppu.dev/did:plc:hv3kvjufxykn2w4mriztfkhj/"; sops-nix.url = "github:Mic92/sops-nix"; import-tree.url = "github:denful/import-tree"; catppuccin.url = "github:catppuccin/nix/release-26.05"; home-manager.url = "github:nix-community/home-manager/release-26.05"; nix-index-database.url = "github:nix-community/nix-index-database";
xilinx-ise.url = "github:Mop-u/nix-fpga-tools/dev";
# To be removed in 26.11 niri.url = "git+https://codeberg.org/bananad3v/niri-nix"; noctalia-greeter.url = "github:noctalia-dev/noctalia-greeter"; noctalia.url = "github:noctalia-dev/noctalia";
# To be removed once helix updates past v25.x.x with plugin support helix.url = "github:helix-editor/helix";
# To be removed once zen-browser gets a home-manager module zen-browser.url = "github:0xc000022070/zen-browser-flake";
# Pretty-print build output nix-monitored.url = "github:ners/nix-monitored";
# Access all the vscode extensions nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
# Bleeding-edge VR packages nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
# More convenient gamescope config scopebuddy.url = "github:OpenGamingCollective/ScopeBuddy";
# OpenGl ES 2.0 support niri-legacy = { url = "github:niri-wm/niri/v25.11"; inputs.nixpkgs.follows = "nixpkgs"; };
# Server inputs tangled.url = "git+https://tangled.org/did:plc:j5hmlfdrwkvtxm7cjmu7j2is"; nix-minecraft.url = "github:Infinidoge/nix-minecraft"; steamcmd-flake = { url = "github:flashgnash/steamcmd-flake"; inputs.nixpkgs.follows = "nixpkgs"; };
# sublime text packages stextPackageControl = { url = "github:wbond/package_control"; flake = false; }; stextCatppuccin = { url = "github:catppuccin/sublime-text"; flake = false; }; };
outputs = { self, ... }@inputs: let inherit (inputs.nixpkgs) lib; hosts = lib.filterAttrs (n: v: v == "directory") (builtins.readDir ./hosts); globalConfig = host: let otherHostNames = lib.filterAttrs (n: v: n != host) hosts; otherHosts = lib.mapAttrsToList (n: v: { inherit (self.nixosConfigurations.${n}) config; }) otherHostNames; homeCfg = ./hosts/${host}/home; systemCfg = ./hosts/${host}/os; in { specialArgs = let inherit (self.nixosConfigurations.${host}.pkgs.stdenv.hostPlatform) system; in { inherit inputs otherHosts; unstable = import inputs.unstable { inherit system; config.allowUnfree = true; }; moppkgs = inputs.moppkgs.packages.${system}; }; modules = [ inputs.catppuccin.nixosModules.catppuccin inputs.home-manager.nixosModules.home-manager inputs.niri.nixosModules.default inputs.nix-monitored.nixosModules.default inputs.noctalia-greeter.nixosModules.default (inputs.import-tree [ ./common/os ./nixosModules systemCfg ]) inputs.sops-nix.nixosModules.default { home-manager.sharedModules = [ (inputs.import-tree ./homeModules) inputs.catppuccin.homeModules.catppuccin inputs.niri.homeModules.default inputs.nix-index-database.homeModules.default inputs.noctalia.homeModules.default inputs.zen-browser.homeModules.default ]; } ( { config, inputs, lib, pkgs, specialArgs, ... }: { nixpkgs = { config.allowUnfree = true; overlays = (import ./overlays.nix) { inherit inputs lib; }; }; networking.hostName = lib.mkDefault host; home-manager = { backupFileExtension = lib.mkDefault "backup"; extraSpecialArgs = specialArgs; sharedModules = [ { nixpkgs = { config = { inherit (config.nixpkgs.config) allowUnfree; }; inherit (config.nixpkgs) overlays; }; catppuccin = { inherit (config.catppuccin) enable accent flavor; }; home.stateVersion = config.system.stateVersion; } ]; users.${config.sidonia.userName} = { imports = [ (inputs.import-tree ./common/hm) ] ++ (lib.optional (lib.pathExists homeCfg) (inputs.import-tree homeCfg)); home = { username = config.sidonia.userName; homeDirectory = "/home/${config.sidonia.userName}"; }; }; }; } ) ]; }; in { nixosConfigurations = builtins.mapAttrs (n: v: lib.nixosSystem (globalConfig n)) hosts; };}