{ description = "Launchpad flake"; inputs = { # Switched to unstable 10/13/24 Generation 109 and below stable nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05"; legacy.url = "github:NixOS/nixpkgs-channels"; # Home manager home-manager.url = "github:nix-community/home-manager/release-25.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; base16.url = "github:SenchoPens/base16.nix"; nix-colors.url = "github:misterio77/nix-colors"; tt-schemes = { url = "github:tinted-theming/schemes"; flake = false; }; base16-vim = { url = "github:tinted-theming/base16-vim"; flake = false; }; # Zen Browser zen-browser.url = "github:youwen5/zen-browser-flake"; zen-browser.inputs.nixpkgs.follows = "nixpkgs"; # hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; # hyprland.url = "github:hyprwm/Hyprland"; agenix.url = "github:ryantm/agenix"; # PIA pia.url = "github:Fuwn/pia.nix"; pia.inputs.nixpkgs.follows = "nixpkgs"; musnix.url = "github:musnix/musnix"; }; outputs = { self, nixpkgs, nixpkgs-unstable, legacy, home-manager, flake-utils, flake-compat, zen-browser, nix-colors, base16, agenix, musnix, pia, ... } @ inputs: let inherit (self) outputs; system = "x86_64-linux"; lib = nixpkgs.lib; # Import lib here explicitly from nixpkgs systems = [ "aarch64-linux" "i686-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; systemSettings = { hostname = "launchpad"; profile = "Professional"; timezone = "America/Los_Angeles"; locale = "en_US.UTF-8"; gpuType = "nvidia"; version = "24.11"; name = "Vicuña"; }; userSettings = { username = "wayne"; name = "wayne"; email = "..."; dotfilesDir = "~/.dotfiles"; term = "tmux"; font = "JetBrainsMono Nerd Font"; editor = "lvim"; # Default editor; }; forAllSystems = nixpkgs.lib.genAttrs systems; in { packages = forAllSystems (system: nixpkgs.legacyPackages.${system}); formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); nixosConfigurations = { launchpad = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs outputs systemSettings userSettings lib agenix pia ;}; modules = [ musnix.nixosModules.musnix agenix.nixosModules.default pia.nixosModules."x86_64-linux".default ./configuration.nix ]; }; }; homeConfigurations = { wayne = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance extraSpecialArgs = {inherit inputs outputs systemSettings userSettings zen-browser nix-colors ;}; modules = [ base16.nixosModule # set system's scheme to nord by setting `config.scheme` { scheme = "${inputs.tt-schemes}/base16/nord.yaml"; } # import `theming.nix`, we will write it in the next, final, step # ./theming.nix ./hm/home.nix ]; }; }; }; }