From 537b04902f2082b39bea5d986c443cef7896c1b5 Mon Sep 17 00:00:00 2001
From: rycee
{ config, pkgs, ... }:
};
}
Nixpkgs packages can be installed to the user profile using -???.
The option names of a program module typically start with +home.packages.
The option names of a program module typically start with
programs.<package name>
.
Similarly, for a service module, the names start with
services.<package name>
. Note in some cases a package has both
programs and service options – Emacs is such an example.
To activate this configuration you can run
home-manager switch
diff --git a/release-notes.xhtml b/release-notes.xhtml
index 39175c727..e3c3de6d1 100644
--- a/release-notes.xhtml
+++ b/release-notes.xhtml
@@ -33,8 +33,8 @@ changes are only active if the home.stateVersion
op
"24.05" or later.Nothing, yet.
- Table of Contents
The 23.11 release branch became stable in November, 2023.
This release has the following notable changes:
When using opt-programs.fish.enable, the setup code for
-opt-home.sessionVariables is now translated with
+
Table of Contents
The 23.11 release branch became stable in November, 2023.
This release has the following notable changes:
When using programs.fish.enable, the setup code for
+home.sessionVariables is now translated with
babelfish. This should result
in significantly faster shell startup times but could theoretically
break if you have very complex bash expressions in a session
@@ -71,11 +71,11 @@ the new command internally. See The state version in this release includes the changes below. These
changes are only active if the home.stateVersion
option is set to
-"23.05" or later.
The options
now default to true
which is consistent with the default values
+"23.05" or later.
The options
now default to true
which is consistent with the default values
for those options used by i3
and sway
.
-
Table of Contents
The 22.11 release branch became the stable branch in November, 2022.
This release has the following notable changes:
The opt-home.stateVersion option no longer has a default
+
Table of Contents
The 22.11 release branch became the stable branch in November, 2022.
This release has the following notable changes:
The home.stateVersion 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
home.stateVersion = "18.09";
@@ -105,20 +105,20 @@ input of your choice.For example, if your Flake currently contains
Of course, you can move the assignment of opt-home.username,
-opt-home.stateVersion to
+
Of course, you can move the assignment of home.username,
+home.stateVersion to
some other file or simply place them in your home.nix
.
The services.picom
module has been refactored to use structural
settings.
As a result services.picom.extraOptions
has been removed in favor
-of opt-services.picom.settings. Also, services.picom.blur*
+of services.picom.settings. Also, services.picom.blur*
were removed since upstream changed the blur settings to be more
flexible. You can migrate the blur settings to use
-opt-services.picom.settings instead.
The services.compton
module has been removed. It was deprecated in
+services.picom.settings instead.
The services.compton
module has been removed. It was deprecated in
release 20.03. Use services.picom
instead.
The state version in this release includes the changes below. These
changes are only active if the home.stateVersion
option is set to
-"22.11" or later.
The opt-services.mpd.musicDirectory option now defaults to
-the value of opt-xdg.userDirs.music if
-opt-xdg.userDirs.enable is enabled. Otherwise it is
+"22.11" or later.
The services.mpd.musicDirectory option now defaults to
+the value of xdg.userDirs.music if
+xdg.userDirs.enable is enabled. Otherwise it is
undefined and must be specified in the user configuration.
The activation script now resets PATH
before running. Before, the
user’s PATH
environment variable would be used in the script and
this made it possible for commands in the activation script to run
@@ -142,8 +142,8 @@ project.
A new module,
The state version in this release includes the changes below. These
changes are only active if the home.stateVersion
option is set to
-"22.05" or later.
The opt-programs.waybar.settings option now allows defining
-modules directly under opt-programs.waybar.settings.
+"22.05" or later.
The programs.waybar.settings option now allows defining
+modules directly under programs.waybar.settings.
Defining modules under programs.waybar.settings.modules
will now
be an error. For example,
programs.waybar.settings.modules."custom/my-module" = { };
becomes
programs.waybar.settings."custom/my-module" = { };
@@ -169,20 +169,20 @@ has now changed. For associated discussion see
issue #1906.
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.
You can replicate your old configuration by moving those options to
-opt-programs.rofi.theme. Keep in mind that the syntax is
+programs.rofi.theme. Keep in mind that the syntax is
different so you may need to do some changes.
Taskwarrior version 2.6.0 respects XDG Specification for the config
-file now. Option opt-programs.taskwarrior.config and friends
+file now. Option programs.taskwarrior.config and friends
now generate the config file at $XDG_CONFIG_HOME/task/taskrc
instead of ~/.taskrc
.
The state version in this release includes the changes below. These
changes are only active if the home.stateVersion
option is set to
-"21.11" or later.
The opt-home.keyboard option now defaults to null
, meaning
+"21.11" or later.
The home.keyboard option now defaults to null
, meaning
that Home Manager won’t do any keyboard layout management. For
-example, setxkbmap
won’t be run in X sessions.
The opt-programs.pet.settings option no longer place its
+example, setxkbmap
won’t be run in X sessions.
The programs.pet.settings option no longer place its
value inside a General
attribute. For example,
programs.pet.settings.editor = "nvim";
becomes
programs.pet.settings.General.editor = "nvim";
-
The opt-programs.waybar.settings option now allows defining
-modules directly under opt-programs.waybar.settings. For
+
The programs.waybar.settings option now allows defining
+modules directly under programs.waybar.settings. For
example,
programs.waybar.settings.modules."custom/my-module" = { };
becomes
programs.waybar.settings."custom/my-module" = { };
@@ -199,7 +199,7 @@ list items’ invocation
keys. For example,The opt-programs.mpv.package option has been changed to
+
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;
@@ -208,9 +208,9 @@ possible:programs.mpv.package = (pkgs
"--prefix" "LD_LIBRARY_PATH" ":" "${pkgs.vapoursynth-mvtools}/lib/vapoursynth"
];
});
-
As a result of this change, opt-programs.mpv.package is no
+
As a result of this change, programs.mpv.package is no
longer the resulting derivation. Use the newly introduced
-programs.mpv.finalPackage
instead.
The opt-programs.rofi.extraConfig option is now an attribute
+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 = ''
@@ -221,7 +221,7 @@ example,programs.rofi.extraConfig = &
show-icons = true;
modi = "drun,emoji,ssh";
};
-
The opt-programs.rofi.theme option now supports defining a
+
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
@@ -245,7 +245,7 @@ in {
};
The services.redshift.extraOptions
and
services.gammastep.extraOptions
options were removed in favor of
-opt-services.redshift.settings and
+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 = {
@@ -274,10 +274,10 @@ disposal:configure.packages.*.opt -&
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 opt-qt.style.name to specify a theme
-name and opt-qt.style.package to specify a theme package. If
-you have set opt-qt.platformTheme to gnome
, a
-opt-qt.style.package compatible with both Qt and Gtk is now
+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 = {
@@ -290,9 +290,9 @@ to name
. For example:The opt-programs.htop.settings option is introduced to
+
The programs.htop.settings option is introduced to
replace individual options in programs.htop
. To migrate, set the
-htop options directly in opt-programs.htop.settings. For
+htop options directly in programs.htop.settings. For
example:
programs.htop = {
enabled = true;
settings = {
@@ -314,21 +314,21 @@ changes are only active if the home.stateVersion
op
2020. 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 opt-home.homeDirectory and
-opt-home.username no longer have default values and must
+"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 opt-xdg.cacheHome,
-opt-xdg.dataHome will no
+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
-opt-accounts.email.accounts.name.smtp.tls.enable and
-opt-accounts.email.accounts.name.smtp.tls.useStartTls are
+accounts.email.accounts.name.smtp.tls.enable and
+accounts.email.accounts.name.smtp.tls.useStartTls are
true
. If only
-opt-accounts.email.accounts.name.smtp.tls.enable is
+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
@@ -374,8 +374,8 @@ the other hand, something like:
bars =
- Table of Contents
The 20.03 release branch became the stable branch in April, 2020.
This release has the following notable changes:
Assigning a list to the opt-home.file,
-opt-xdg.dataFile options is
+
Table of Contents
The 20.03 release branch became the stable branch in April, 2020.
This release has the following notable changes:
Assigning a list to the home.file,
+xdg.dataFile options is
now deprecated and will produce a warning message if used.
Specifically, if your configuration currently contains something
like
home.file = [
@@ -403,7 +403,7 @@ assignment inside a config
attribute. For example,
The services.compton
module has been deprecated and instead the
new module services.picom
should be used. This is because Nixpkgs
no longer packages compton, and instead packages the (mostly)
-compatible fork called picom.
The list form of the opt-programs.ssh.matchBlocks option has
+compatible fork called picom.
The list form of the programs.ssh.matchBlocks option has
been deprecated and configurations requiring match blocks in a
defined order should switch to using DAG entries instead. For
example, a configuration
programs.ssh.matchBlocks = [
@@ -428,7 +428,7 @@ example, a configurationprograms.ssh.
20.09.
The state version in this release includes the changes below. These
changes are only active if the home.stateVersion
option is set to
-"20.03" or later.
The opt-programs.zsh.history.path option is no longer
+"20.03" or later.
The programs.zsh.history.path option is no longer
prepended by $HOME
, which allows specifying absolute paths, for
example, using the xdg module. Also, the default value is fixed to
$HOME/.zsh_history
and dotDir
path is not prepended to it
@@ -444,19 +444,19 @@ can be used to uninstall Home Manager, if used in the standalone
mode. That is, not as a NixOS module.
The state version in this release includes the changes below. These
changes are only active if the home.stateVersion
option is set to
-"19.09" or later.
The opt-programs.firefox.package option now expects a
-wrapped Firefox package and defaults to pkgs.firefox
.
The options opt-home.keyboard.layout and
-opt-home.keyboard.variant now default to null
, which
+"19.09" or later.
The programs.firefox.package option now expects a
+wrapped Firefox package and defaults to pkgs.firefox
.
The options home.keyboard.layout and
+home.keyboard.variant now default to null
, which
indicates that the system value should be used.
- Table of Contents
The 19.03 release branch became the stable branch in April, 2019.
This release has the following notable changes:
The opt-home.file.name.source option now allows source
+
Table of Contents
The 19.03 release branch became the stable branch in April, 2019.
This release has the following notable changes:
The home.file.name.source option now allows source
files to be hidden, that is, having a name starting with the .
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
home.file."my file".source = ./. + "/file with spaces!";
The type used for the systemd unit options under
-opt-systemd.user.sockets,
+systemd.user.sockets,
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
@@ -468,10 +468,10 @@ function. For example,
systemd.user.se
We had to make this change because the old merging was causing too
many confusing situations for people.
The state version in this release includes the changes below. These
-changes are only active if the opt-home.stateVersion option is
-set to “19.03” or later.
There is now an option opt-programs.beets.enable that
+changes are only active if the home.stateVersion option is
+set to “19.03” or later.
There is now an option programs.beets.enable that
defaults to false
. Before the module would be active if the
-opt-programs.beets.settings option was non-empty.
+programs.beets.settings option was non-empty.