presentation-nix-flakes/prezentace.md
2025-03-13 17:29:40 +01:00

2.0 KiB

marp class paginate footer
true invert true 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

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;
          }
        ];
      };
    };
  };
}