{ description = "Launchpad flake"; inputs = { # Switched to unstable 10/13/24 Generation 109 and below stable nixpkgs-unstable.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; legacy.url = "github:NixOS/nixpkgs-channels"; # Home manager home-manager.url = "github:nix-community/home-manager/release-24.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; # nix-ld.url = "github:Mic92/nix-ld"; # nix-ld.inputs.nixpkgs.follows = "nixpkgs"; 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:ch4og/zen-browser-flake"; zen-browser.url = "github:youwen5/zen-browser-flake"; zen-browser.inputs.nixpkgs.follows = "nixpkgs"; ghostty.url = "github:ghostty-org/ghostty"; # hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; # hyprland.url = "github:hyprwm/Hyprland"; # GnuCobal.url="/home/wayne/Flakes/derivations/GnuCobal/"; # kmonad = { # url = "git+https://github.com/kmonad/kmonad?submodules=1&dir=nix"; # inputs.nixpkgs.follows = "nixpkgs"; # }; agenix.url = "github:ryantm/agenix"; # PIA pia.url = "github:Fuwn/pia.nix"; pia.inputs.nixpkgs.follows = "nixpkgs"; musnix.url = "github:musnix/musnix"; # compose2nix.url = "github:aksiksi/compose2nix"; # compose2nix.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, nixpkgs-unstable, legacy, home-manager, flake-utils, flake-compat, zen-browser, nix-colors, base16, agenix, # nix-ld, musnix, pia, ghostty, # compose2nix, ... } @ 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 ghostty ;}; modules = [ # kmonad.nixosModules.default musnix.nixosModules.musnix agenix.nixosModules.default pia.nixosModules."x86_64-linux".default ./configuration.nix # nix-ld.nixosModules.nix-ld # https://github.com/nix-community/nix-ld # The module in this repository defines a new module under (programs.nix-ld.dev) instead of (programs.nix-ld) # to not collide with the nixpkgs version. # { programs.nix-ld.dev.enable = true; } ]; }; }; homeConfigurations = { wayne = home-manager.lib.homeManagerConfiguration { # pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance 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 ]; }; }; }; }