| marp |
class |
paginate |
footer |
| true |
invert |
true |
Albert Vala, Filip Kohout, Nix flakes & Nix command |
Nix flakes & Nix command
Nix Command
- Nove nix cli
- Flake support
Porovnani
nix-shell -p cowsay #Stare
nix shell nixpkgs#cowsay #Nove
nix run nixpkgs#cowsay #Nove
Commandy
| Command |
Na |
| flake new |
Vytvoreni flaky z template |
| develop |
Build environment shell |
| shell |
temp shell s nejakym programem |
| config check |
Check configu na potencialni chyby |
| run |
Spusti output z flaky |
Flakes
Proc?
Na co?
Jak pouzit flakes na system configuraci?
- Flake je jen cast zbytek je v normalnich nix filech
- Zbytek konfigurace bere inputy z flaky.
- Neprijdeme o nic jen mame lock file a moznost flake jako inputu
Flake example
{
description = "NixOS configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
zen-browser.url = "github:0xc000022070/zen-browser-flake";
};
outputs = inputs @ {
nixpkgs,
home-manager,
zen-browser,
...
}: {
nixosConfigurations = {
laptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./laptop/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = false;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {inherit zen-browser;};
home-manager.users.albert = import ./modules/home.nix;
}
];
};
};
};
}
{
zen-browser,
config,
pkgs,
...
}: {
home.username = "nixFreak";
home.homeDirectory = "/home/nixFreak";
home.stateVersion = "24.05";
home.packages = with pkgs;
[
cowsay
]
++ [
zen-browser.packages."${system}".default
];
programs.home-manager.enable = true;
}
nixos-rebuild
nix build /etc/nixos#nixosConfigurations.nixos.config.system.build.toplevel \
&& ./result/bin/switch-to-configuration switch