--- marp: true class: invert paginate: true footer: "Albert Vala, Filip Kohout, Nix flakes & Nix command" --- # Nix flakes & Nix command --- # nix command * Nove nix cli --- # Proc zmena? * Protoze treba nix-shell se nemel pouzivat na nix-shell -p * Flake support --- # Porovnani ```shell nix-shell -p cowsay nix shell nixpkgs#cowsay ``` nix eval nix why-depends --- # Flakes ## Why tho? * Lockfiles. * Flake inputs --- # Na co flaku pouzit? --- # 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; } ]; }; }; }; } ```