home-manager/docs/release-notes/rl-2009.md

3.8 KiB

Release 20.09

The 20.09 release branch became the stable branch in late September, 2020.

Highlights

This release has the following notable changes:

  • Nothing has happened.

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 "20.09" or later.

  • The options home.homeDirectory and home.username no longer have default values and must therefore be provided in your configuration. Previously their values would default to the content of the environment variables HOME and USER, respectively.

    Further, the options xdg.cacheHome, xdg.dataHome will no longer be affected by the XDG_CACHE_HOME, XDG_CONFIG_HOME, and XDG_DATA_HOME environment variables. They now unconditionally default to

    • "${config.home.homeDirectory}/.cache",

    • "${config.home.homeDirectory}/.config", and

    • "${config.home.homeDirectory}/.local/share".

    If you choose to switch to state version 20.09 then you must set these options if you use non-default XDG base directory paths.

    The initial configuration generated by

    $ nix-shell '<home-manager>' -A install
    

    will automatically include these options, when necessary.

  • Git's smtpEncryption option is now set to tls only if both accounts.email.accounts.name.smtp.tls.enable and accounts.email.accounts.name.smtp.tls.useStartTls are true. If only accounts.email.accounts.name.smtp.tls.enable is true, ssl is used instead.

  • The nixpkgs module no longer references <nixpkgs>. Before it would do so when building the pkgs module argument. Starting with state version 20.09, the pkgs argument is instead built from the same Nixpkgs that was used to initialize the Home Manager modules. This is useful, for example, when using Home Manager within a Nix Flake. If you want to keep using <nixpkgs> with state version ≥ 20.09 then add

    _module.args.pkgsPath = <nixpkgs>;
    

    to your Home Manager configuration.

  • The options wayland.windowManager.sway.config.bars and opt-xsession.windowManager.i3.config.bars have been changed so that most of the suboptions are now nullable and default to null. The default for these two options has been changed to manually set the old defaults for each suboption. The overall effect is that if the bars options is not set, then the default remains the same. On the other hand, something like:

    bars = [ {
      command = "waybar";
    } ];
    

    will now create the config:

    bar {
      swaybar_command waybar
    }
    

    instead of

    bar {
    
      font pango:monospace 8
      mode dock
      hidden_state hide
      position bottom
      status_command /nix/store/h7s6i9q1z5fxrlyyw5ls8vqxhf5bcs5a-i3status-2.13/bin/i3status
      swaybar_command waybar
      workspace_buttons yes
      strip_workspace_numbers no
      tray_output primary
      colors {
        background #000000
        statusline #ffffff
        separator #666666
        focused_workspace #4c7899 #285577 #ffffff
        active_workspace #333333 #5f676a #ffffff
        inactive_workspace #333333 #222222 #888888
        urgent_workspace #2f343a #900000 #ffffff
        binding_mode #2f343a #900000 #ffffff
      }
    
    }