nix-conf/flake.nix

136 lines
3.8 KiB
Nix

{
description = "Nixos config flake";
inputs = {
# Use unstable packages ( which are amazing )
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# YEI, HOME MANAGER
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# Let's theme everything easilly
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
# NVF FOR SUPER NVIM
nvf = {
url = "github:notashelf/nvf";
inputs.nixpkgs.follows = "nixpkgs";
};
# auto-cpufreq latest version, for optimizing my laptop's thermal's
auto-cpufreq = {
url = "github:AdnanHodzic/auto-cpufreq";
inputs.nixpkgs.follows = "nixpkgs";
};
# use custom nbfc that has the config for my laptop
nbfc-linux = {
url = "github:cronyakatsuki/nbfc-linux/a715-41g";
inputs.nixpkgs.follows = "nixpkgs";
};
# use prebuild nix-index ( crashes on me cause little ram )
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
# Add pre commit hooks
git-hooks = {
url = "github:cachix/git-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
# iamb, a matrix tui client. Latest possible version
iamb = {
url = "github:ulyssa/iamb";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-on-droid = {
url = "github:nix-community/nix-on-droid/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
};
outputs = {
self,
nixpkgs,
home-manager,
auto-cpufreq,
git-hooks,
nix-on-droid,
...
} @ inputs: {
homeConfigurations = {
"ivek" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {system = "x86_64-linux";};
modules = [./hosts/server/home.nix];
extraSpecialArgs = {inherit inputs;};
};
"banir" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {system = "x86_64-linux";};
modules = [./hosts/server/home.nix];
extraSpecialArgs = {inherit inputs;};
};
};
nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration {
modules = [inputs.stylix.nixOnDroidModules.stylix ./hosts/andronix/configuration.nix];
extraSpecialArgs = {inherit inputs;};
pkgs = import nixpkgs {
system = "aarch64-linux";
overlays = [
nix-on-droid.overlays.default
];
};
};
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
# Get the system config
./hosts/nixos/configuration.nix
# Enable stylix
inputs.stylix.nixosModules.stylix
# Load updated auto-cpufreq
auto-cpufreq.nixosModules.default
# Load my modules
./modules/linux/nixos
# Still no specific modules here
# ./modules/cross-platform/nixos
# Setup home manager for my user
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.extraSpecialArgs = {inherit inputs;};
home-manager.backupFileExtension = "backup";
home-manager.users.crony = {
imports = [
./hosts/nixos/home.nix
./modules/linux/home-manager
./modules/cross-platform/home-manager
];
};
}
];
};
devShells = {
x86_64-linux.default = let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in (import ./shell.nix {inherit pkgs git-hooks;});
aarch64-linux.default = let
system = "aarch64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in (import ./shell.nix {inherit pkgs git-hooks;});
};
};
}