mirror of
https://github.com/nix-community/home-manager
synced 2024-11-30 06:59:45 +01:00
533 lines
No EOL
54 KiB
HTML
533 lines
No EOL
54 KiB
HTML
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
<title>Appendix D. Release Notes</title>
|
||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||
<script src="highlightjs/highlight.pack.js" type="text/javascript"></script><script src="highlightjs/loader.js" type="text/javascript"></script>
|
||
<meta name="generator" content="nixos-render-docs" />
|
||
<link rel="home" href="index.xhtml" title="Home Manager Manual" />
|
||
<link rel="up" href="index.xhtml" title="Home Manager Manual" /><link rel="prev" href="nix-darwin-options.xhtml" title="Appendix C. nix-darwin Configuration Options" />
|
||
</head>
|
||
<body>
|
||
<div class="navheader">
|
||
<table width="100%" summary="Navigation header">
|
||
<tr>
|
||
<th colspan="3" align="center">Appendix D. Release Notes</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="nix-darwin-options.xhtml">Prev</a> </td>
|
||
<th width="60%" align="center"> </th>
|
||
<td width="20%" align="right"> </td>
|
||
</tr>
|
||
</table>
|
||
<hr />
|
||
</div><div class="appendix"> <div class="titlepage"> <div> <div> <h1 id="ch-release-notes" class="title" >Appendix D. Release Notes </h1> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-24.05">Release 24.05</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-23.11">Release 23.11</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-23.05">Release 23.05</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-22.11">Release 22.11</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-22.05">Release 22.05</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-21.11">Release 21.11</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-21.05">Release 21.05</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-20.09">Release 20.09</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-20.03">Release 20.03</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-19.09">Release 19.09</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-19.03">Release 19.03</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.xhtml#sec-release-18.09">Release 18.09</a> </span></dt> </dl></div><p>This section lists the release notes for stable versions of Home Manager
|
||
and the current unstable version.</p><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-24.05" class="title" >Release 24.05 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-24.05-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-24.05-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>This is the current unstable branch and the information in this section
|
||
is therefore not final.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-24.05-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <code class="literal">.release</code> file in the Home Manager project root has been
|
||
removed. Please use the <code class="literal">release.json</code> file instead.</p></li><li class="listitem"><p>The <span class="command"><strong>home-manager uninstall</strong></span> command has been reworked to,
|
||
hopefully, be more robust. The new implementation makes use of a new
|
||
Boolean configuration option <a class="link" href="options.xhtml#opt-uninstall" >uninstall</a> that can
|
||
also be used in a pure Nix Flake setup.</p><p>Specifically, if you are using a Flake only installation, then you
|
||
can clean up a Home Manager installation by adding</p><pre><code class="programlisting nix">uninstall = true;
|
||
</code></pre><p>to your existing configuration and then build and activate. This
|
||
will override any other configuration and cause, for example, the
|
||
removal of all managed files.</p><p>Please be very careful when enabling this option since activating
|
||
the built configuration will not only remove the managed files but
|
||
<span class="emphasis"><em>all</em></span> Home Manager state from your user environment. This includes
|
||
removing all your historic Home Manager generations!</p></li><li class="listitem"><p>The use of <code class="literal">$DRY_RUN_CMD</code> and <code class="literal">$DRY_RUN_NULL</code> in activation script
|
||
blocks is now deprecated. Instead use the new shell function
|
||
<span class="command"><strong>run</strong></span>. In most cases it is sufficient to replace
|
||
<code class="literal">$DRY_RUN_CMD</code> by <span class="command"><strong>run</strong></span>. For example, if your configuration
|
||
currently contains</p><pre><code class="programlisting nix">home.activation.reportChanges = config.lib.dag.entryAnywhere ''
|
||
if [[ -v oldGenPath ]]; then
|
||
$DRY_RUN_CMD nix store diff-closures $oldGenPath $newGenPath
|
||
fi
|
||
'';
|
||
</code></pre><p>then you are now encouraged to change to</p><pre><code class="programlisting nix">home.activation.reportChanges = config.lib.dag.entryAnywhere ''
|
||
if [[ -v oldGenPath ]]; then
|
||
run nix store diff-closures $oldGenPath $newGenPath
|
||
fi
|
||
'';
|
||
</code></pre><p>See the description of <a class="link" href="options.xhtml#opt-home.activation" >home.activation</a> for
|
||
more. The deprecated variables will continue to work for now but
|
||
their use may in the future trigger a warning message and eventually
|
||
they may be removed entirely.</p></li><li class="listitem"><p>Similarly, the use of <code class="literal">$VERBOSE_ECHO</code> in activation script blocks is
|
||
deprecated. Instead use the new shell function
|
||
<span class="command"><strong>verboseEcho</strong></span>. That is,</p><pre><code class="programlisting nix">home.activation.doThing = config.lib.dag.entryAnywhere ''
|
||
$VERBOSE_ECHO "Doing the thing"
|
||
''
|
||
</code></pre><p>should now be expressed</p><pre><code class="programlisting nix">home.activation.doThing = config.lib.dag.entryAnywhere ''
|
||
verboseEcho "Doing the thing"
|
||
''
|
||
</code></pre><p>See the description of <a class="link" href="options.xhtml#opt-home.activation" >home.activation</a> for
|
||
more. The deprecated variable will continue to work for now but its
|
||
use may in the future trigger a warning message and eventually it
|
||
may be removed entirely.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-24.05-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"24.05" or later.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Nothing, yet.</p></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-23.11" class="title" >Release 23.11 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-23.11-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-23.11-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 23.11 release branch became stable in November, 2023.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-23.11-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>When using <a class="link" href="options.xhtml#opt-programs.fish.enable" >programs.fish.enable</a>, the setup code for
|
||
<a class="link" href="options.xhtml#opt-home.sessionVariables" >home.sessionVariables</a> is now translated with
|
||
<a class="link" href="https://github.com/bouk/babelfish" target="_top">babelfish</a>. This should result
|
||
in significantly faster shell startup times but could theoretically
|
||
break if you have very complex bash expressions in a session
|
||
variable. Please report any issues you experience.</p></li><li class="listitem"><p>The <code class="literal">.release</code> file in the Home Manager source tree has been
|
||
supplanted by <code class="literal">release.json</code>, which contains more information about
|
||
the branch. If you have any external code reading this file, please
|
||
switch to consuming <code class="literal">release.json</code> instead. The <code class="literal">.release</code> file will
|
||
be removed in 24.05.</p></li><li class="listitem"><p>Home Manager has migrated to using the upstream Nixpkgs
|
||
<code class="literal">lib.nixosOptionsDoc</code> processor for option documentation. If you
|
||
have any external Home Manager modules, their option descriptions
|
||
and literal examples should be translated to <a class="link" href="https://nixos.org/manual/nixpkgs/unstable/#sec-contributing-markup" target="_top">Nixpkgs-flavoured
|
||
Markdown</a>.</p></li><li class="listitem"><p>The <code class="literal">services.password-store-sync</code> module has been removed. Use
|
||
<code class="literal">services.git-sync</code> instead.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-23.11-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"23.11" or later.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Nothing, yet.</p></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-23.05" class="title" >Release 23.05 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-23.05-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-23.05-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 23.05 release branch became the stable branch in May, 2023.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-23.05-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Firefox add-ons are now managed per-profile. That is, if you are
|
||
currently having</p><pre><code class="programlisting nix">programs.firefox.extensions = [ foo bar ];
|
||
</code></pre><p>in your configuration then you must change it to</p><pre><code class="programlisting nix">programs.firefox.profiles.myprofile.extensions = [ foo bar ];
|
||
</code></pre></li><li class="listitem"><p>The default configuration location has been changed from
|
||
<code class="literal">~/.config/nixpkgs/home.nix</code> to <code class="literal">~/.config/home-manager/home.nix</code>.</p><p>Similarly, if you are using a Nix flake based setup then the default
|
||
flake file location has changed from <code class="literal">~/.config/nixpkgs/flake.nix</code>
|
||
to <code class="literal">~/.config/home-manager/flake.nix</code>.</p><p>The old location will continue to work but using it will trigger a
|
||
warning message. We changed the default configuration location to
|
||
avoid confusion about which files belong to Home Manager and which
|
||
belong to Nixpkgs.</p></li><li class="listitem"><p>The <code class="literal">home-manager</code> tool now offers an <code class="literal">init</code> command. This command
|
||
can be used to generate an initial Home Manager configuration, and
|
||
optionally also activate it. The recommended installation method for
|
||
a standalone Home Manager setup with Nix flakes uses this new
|
||
command. The standard installation method remains the same but uses
|
||
the new command internally. See <a class="link" href="index.xhtml#sec-flakes-standalone" title="Standalone setup" >sec-flakes-standalone</a> for
|
||
more.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-23.05-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"23.05" or later.</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The options</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: circle;"><li class="listitem"><p><a class="link" href="options.xhtml#opt-xsession.windowManager.i3.config.window.titlebar" >xsession.windowManager.i3.config.window.titlebar</a></p></li><li class="listitem"><p><a class="link" href="options.xhtml#opt-xsession.windowManager.i3.config.floating.titlebar" >xsession.windowManager.i3.config.floating.titlebar</a></p></li><li class="listitem"><p><a class="link" href="options.xhtml#opt-wayland.windowManager.sway.config.window.titlebar" >wayland.windowManager.sway.config.window.titlebar</a></p></li><li class="listitem"><p><a class="link" href="options.xhtml#opt-wayland.windowManager.sway.config.floating.titlebar" >wayland.windowManager.sway.config.floating.titlebar</a></p></li></ul></div><p>now default to <code class="literal">true</code> which is consistent with the default values
|
||
for those options used by <code class="literal">i3</code> and <code class="literal">sway</code>.</p></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-22.11" class="title" >Release 22.11 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-22.11-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-22.11-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 22.11 release branch became the stable branch in November, 2022.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-22.11-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-home.stateVersion" >home.stateVersion</a> option no longer has a default
|
||
value. It used to default to “18.09”, which was the Home Manager
|
||
version that introduced the option. If your configuration does not
|
||
explicitly set this option then you need to add</p><pre><code class="programlisting nix">home.stateVersion = "18.09";
|
||
</code></pre><p>to your configuration.</p></li><li class="listitem"><p>The Flake function <code class="literal">homeManagerConfiguration</code> has been simplified.
|
||
Specifically, the arguments</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: circle;"><li class="listitem"><p><code class="literal">configuration</code>,</p></li><li class="listitem"><p><code class="literal">username</code>,</p></li><li class="listitem"><p><code class="literal">homeDirectory</code>,</p></li><li class="listitem"><p><code class="literal">stateVersion</code>,</p></li><li class="listitem"><p><code class="literal">extraModules</code>, and</p></li><li class="listitem"><p><code class="literal">system</code></p></li></ul></div><p>have been removed. Instead use the new <code class="literal">modules</code> argument, which
|
||
accepts a list of NixOS modules.</p><p>Further, the <code class="literal">pkgs</code> argument is now mandatory and should be set to
|
||
<code class="literal">nixpkgs.legacyPackages.${system}</code> where <code class="literal">nixpkgs</code> is the Nixpkgs
|
||
input of your choice.</p><p>For example, if your Flake currently contains</p><pre><code class="programlisting nix">homeManagerConfiguration {
|
||
configuration = import ./home.nix;
|
||
system = "x86_64-linux";
|
||
username = "jdoe";
|
||
homeDirectory = "/home/jdoe";
|
||
stateVersion = "22.05";
|
||
extraModules = [ ./some-extra-module.nix ];
|
||
}
|
||
</code></pre><p>then you can change it to</p><pre><code class="programlisting nix">homeManagerConfiguration {
|
||
pkgs = nixpkgs.legacyPackages.${system};
|
||
modules = [
|
||
./home.nix
|
||
./some-extra-module.nix
|
||
{
|
||
home = {
|
||
username = "jdoe";
|
||
homeDirectory = "/home/jdoe";
|
||
stateVersion = "22.05";
|
||
};
|
||
}
|
||
];
|
||
}
|
||
</code></pre><p>Of course, you can move the assignment of <a class="link" href="options.xhtml#opt-home.username" >home.username</a>,
|
||
<a class="link" href="options.xhtml#opt-home.stateVersion" >home.stateVersion</a> to
|
||
some other file or simply place them in your <code class="literal">home.nix</code>.</p></li><li class="listitem"><p>The <code class="literal">services.picom</code> module has been refactored to use structural
|
||
settings.</p><p>As a result <code class="literal">services.picom.extraOptions</code> has been removed in favor
|
||
of <a class="link" href="options.xhtml#opt-services.picom.settings" >services.picom.settings</a>. Also, <code class="literal">services.picom.blur*</code>
|
||
were removed since upstream changed the blur settings to be more
|
||
flexible. You can migrate the blur settings to use
|
||
<a class="link" href="options.xhtml#opt-services.picom.settings" >services.picom.settings</a> instead.</p></li><li class="listitem"><p>The <code class="literal">services.compton</code> module has been removed. It was deprecated in
|
||
release 20.03. Use <code class="literal">services.picom</code> instead.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-22.11-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"22.11" or later.</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-services.mpd.musicDirectory" >services.mpd.musicDirectory</a> option now defaults to
|
||
the value of <a class="link" href="options.xhtml#opt-xdg.userDirs.music" >xdg.userDirs.music</a> if
|
||
<a class="link" href="options.xhtml#opt-xdg.userDirs.enable" >xdg.userDirs.enable</a> is enabled. Otherwise it is
|
||
undefined and must be specified in the user configuration.</p></li><li class="listitem"><p>The activation script now resets <code class="literal">PATH</code> before running. Before, the
|
||
user’s <code class="literal">PATH</code> environment variable would be used in the script and
|
||
this made it possible for commands in the activation script to run
|
||
arbitrary commands accessible to the user. We now restrict the
|
||
activation script to commands that are explicitly specified.</p><p>There is no official way to restore the old behavior. We attempt to
|
||
make the activation script as reproducible as possible and honoring
|
||
the user’s <code class="literal">PATH</code> reduces reproducibility.</p><p>If you need to run a command in an activation script block then
|
||
refer to the command by its absolute command path, such as
|
||
<code class="literal">${pkgs.hello}/bin/hello</code>.</p></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-22.05" class="title" >Release 22.05 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-22.05-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-22.05-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 22.05 release branch became the stable branch in May, 2022.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-22.05-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <code class="literal">programs.waybar.settings.modules</code> option was removed. Waybar
|
||
modules should now be declared directly under
|
||
<code class="literal">programs.waybar.settings</code>.</p></li><li class="listitem"><p>Home Manager now partially support translation of texts into
|
||
different languages. Note, the support is quite limited at the
|
||
moment. Specifically, it only applies to parts of the system written
|
||
in the Bash language, such as the <code class="literal">home-manager</code> command line tool
|
||
and the activation script.</p><p>If you would like to contribute to the translation effort then you
|
||
can do so through the <a class="link" href="https://hosted.weblate.org/projects/home-manager/" target="_top">Home Manager Weblate
|
||
project</a>.</p></li><li class="listitem"><p>A new module, <code class="literal">launchd.agents</code> was added. Use this to enable
|
||
services based on macOS LaunchAgents.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-22.05-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"22.05" or later.</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-programs.waybar.settings" >programs.waybar.settings</a> option now allows defining
|
||
modules directly under <a class="link" href="options.xhtml#opt-programs.waybar.settings" >programs.waybar.settings</a>.
|
||
Defining modules under <code class="literal">programs.waybar.settings.modules</code> will now
|
||
be an error. For example,</p><pre><code class="programlisting nix">programs.waybar.settings.modules."custom/my-module" = { };
|
||
</code></pre><p>becomes</p><pre><code class="programlisting nix">programs.waybar.settings."custom/my-module" = { };
|
||
</code></pre></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-21.11" class="title" >Release 21.11 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-21.11-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-21.11-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 21.11 release branch became the stable branch in November, 2021.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-21.11-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>All Home Manager modules are now loaded on all platforms. With this
|
||
change you will get a more descriptive error message if you attempt
|
||
to enable a module that is incompatible with the host platform.</p><p>Previously, modules that were platform specific would only be loaded
|
||
on that particular platform. For example, a module defining a
|
||
<a class="link" href="https://systemd.io/" target="_top">systemd</a> service would only be loaded when the
|
||
host platform was Linux. This reduced evaluation times, simplified
|
||
the generated documentation, and made it impossible to accidentally
|
||
use modules that do not support the host platform.</p><p>While the above benefits are quite nice, avoiding module loads also
|
||
brings a few problems. For example, the <a class="link" href="https://nix-community.github.io/home-manager/" target="_top">public
|
||
documentation</a> will
|
||
only show the options available for Linux hosts and the
|
||
documentation cannot make references to options within modules that
|
||
are unavailable on some hosts. Finally, users who wish to use the
|
||
same configuration file for different platforms cannot do so, even
|
||
if the platform incompatible options are unused.</p><p>Ultimately, the benefits of loading all modules won and the behavior
|
||
has now changed. For associated discussion see
|
||
<a class="link" href="https://github.com/nix-community/home-manager/issues/1906" target="_top">issue #1906</a>.</p></li><li class="listitem"><p>Rofi version 1.7.0 removed many options that were used by the module
|
||
and replaced them with custom themes, which are more flexible and
|
||
powerful.</p><p>You can replicate your old configuration by moving those options to
|
||
<a class="link" href="options.xhtml#opt-programs.rofi.theme" >programs.rofi.theme</a>. Keep in mind that the syntax is
|
||
different so you may need to do some changes.</p></li><li class="listitem"><p>Taskwarrior version 2.6.0 respects XDG Specification for the config
|
||
file now. Option <a class="link" href="options.xhtml#opt-programs.taskwarrior.config" >programs.taskwarrior.config</a> and friends
|
||
now generate the config file at <code class="literal">$XDG_CONFIG_HOME/task/taskrc</code>
|
||
instead of <code class="literal">~/.taskrc</code>.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-21.11-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"21.11" or later.</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-home.keyboard" >home.keyboard</a> option now defaults to <code class="literal">null</code>, meaning
|
||
that Home Manager won’t do any keyboard layout management. For
|
||
example, <code class="literal">setxkbmap</code> won’t be run in X sessions.</p></li><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-programs.pet.settings" >programs.pet.settings</a> option no longer place its
|
||
value inside a <code class="literal">General</code> attribute. For example,</p><pre><code class="programlisting nix">programs.pet.settings.editor = "nvim";
|
||
</code></pre><p>becomes</p><pre><code class="programlisting nix">programs.pet.settings.General.editor = "nvim";
|
||
</code></pre></li><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-programs.waybar.settings" >programs.waybar.settings</a> option now allows defining
|
||
modules directly under <a class="link" href="options.xhtml#opt-programs.waybar.settings" >programs.waybar.settings</a>. For
|
||
example,</p><pre><code class="programlisting nix">programs.waybar.settings.modules."custom/my-module" = { };
|
||
</code></pre><p>becomes</p><pre><code class="programlisting nix">programs.waybar.settings."custom/my-module" = { };
|
||
</code></pre></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-21.05" class="title" >Release 21.05 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-21.05-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-21.05-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 21.05 release branch became the stable branch in May, 2021.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-21.05-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>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’ <code class="literal">invocation</code> keys. For example,</p><pre><code class="programlisting nix">programs.broot.verbs = {
|
||
"p" = { execution = ":parent"; };
|
||
};
|
||
</code></pre><p>becomes</p><pre><code class="programlisting nix">programs.broot.verbs = [
|
||
{
|
||
invocation = "p";
|
||
execution = ":parent";
|
||
}
|
||
];
|
||
</code></pre></li><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-programs.mpv.package" >programs.mpv.package</a> option has been changed to
|
||
allow custom derivations. The following configuration is now
|
||
possible:</p><pre><code class="programlisting nix">programs.mpv.package = (pkgs.wrapMpv (pkgs.mpv-unwrapped.override {
|
||
vapoursynthSupport = true;
|
||
}) {
|
||
extraMakeWrapperArgs = [
|
||
"--prefix" "LD_LIBRARY_PATH" ":" "${pkgs.vapoursynth-mvtools}/lib/vapoursynth"
|
||
];
|
||
});
|
||
</code></pre><p>As a result of this change, <a class="link" href="options.xhtml#opt-programs.mpv.package" >programs.mpv.package</a> is no
|
||
longer the resulting derivation. Use the newly introduced
|
||
<code class="literal">programs.mpv.finalPackage</code> instead.</p></li><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-programs.rofi.extraConfig" >programs.rofi.extraConfig</a> option is now an attribute
|
||
set rather than a string. To migrate, move each line into the
|
||
attribute set, removing the <code class="literal">rofi.</code> prefix from the keys. For
|
||
example,</p><pre><code class="programlisting nix">programs.rofi.extraConfig = ''
|
||
rofi.show-icons: true
|
||
rofi.modi: drun,emoji,ssh
|
||
'';
|
||
</code></pre><p>becomes</p><pre><code class="programlisting nix">programs.rofi.extraConfig = {
|
||
show-icons = true;
|
||
modi = "drun,emoji,ssh";
|
||
};
|
||
</code></pre></li><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-programs.rofi.theme" >programs.rofi.theme</a> option now supports defining a
|
||
theme using an attribute set, the following configuration is now
|
||
possible:</p><pre><code class="programlisting nix">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";
|
||
};
|
||
};
|
||
</code></pre></li><li class="listitem"><p>The <code class="literal">services.redshift.extraOptions</code> and
|
||
<code class="literal">services.gammastep.extraOptions</code> options were removed in favor of
|
||
<a class="link" href="options.xhtml#opt-services.redshift.settings" >services.redshift.settings</a> and
|
||
<code class="literal">services.gammastep.settings</code>, that are now an attribute set rather
|
||
than a string. They also support new features not available before,
|
||
for example:</p><pre><code class="programlisting nix">services.redshift = {
|
||
dawnTime = "6:00-7:45";
|
||
duskTime = "18:35-20:15";
|
||
settings = {
|
||
redshift = {
|
||
gamma = 0.8;
|
||
adjustment-method = "randr";
|
||
};
|
||
|
||
randr = {
|
||
screen = 0;
|
||
};
|
||
};
|
||
};
|
||
</code></pre><p>It is recommended to check either
|
||
<a class="link" href="https://github.com/jonls/redshift/blob/master/redshift.conf.sample" target="_top">redshift.conf.sample</a>
|
||
or
|
||
<a class="link" href="https://gitlab.com/chinstrap/gammastep/-/blob/master/gammastep.conf.sample" target="_top">gammastep.conf.sample</a>
|
||
for the available additional options in each program.</p></li><li class="listitem"><p>Specifying <code class="literal">programs.neomutt.binds.map</code> or
|
||
<code class="literal">programs.neomutt.macros.map</code> as a single string is now deprecated
|
||
in favor of specfiying it as a list of strings.</p></li><li class="listitem"><p>The <code class="literal">programs.neovim.configure</code> is deprecated in favor of other
|
||
<code class="literal">programs.neovim</code> options; please use the other options at your
|
||
disposal:</p><pre><code class="programlisting nix">configure.packages.*.opt -> programs.neovim.plugins = [ { plugin = ...; optional = true; }]
|
||
configure.packages.*.start -> programs.neovim.plugins = [ { plugin = ...; }]
|
||
configure.customRC -> programs.neovim.extraConfig
|
||
</code></pre></li><li class="listitem"><p>Home Manager now respects the <code class="literal">NO_COLOR</code> environment variable as per
|
||
<a class="link" href="https://no-color.org/" target="_top">https://no-color.org/</a>.</p></li><li class="listitem"><p>Qt module now supports <a class="link" href="options.xhtml#opt-qt.style.name" >qt.style.name</a> to specify a theme
|
||
name and <a class="link" href="options.xhtml#opt-qt.style.package" >qt.style.package</a> to specify a theme package. If
|
||
you have set <a class="link" href="options.xhtml#opt-qt.platformTheme" >qt.platformTheme</a> to <code class="literal">gnome</code>, a
|
||
<a class="link" href="options.xhtml#opt-qt.style.package" >qt.style.package</a> compatible with both Qt and Gtk is now
|
||
required to be set. For instance:</p><pre><code class="programlisting nix">qt = {
|
||
platformTheme = "gnome";
|
||
style = {
|
||
name = "adwaita-dark";
|
||
package = pkgs.adwaita-qt;
|
||
};
|
||
};
|
||
</code></pre></li><li class="listitem"><p>The library type <code class="literal">fontType</code> now has a <code class="literal">size</code> attribute in addition
|
||
to <code class="literal">name</code>. For example:</p><pre><code class="programlisting nix">font = {
|
||
name = "DejaVu Sans";
|
||
size = 8;
|
||
};
|
||
</code></pre></li><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-programs.htop.settings" >programs.htop.settings</a> option is introduced to
|
||
replace individual options in <code class="literal">programs.htop</code>. To migrate, set the
|
||
htop options directly in <a class="link" href="options.xhtml#opt-programs.htop.settings" >programs.htop.settings</a>. For
|
||
example:</p><pre><code class="programlisting nix">programs.htop = {
|
||
enabled = true;
|
||
settings = {
|
||
color_scheme = 5;
|
||
delay = 15;
|
||
highlight_base_name = 1;
|
||
highlight_megabytes = 1;
|
||
highlight_threads = 1;
|
||
};
|
||
};
|
||
</code></pre></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-21.05-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"21.05" or later.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>The <code class="literal">newsboat</code> module now stores generated configuration in
|
||
<code class="literal">$XDG_CONFIG_HOME/newsboat</code>.</p></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-20.09" class="title" >Release 20.09 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-20.09-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-20.09-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 20.09 release branch became the stable branch in late September,
|
||
2020.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-20.09-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Nothing has happened.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-20.09-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"20.09" or later.</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The options <a class="link" href="options.xhtml#opt-home.homeDirectory" >home.homeDirectory</a> and
|
||
<a class="link" href="options.xhtml#opt-home.username" >home.username</a> 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 <code class="literal">HOME</code> and
|
||
<code class="literal">USER</code>, respectively.</p><p>Further, the options <a class="link" href="options.xhtml#opt-xdg.cacheHome" >xdg.cacheHome</a>,
|
||
<a class="link" href="options.xhtml#opt-xdg.dataHome" >xdg.dataHome</a> will no
|
||
longer be affected by the <code class="literal">XDG_CACHE_HOME</code>, <code class="literal">XDG_CONFIG_HOME</code>, and
|
||
<code class="literal">XDG_DATA_HOME</code> environment variables. They now unconditionally
|
||
default to</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: circle;"><li class="listitem"><p><code class="literal">"${config.home.homeDirectory}/.cache"</code>,</p></li><li class="listitem"><p><code class="literal">"${config.home.homeDirectory}/.config"</code>, and</p></li><li class="listitem"><p><code class="literal">"${config.home.homeDirectory}/.local/share"</code>.</p></li></ul></div><p>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.</p><p>The initial configuration generated by</p><pre><code class="programlisting console">$ nix-shell '<home-manager>' -A install
|
||
</code></pre><p>will automatically include these options, when necessary.</p></li><li class="listitem"><p>Git’s <code class="literal">smtpEncryption</code> option is now set to <code class="literal">tls</code> only if both
|
||
<a class="link" href="options.xhtml#opt-accounts.email.accounts._name_.smtp.tls.enable" >accounts.email.accounts.<span class="emphasis"><em>name</em></span>.smtp.tls.enable</a> and
|
||
<a class="link" href="options.xhtml#opt-accounts.email.accounts._name_.smtp.tls.useStartTls" >accounts.email.accounts.<span class="emphasis"><em>name</em></span>.smtp.tls.useStartTls</a> are
|
||
<code class="literal">true</code>. If only
|
||
<a class="link" href="options.xhtml#opt-accounts.email.accounts._name_.smtp.tls.enable" >accounts.email.accounts.<span class="emphasis"><em>name</em></span>.smtp.tls.enable</a> is
|
||
<code class="literal">true</code>, <code class="literal">ssl</code> is used instead.</p></li><li class="listitem"><p>The <code class="literal">nixpkgs</code> module no longer references <code class="literal"><nixpkgs></code>. Before it
|
||
would do so when building the <code class="literal">pkgs</code> module argument. Starting with
|
||
state version 20.09, the <code class="literal">pkgs</code> 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 <code class="literal"><nixpkgs></code> with state version ≥
|
||
20.09 then add</p><pre><code class="programlisting nix">_module.args.pkgsPath = <nixpkgs>;
|
||
</code></pre><p>to your Home Manager configuration.</p></li><li class="listitem"><p>The options <code class="literal">wayland.windowManager.sway.config.bars</code> and
|
||
<code class="literal">opt-xsession.windowManager.i3.config.bars</code> have been changed so
|
||
that most of the suboptions are now nullable and default to <code class="literal">null</code>.
|
||
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 <code class="literal">bars</code> options is not set, then the default remains the same. On
|
||
the other hand, something like:</p><pre><code class="programlisting nix">bars = [ {
|
||
command = "waybar";
|
||
} ];
|
||
</code></pre><p>will now create the config:</p><pre><code class="programlisting">bar {
|
||
swaybar_command waybar
|
||
}
|
||
</code></pre><p>instead of</p><pre><code class="programlisting">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
|
||
}
|
||
|
||
}
|
||
</code></pre></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-20.03" class="title" >Release 20.03 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-20.03-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-20.03-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 20.03 release branch became the stable branch in April, 2020.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-20.03-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Assigning a list to the <a class="link" href="options.xhtml#opt-home.file" >home.file</a>,
|
||
<a class="link" href="options.xhtml#opt-xdg.dataFile" >xdg.dataFile</a> options is
|
||
now deprecated and will produce a warning message if used.
|
||
Specifically, if your configuration currently contains something
|
||
like</p><pre><code class="programlisting nix">home.file = [
|
||
{
|
||
target = ".config/foo.txt";
|
||
text = "bar";
|
||
}
|
||
]
|
||
</code></pre><p>then it should be updated to instead use the equivalent attribute
|
||
set form</p><pre><code class="programlisting nix">home.file = {
|
||
".config/foo.txt".text = "bar";
|
||
}
|
||
</code></pre><p>Support for the list form will be removed in Home Manager version
|
||
20.09.</p></li><li class="listitem"><p>The <code class="literal">lib</code> function attribute given to modules is now enriched with
|
||
an attribute <code class="literal">hm</code> containing extra library functions specific for
|
||
Home Manager. More specifically, <code class="literal">lib.hm</code> is now the same as
|
||
<code class="literal">config.lib</code> and should be the preferred choice since it is more
|
||
robust.</p><p>Therefore, if your configuration makes use of, for example,
|
||
<code class="literal">config.lib.dag</code> to create activation script blocks, it is
|
||
recommended to change to <code class="literal">lib.hm.dag</code>.</p><p>Note, in the unlikely case that you are</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: circle;"><li class="listitem"><p>using Home Manager’s NixOS or nix-darwin module,</p></li><li class="listitem"><p>have made your own Home Manager module containing an top-level
|
||
option named <code class="literal">config</code> or <code class="literal">options</code>, and</p></li><li class="listitem"><p>assign to this option in your system configuration inside a
|
||
plain attribute set, i.e., without a function argument,</p></li></ul></div><p>then you must update your configuration to perform the option
|
||
assignment inside a <code class="literal">config</code> attribute. For example, instead of</p><pre><code class="programlisting nix">home-manager.users.jane = { config = "foo"; };
|
||
</code></pre><p>use</p><pre><code class="programlisting nix">home-manager.users.jane = { config.config = "foo"; };
|
||
</code></pre></li><li class="listitem"><p>The <code class="literal">services.compton</code> module has been deprecated and instead the
|
||
new module <code class="literal">services.picom</code> should be used. This is because Nixpkgs
|
||
no longer packages compton, and instead packages the (mostly)
|
||
compatible fork called picom.</p></li><li class="listitem"><p>The list form of the <a class="link" href="options.xhtml#opt-programs.ssh.matchBlocks" >programs.ssh.matchBlocks</a> option has
|
||
been deprecated and configurations requiring match blocks in a
|
||
defined order should switch to using DAG entries instead. For
|
||
example, a configuration</p><pre><code class="programlisting nix">programs.ssh.matchBlocks = [
|
||
{
|
||
host = "alpha.foo.com";
|
||
user = "jd";
|
||
}
|
||
{
|
||
host = "*.foo.com";
|
||
user = "john.doe";
|
||
}
|
||
];
|
||
</code></pre><p>can be expressed along the lines of</p><pre><code class="programlisting nix">programs.ssh.matchBlocks = {
|
||
"*.example.com" = {
|
||
user = "john.doe";
|
||
}
|
||
"alpha.example.com" = lib.hm.dag.entryBefore ["*.example.com"] {
|
||
user = "jd";
|
||
}
|
||
};
|
||
</code></pre><p>Support for the list form will be removed in Home Manager version
|
||
20.09.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-20.03-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"20.03" or later.</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-programs.zsh.history.path" >programs.zsh.history.path</a> option is no longer
|
||
prepended by <code class="literal">$HOME</code>, which allows specifying absolute paths, for
|
||
example, using the xdg module. Also, the default value is fixed to
|
||
<code class="literal">$HOME/.zsh_history</code> and <code class="literal">dotDir</code> path is not prepended to it
|
||
anymore.</p></li><li class="listitem"><p>The newsboat module will now default in displaying <code class="literal">queries</code> before
|
||
<code class="literal">urls</code> in its main window. This makes sense in the case when one has
|
||
a lot of URLs and few queries.</p></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-19.09" class="title" >Release 19.09 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-19.09-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-19.09-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 19.09 release branch became the stable branch in October, 2019.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-19.09-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <code class="literal">programs.firefox.enableGoogleTalk</code> and
|
||
<code class="literal">programs.firefox.enableIcedTea</code> options are now deprecated and will
|
||
only work if Firefox ESR 52.x is used.</p></li><li class="listitem"><p>The <code class="literal">home-manager</code> tool now provides an <code class="literal">uninstall</code> sub-command that
|
||
can be used to uninstall Home Manager, if used in the standalone
|
||
mode. That is, not as a NixOS module.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-19.09-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <code class="literal">home.stateVersion</code> option is set to
|
||
"19.09" or later.</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-programs.firefox.package" >programs.firefox.package</a> option now expects a
|
||
wrapped Firefox package and defaults to <code class="literal">pkgs.firefox</code>.</p></li><li class="listitem"><p>The options <a class="link" href="options.xhtml#opt-home.keyboard.layout" >home.keyboard.layout</a> and
|
||
<a class="link" href="options.xhtml#opt-home.keyboard.variant" >home.keyboard.variant</a> now default to <code class="literal">null</code>, which
|
||
indicates that the system value should be used.</p></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-19.03" class="title" >Release 19.03 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.xhtml#sec-release-19.03-highlights">Highlights</a> </span></dt><dt> <span class="section"> <a href="release-notes.xhtml#sec-release-19.03-state-version-changes">State Version Changes</a> </span></dt> </dl></div><p>The 19.03 release branch became the stable branch in April, 2019.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-19.03-highlights" class="title" style="clear: both">Highlights </h2> </div> </div></div><p>This release has the following notable changes:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>The <a class="link" href="options.xhtml#opt-home.file._name_.source" >home.file.<span class="emphasis"><em>name</em></span>.source</a> option now allows source
|
||
files to be hidden, that is, having a name starting with the <code class="literal">.</code>
|
||
character. It also allows the source file name to contain characters
|
||
not typically allowed for Nix store paths. For example, your
|
||
configuration can now contain things such as</p><pre><code class="programlisting nix">home.file."my file".source = ./. + "/file with spaces!";
|
||
</code></pre></li><li class="listitem"><p>The type used for the systemd unit options under
|
||
<a class="link" href="options.xhtml#opt-systemd.user.sockets" >systemd.user.sockets</a>,
|
||
etc. has been changed to offer more robust merging of
|
||
configurations. If you don’t override values within systemd units
|
||
then you are not affected by this change. Unfortunately, if you do
|
||
override unit values you may encounter errors.</p><p>In particular, if you get an error saying that a “unique option” is
|
||
“defined multiple times” then you need to use the
|
||
<a class="link" href="https://nixos.org/nixos/manual/#sec-option-definitions-setting-priorities" target="_top"><code class="literal">mkForce</code></a>
|
||
function. For example,</p><pre><code class="programlisting nix">systemd.user.services.foo.Service.ExecStart = "/foo/bar";
|
||
</code></pre><p>becomes</p><pre><code class="programlisting nix">systemd.user.services.foo.Service.ExecStart = lib.mkForce "/foo/bar";
|
||
</code></pre><p>We had to make this change because the old merging was causing too
|
||
many confusing situations for people.</p></li></ul></div>
|
||
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-19.03-state-version-changes" class="title" style="clear: both">State Version Changes </h2> </div> </div></div><p>The state version in this release includes the changes below. These
|
||
changes are only active if the <a class="link" href="options.xhtml#opt-home.stateVersion" >home.stateVersion</a> option is
|
||
set to “19.03” or later.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>There is now an option <a class="link" href="options.xhtml#opt-programs.beets.enable" >programs.beets.enable</a> that
|
||
defaults to <code class="literal">false</code>. Before the module would be active if the
|
||
<a class="link" href="options.xhtml#opt-programs.beets.settings" >programs.beets.settings</a> option was non-empty.</p></li></ul></div>
|
||
</div>
|
||
|
||
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-18.09" class="title" >Release 18.09 </h2> </div> </div></div><p>The 18.09 release branch became the stable branch in September, 2018.</p>
|
||
</div>
|
||
</div> <div class="navfooter">
|
||
<hr />
|
||
<table width="100%" summary="Navigation footer">
|
||
<tr>
|
||
<td width="40%" align="left"><a accesskey="p" href="nix-darwin-options.xhtml">Prev</a> </td>
|
||
<td width="20%" align="center"> </td>
|
||
<td width="40%" align="right"> </td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">Appendix C. nix-darwin Configuration Options </td>
|
||
<td width="20%" align="center"><a accesskey="h" href="index.xhtml">Home</a></td>
|
||
<td width="40%" align="right" valign="top"> </td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html> |