depot/third_party/home-manager/docs/release-notes/rl-2105.md
Default email c6444ecc3c Project import generated by Copybara.
GitOrigin-RevId: 51e44a13acea71b36245e8bd8c7db53e0a3e61ee
2024-01-05 12:06:15 +01:00

5.6 KiB

Release 21.05

The 21.05 release branch became the stable branch in May, 2021.

Highlights

This release has the following notable changes:

  • The 'opt-programs.broot.verbs` option is now a list rather than an attribute set. To migrate, move the keys of the attrset into the list items' invocation keys. For example,

    programs.broot.verbs = {
      "p" = { execution = ":parent"; };
    };
    

    becomes

    programs.broot.verbs = [
      {
        invocation = "p";
        execution = ":parent";
      }
    ];
    
  • The programs.mpv.package option has been changed to allow custom derivations. The following configuration is now possible:

    programs.mpv.package = (pkgs.wrapMpv (pkgs.mpv-unwrapped.override {
      vapoursynthSupport = true;
    }) {
      extraMakeWrapperArgs = [
        "--prefix" "LD_LIBRARY_PATH" ":" "${pkgs.vapoursynth-mvtools}/lib/vapoursynth"
      ];
    });
    

    As a result of this change, programs.mpv.package is no longer the resulting derivation. Use the newly introduced programs.mpv.finalPackage instead.

  • The programs.rofi.extraConfig option is now an attribute set rather than a string. To migrate, move each line into the attribute set, removing the rofi. prefix from the keys. For example,

    programs.rofi.extraConfig = ''
      rofi.show-icons: true
      rofi.modi: drun,emoji,ssh
    '';
    

    becomes

    programs.rofi.extraConfig = {
      show-icons = true;
      modi = "drun,emoji,ssh";
    };
    
  • The programs.rofi.theme option now supports defining a theme using an attribute set, the following configuration is now possible:

    programs.rofi.theme = let
      # Necessary to avoid quoting non-string values
      inherit (config.lib.formats.rasi) mkLiteral;
    in {
       "@import" = "~/.config/rofi/theme.rasi";
    
      "*" = {
        background-color = mkLiteral "#000000";
        foreground-color = mkLiteral "rgba ( 250, 251, 252, 100 % )";
        border-color = mkLiteral "#FFFFFF";
        width = 512;
      };
    
      "#textbox-prompt-colon" = {
        expand = false;
        str = ":";
        margin = mkLiteral "0px 0.3em 0em 0em";
        text-color = mkLiteral "@foreground-color";
      };
    };
    
  • The services.redshift.extraOptions and services.gammastep.extraOptions options were removed in favor of services.redshift.settings and services.gammastep.settings, that are now an attribute set rather than a string. They also support new features not available before, for example:

    services.redshift = {
      dawnTime = "6:00-7:45";
      duskTime = "18:35-20:15";
      settings = {
        redshift = {
          gamma = 0.8;
          adjustment-method = "randr";
        };
    
        randr = {
          screen = 0;
        };
      };
    };
    

    It is recommended to check either redshift.conf.sample or gammastep.conf.sample for the available additional options in each program.

  • Specifying programs.neomutt.binds.map or programs.neomutt.macros.map as a single string is now deprecated in favor of specfiying it as a list of strings.

  • The programs.neovim.configure is deprecated in favor of other programs.neovim options; please use the other options at your disposal:

    configure.packages.*.opt  -> programs.neovim.plugins = [ { plugin = ...; optional = true; }]
    configure.packages.*.start  -> programs.neovim.plugins = [ { plugin = ...; }]
    configure.customRC -> programs.neovim.extraConfig
    
  • Home Manager now respects the NO_COLOR environment variable as per https://no-color.org/.

  • Qt module now supports qt.style.name to specify a theme name and qt.style.package to specify a theme package. If you have set qt.platformTheme to gnome, a qt.style.package compatible with both Qt and Gtk is now required to be set. For instance:

    qt = {
      platformTheme = "gnome";
      style = {
        name = "adwaita-dark";
        package = pkgs.adwaita-qt;
      };
    };
    
  • The library type fontType now has a size attribute in addition to name. For example:

    font = {
      name = "DejaVu Sans";
      size = 8;
    };
    
  • The programs.htop.settings option is introduced to replace individual options in programs.htop. To migrate, set the htop options directly in programs.htop.settings. For example:

    programs.htop = {
      enabled = true;
      settings = {
         color_scheme = 5;
         delay = 15;
         highlight_base_name = 1;
         highlight_megabytes = 1;
         highlight_threads = 1;
      };
    };
    

State Version Changes

The state version in this release includes the changes below. These changes are only active if the home.stateVersion option is set to "21.05" or later.

  • The newsboat module now stores generated configuration in $XDG_CONFIG_HOME/newsboat.