- Modules & Packages shared via flakes
- Framework for building reproducible system and desktop configurations
- Nixvim with friendly shortcuts and powerful plugins
Put tsssni.nix in your flake inputs. Only support unstable.
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
tsssni = {
url = "github:tsssni/tsssni.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};Provide modules in tsssni.${platform}Modules.tsssni. Include in corresponiding options and extend lib with tsssni.lib.
let
pkgs = import inputs.nixpkgs {
inherit system;
};
lib = inputs.nixpkgs.lib.extend (final: prev: tsssni.lib);
in
{
nixosConfigurations.tsssni = nixpkgs.lib.nixosSystem {
inherit lib;
modules = [ tsssni.nixosModules.tsssni ];
};
darwinConfigurations.tsssni = nix-darwin.lib.darwinSystem {
inherit lib;
modules = [ tsssni.darwinModules.tsssni ];
};
homeConfigurations.tsssni = home-manager.lib.homeManagerConfiguration {
inherit lib pkgs;
modules = [ tsssni.homeModules.tsssni ];
};
}Provide pkgs via overlays.
nixpkgs.overlays = inputs.tsssni.pkgs;Put system configs under ./configs/(nixos|nix-darwin)/${host-name} and home-manager configs under ./configs/home-manager/${user-name}. Write system configs under ${config-path}/system/ and home-manager configs under ${config-path}/${user-name}/, should have rebuild.nix under above directories. Build system with (nixos|darwin)-rebuild switch --flake . or build home with home-manager switch --flake ..
rebuild.nix should follow this format. system is required since it could not be detected.
{
system = "x86_64-linux";
config = {
cudaSupport = true;
cudaCapabilities = [ "8.9" ];
};
}