Title: Using nix download bandwidth limit feature
       Author: Solène
       Date: 23 August 2022
       Tags: bandwidth nix linux
       Description: This is a guide explaining how to set up NixOS to use a
       development version of nix including a new change supporting download
       speed limit.
       
       # Introduction
       
       I submitted a change to the nix package manager last week, and it got
       merged!  It's now possible to define a bandwidth speed limit in the
       nix.conf configuration file.
       
 (HTM) Link to the GitHub pull request
       
       This kind of limit setting is very important for users who don't have a
       fast Internet access, this allows the service to download packages
       while keep the network usable meanwhile.
       
       Unfortunately, we need to wait for the next Nix version to be available
       to use it, fortunately it's easy to override a package settings to use
       the merge commit as a new version for nix.
       
       Let's see how to configure NixOS to use a newer Nix version from git.
       
       # Setup
       
       On NixOS, we will override the nix package attributes to change its
       version and the according checksum.
       
       We want the new option "download-speed" that takes a value for the
       kilobytes per second speed limit.
       
       ```nix
         nix.extraOptions = ''
           download-speed = 800
         '';
         nixpkgs.overlays = [
             (self: super:
             {
                 nix = super.nix.overrideDerivation (oldAttrs: {
                     name = "nix-unstable";
                     src = super.fetchFromGitHub {
                         owner = "NixOS";
                         repo = "nix";
                         rev = "8d84634e26d6a09f9ca3fe71fcf9cba6e4a95107";
                         sha256 = "sha256-Z6weLCmdPZR044PIAA4GRlkQRoyAc0s5ASeLr+eK1N0=";
                     };
                 });
             })
         ];
       ```
       
       Run "nixos-rebuild switch" as root, and voilà!
       
       For non-NixOS, you can clone the git repository, checkout the according
       commit, build nix and install it on your system.
       
       # Going further
       
       Don't forget to remove that override setting once a new nix release
       will be published, or you will keep an older version of nix.