vidéo peertube - vidéo youtube - dépôt git

Configuration utilisateur avec Nix (paquets, vim…)

comment faire une configuration utilisateur avec Nix (installer/configurer des paquets, configurer vim…)

Gérer les paquets “à la main”

nix-env -iA nixos.geany
nix-env -q
nix-env -e geany

Gérer les paquets avec un config.nix

{
  packageOverrides = pkgs: with pkgs; rec {
    myPackages = pkgs.buildEnv {
      name = "myPackages";
      paths = [
        firefox
        vlc
        # ...
      ];
    };
  };
}
nix-env -iA nixos.myPackages

Paramétrer un paquet (par exemple nano)

On peut modifier des options de compilation de certains paquets.

{
  packageOverrides = pkgs: with pkgs; rec {
    _nano = pkgs.nano.override { enableNls = false; };
    myPackages = pkgs.buildEnv {
      name = "myPackages";
      paths = [
        _nano
        # ...
      ];
    };
  };
}
nix-env -iA nixos.myPackages

Configurer vim

Certains logiciels, comme vim, peuvent être configurés avec Nix (configuration, plugins…).

{pkgs}:
pkgs.vim_configurable.customize {

  name = "vim";

  vimrcConfig.customRC = ''
    set number
    # ...
  '';

  vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; {
    start = [ 
      youcompleteme 
      # ...
    ];
  };
}
{
  packageOverrides = pkgs: with pkgs; rec {
    _vim = import ./vim.nix { inherit pkgs; };
    myPackages = pkgs.buildEnv {
      name = "myPackages";
      paths = [
        _vim
        # ...
      ];
    };
  };
}