diff --git a/index.html b/index.html index d2100699..0bed7df3 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,6 @@ -Home Manager Manual

Home Manager Manual


Preface
1. Installing Home Manager
1.1. Standalone installation
1.2. NixOS module
1.3. nix-darwin module
2. Using Home Manager
2.1. Configuration Example
2.2. Rollbacks
2.3. Keeping your ~ safe from harm
2.4. Graphical services
2.5. Updating
3. Nix Flakes
3.1. Prerequisties
3.2. Standalone setup
3.3. NixOS module
3.4. nix-darwin module
4. Writing Home Manager Modules
4.1. Option Types
5. Contributing
5.1. Getting started
5.2. Guidelines
5.2.1. Maintain backward compatibility
5.2.2. Keep forward compatibility in mind
5.2.3. Add only valuable options
5.2.4. Add relevant tests
5.2.5. Add relevant documentation
5.2.6. Add yourself as a module maintainer
5.2.7. Format your code
5.2.8. Format your commit messages
5.2.9. Format your news entries
5.2.10. Use conditional modules and news
5.2.11. Mind the license
5.3. Commits
5.4. Code Style
5.5. News
5.6. Tests
6. Frequently Asked Questions (FAQ)
6.1. Why is there a collision error when switching generation?
6.2. Why are the session variables not set?
6.3. How to set up a configuration for multiple users/machines?
6.4. Why do I get an error message about ca.desrt.dconf or dconf.service?
6.5. How do I install packages from Nixpkgs unstable?
6.6. How do I override the package used by a module?
A. Configuration Options
B. NixOS Module Options
C. nix-darwin Module Options
D. Tools
home-manager - — reconfigure a user environment
E. Release Notes
E.1. Release 23.05
E.1.1. Highlights
E.1.2. State Version Changes
E.2. Release 22.11
E.2.1. Highlights
E.2.2. State Version Changes
E.3. Release 22.05
E.3.1. Highlights
E.3.2. State Version Changes
E.4. Release 21.11
E.4.1. Highlights
E.4.2. State Version Changes
E.5. Release 21.05
E.5.1. Highlights
E.5.2. State Version Changes
E.6. Release 20.09
E.6.1. Highlights
E.6.2. State Version Changes
E.7. Release 20.03
E.7.1. Highlights
E.7.2. State Version Changes
E.8. Release 19.09
E.8.1. Highlights
E.8.2. State Version Changes
E.9. Release 19.03
E.9.1. Highlights
E.9.2. State Version Changes
E.10. Release 18.09

Preface

+Home Manager Manual

Home Manager Manual


Preface
1. Installing Home Manager
1.1. Standalone installation
1.2. NixOS module
1.3. nix-darwin module
2. Using Home Manager
2.1. Configuration Example
2.2. Rollbacks
2.3. Keeping your ~ safe from harm
2.4. Graphical services
2.5. Updating
3. Nix Flakes
3.1. Prerequisites
3.2. Standalone setup
3.3. NixOS module
3.4. nix-darwin module
4. Writing Home Manager Modules
4.1. Option Types
5. Contributing
5.1. Getting started
5.2. Guidelines
5.2.1. Maintain backward compatibility
5.2.2. Keep forward compatibility in mind
5.2.3. Add only valuable options
5.2.4. Add relevant tests
5.2.5. Add relevant documentation
5.2.6. Add yourself as a module maintainer
5.2.7. Format your code
5.2.8. Format your commit messages
5.2.9. Format your news entries
5.2.10. Use conditional modules and news
5.2.11. Mind the license
5.3. Commits
5.4. Code Style
5.5. News
5.6. Tests
6. Frequently Asked Questions (FAQ)
6.1. Why is there a collision error when switching generation?
6.2. Why are the session variables not set?
6.3. How to set up a configuration for multiple users/machines?
6.4. Why do I get an error message about ca.desrt.dconf or dconf.service?
6.5. How do I install packages from Nixpkgs unstable?
6.6. How do I override the package used by a module?
A. Configuration Options
B. NixOS Module Options
C. nix-darwin Module Options
D. Tools
home-manager + — reconfigure a user environment
E. Release Notes
E.1. Release 23.05
E.1.1. Highlights
E.1.2. State Version Changes
E.2. Release 22.11
E.2.1. Highlights
E.2.2. State Version Changes
E.3. Release 22.05
E.3.1. Highlights
E.3.2. State Version Changes
E.4. Release 21.11
E.4.1. Highlights
E.4.2. State Version Changes
E.5. Release 21.05
E.5.1. Highlights
E.5.2. State Version Changes
E.6. Release 20.09
E.6.1. Highlights
E.6.2. State Version Changes
E.7. Release 20.03
E.7.1. Highlights
E.7.2. State Version Changes
E.8. Release 19.09
E.8.1. Highlights
E.8.2. State Version Changes
E.9. Release 19.03
E.9.1. Highlights
E.9.2. State Version Changes
E.10. Release 18.09

Preface

This manual will eventually describe how to install, use, and extend Home Manager.

@@ -120,7 +120,7 @@ configuration then you must add either

. "$H
 can be sourced directly by POSIX.2-like shells such as Bash or
 Z shell. Fish users can use utilities such as
 foreign-env or babelfish.

Note

By default user packages will not be ignored in favor of -environment.systemPackages, but they will be intalled to +environment.systemPackages, but they will be installed to /etc/profiles/per-user/$USERNAME if

home-manager.useUserPackages = true;

is added to the nix-darwin configuration. This option may become the default value in the future.

Note

By default, Home Manager uses a private pkgs instance that is configured via the home-manager.users.<name>.nixpkgs options. To @@ -245,7 +245,7 @@ You can then switch to the updated Home Manager environment.

Chapter 3. Nix Flakes

Home Manager includes a flake.nix file for compatibility with Nix Flakes. -The support is still experimental and may change in backwards incompatible ways.

3.1. Prerequisties

  • +The support is still experimental and may change in backwards incompatible ways.

    3.1. Prerequisites

    • Install Nix 2.4 or later, or have it in nix-shell.
    • Enable experimental features nix-command and flakes. diff --git a/options.html b/options.html index c024fb1b..c103dd97 100644 --- a/options.html +++ b/options.html @@ -1389,8 +1389,8 @@ of launchd's LaunchAgents. }

Declared by:

<home-manager/modules/launchd/default.nix> -
launchd.agents.<name>.config.AbandonProcessGroup

When a job dies, launchd kills any remaining processes with the same process group ID as the job. Set-ting Setting -ting this key to true disables that behavior. +

launchd.agents.<name>.config.AbandonProcessGroup

When a job dies, launchd kills any remaining processes with the same process group ID as the job. Setting +this key to true disables that behavior.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Debug

This optional key specifies that launchd should adjust its log mask temporarily to LOG_DEBUG while @@ -1398,25 +1398,24 @@ dealing with this job.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Disabled

This optional key is used as a hint to launchctl(1) that it should not submit this job to launchd when -loading a job or jobs. The value of this key does NOT reflect the current state of the job on the run-ning running -ning system. If you wish to know whether a job is loaded in launchd, reading this key from a configura-tion configuration -tion file yourself is not a sufficient test. You should query launchd for the presence of the job using +loading a job or jobs. The value of this key does NOT reflect the current state of the job on the running +system. If you wish to know whether a job is loaded in launchd, reading this key from a configuration +file yourself is not a sufficient test. You should query launchd for the presence of the job using the launchctl(1) list subcommand or use the ServiceManagement framework's SMJobCopyDictionary() method. Note that as of Mac OS X v10.6, this key's value in a configuration file conveys a default value, which is changed with the [-w] option of the launchctl(1) load and unload subcommands. These subcommands no -longer modify the configuration file, so the value displayed in the configuration file is not necessar-ily necessarily -ily the value that launchctl(1) will apply. See launchctl(1) for more information. +longer modify the configuration file, so the value displayed in the configuration file is not necessarily +the value that launchctl(1) will apply. See launchctl(1) for more information. -Please also be mindful that you should only use this key if the provided on-demand and KeepAlive crite-ria criteria -ria are insufficient to describe the conditions under which your job needs to run. The cost to have a +Please also be mindful that you should only use this key if the provided on-demand and KeepAlive criteria +are insufficient to describe the conditions under which your job needs to run. The cost to have a job loaded in launchd is negligible, so there is no harm in loading a job which only runs once or very rarely.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix> -
launchd.agents.<name>.config.EnableGlobbing

This flag causes launchd to use the glob(3) mechanism to update the program arguments before invoca-tion. invocation. -tion. +

launchd.agents.<name>.config.EnableGlobbing

This flag causes launchd to use the glob(3) mechanism to update the program arguments before invocation.

Type: null or boolean

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.EnableTransactions

This flag instructs launchd that the job promises to use vproc_transaction_begin(3) and @@ -1487,12 +1486,12 @@ is true in 10.5 and false in 10.4. This key will be ignored if the UserName key <home-manager/modules/launchd/default.nix>

launchd.agents.<name>.config.KeepAlive

This optional key is used to control whether your job is to be kept continuously running or to let demand and conditions control the invocation. The default is false and therefore only demand will start -the job. The value may be set to true to unconditionally keep the job alive. Alternatively, a dictio-nary dictionary -nary of conditions may be specified to selectively control whether launchd keeps a job alive or not. If +the job. The value may be set to true to unconditionally keep the job alive. Alternatively, a dictionary +of conditions may be specified to selectively control whether launchd keeps a job alive or not. If multiple keys are provided, launchd ORs them, thus providing maximum flexibility to the job to refine the logic and stall if necessary. If launchd finds no reason to restart the job, it falls back on demand based invocation. Jobs that exit quickly and frequently when configured to be kept alive will -be throttled to converve system resources. +be throttled to conserve system resources.

Type: null or boolean or (submodule)

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Label

This required key uniquely identifies the job to launchd.

Type: string

Declared by:

@@ -1566,8 +1565,8 @@ resource limits to the job, throttling its CPU usage and I/O bandwidth. The foll XPC connections. See xpc_transaction_begin(3) for details. Interactive - Interactive jobs run with the same resource limitations as apps, that is to say, none. Interac-tive Interactive - tive jobs are critical to maintaining a responsive user experience, and this key should only be + Interactive jobs run with the same resource limitations as apps, that is to say, none. Interactive + jobs are critical to maintaining a responsive user experience, and this key should only be used if an app's ability to be responsive depends on it, and cannot be made Adaptive.

Type: null or one of "Background", "Standard", "Adaptive", "Interactive"

Default: null

Example: "Background"

Declared by:

<home-manager/modules/launchd/default.nix> @@ -1593,9 +1592,9 @@ The default is false. <home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets

This optional key is used to specify launch on demand sockets that can be used to let launchd know when to run the job. The job must check-in to get a copy of the file descriptors using APIs outlined in -launch(3). The keys of the top level Sockets dictionary can be anything. They are meant for the appli-cation application -cation developer to use to differentiate which descriptors correspond to which application level proto-cols protocols -cols (e.g. http vs. ftp vs. DNS...). At check-in time, the value of each Sockets dictionary key will +launch(3). The keys of the top level Sockets dictionary can be anything. They are meant for the application +developer to use to differentiate which descriptors correspond to which application level protocols +(e.g. http vs. ftp vs. DNS...). At check-in time, the value of each Sockets dictionary key will be an array of descriptors. Daemon/Agent writers should consider all descriptors of a given key to be to be effectively equivalent, even though each file descriptor likely represents a different networking protocol which conforms to the criteria specified in the job configuration file. @@ -1615,8 +1614,8 @@ Family family also be set, otherwise the results are undefined.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SecureSocketWithKey

This optional key is a variant of SockPathName. Instead of binding to a known path, a securely -generated socket is created and the path is assigned to the environment variable that is inher-ited inherited -ited by all jobs spawned by launchd. +generated socket is created and the path is assigned to the environment variable that is inherited +by all jobs spawned by launchd.

Type: null or string

Default: null

Declared by:

<home-manager/modules/launchd/default.nix>
launchd.agents.<name>.config.Sockets.<name>.SockFamily

This optional key can be used to specifically request that "IPv4" or "IPv6" socket(s) be created. @@ -1863,7 +1862,7 @@ match with a reference like nixpkgs/nixos-20.03. <home-manager/modules/misc/nix.nix>

nix.settings

Configuration for Nix, see https://nixos.org/manual/nix/stable/#sec-conf-file or -nix.conf(5) for avalaible options. +nix.conf(5) for available options. The value declared here will be translated directly to the key-value pairs Nix expects.

Configuration specified in nix.extraOptions which will be appended @@ -2272,7 +2271,7 @@ of options. DPI=144 ;; *) - echo "Unknown profle: $AUTORANDR_CURRENT_PROFILE" + echo "Unknown profile: $AUTORANDR_CURRENT_PROFILE" exit 1 esac @@ -2857,7 +2856,7 @@ documentation.

programs.chromium.extensions.*.crxPath

Path to the extension's crx file. Linux only.

Type: null or path

Default: null

Declared by:

<home-manager/modules/programs/chromium.nix> -
programs.chromium.extensions.*.id

The extension's ID from the Chome Web Store url or the unpacked crx. +

programs.chromium.extensions.*.id

The extension's ID from the Chrome Web Store url or the unpacked crx.

Type: string matching the pattern [a-zA-Z]{32}

Default: ""

Declared by:

<home-manager/modules/programs/chromium.nix>
programs.chromium.extensions.*.updateUrl

URL of the extension's update manifest XML file. Linux only. @@ -3614,12 +3613,12 @@ line-drawing characters. If this is causing output errors on your terminal, set this to false to use ASCII characters instead.

Type: boolean

Default: true

Example: false

Declared by:

<home-manager/modules/programs/git.nix> -
programs.git.difftastic.enable

Enable the difft syntax highlighter. +

programs.git.difftastic.enable

Enable the difftastic syntax highlighter. See https://github.com/Wilfred/difftastic.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.background

Determines whether difftastic should use the lighter or darker colors -for syntax highlithing. +for syntax highlighting.

Type: one of "light", "dark"

Default: "light"

Example: "dark"

Declared by:

<home-manager/modules/programs/git.nix>
programs.git.difftastic.color

Determines when difftastic should color its output. @@ -5414,8 +5413,8 @@ compositor.

Type: null or one of "background", "bottom", "top", "overlay"

Default: "top"

Declared by:

<home-manager/modules/services/mako.nix>
programs.mako.margin

Set margin of each edge specified in pixels. Specify single value to -apply margin on all sides. Two comma-seperated values will set -vertical and horizontal edges seperately. Four comma-seperated will +apply margin on all sides. Two comma-separated values will set +vertical and horizontal edges separately. Four comma-seperated will give each edge a seperate value. For example: 10,20,5 will set top margin to 10, left and right to 20 and bottom to five. @@ -5438,8 +5437,8 @@ the Wayland protocol xdg-output-unstable-v1 version 2.

Type: null or string

Default: null

Declared by:

<home-manager/modules/services/mako.nix>
programs.mako.padding

Set padding of each edge specified in pixels. Specify single value to -apply margin on all sides. Two comma-seperated values will set -vertical and horizontal edges seperately. Four comma-seperated will +apply margin on all sides. Two comma-separated values will set +vertical and horizontal edges separately. Four comma-seperated will give each edge a seperate value. For example: 10,20,5 will set top margin to 10, left and right to 20 and bottom to five. @@ -9358,7 +9357,7 @@ generated from the immutable one, useful in scenarios where live reloading is de $XDG_CONFIG_HOME/fnott/fnott.ini.

See -fnott.ini(5) for a list of avaliable options and https://codeberg.org/dnkl/fnott/src/branch/master/fnott.ini +fnott.ini(5) for a list of available options and https://codeberg.org/dnkl/fnott/src/branch/master/fnott.ini for an example configuration.

Type: attribute set of attribute set of (INI atom (null, bool, int, float or string))

Default: { @@ -9783,7 +9782,7 @@ docked = { };

Declared by:

<home-manager/modules/services/kanshi.nix> -
services.kanshi.profiles.<name>.exec

Commands executed after the profile is succesfully applied. +

services.kanshi.profiles.<name>.exec

Commands executed after the profile is successfully applied. Note that if you provide multiple commands, they will be executed asynchronously with no guaranteed ordering.

Type: (list of string) or string convertible to it

Default: @@ -10437,7 +10436,7 @@ click-right=pavucontrol & }

Declared by:

<home-manager/modules/services/polybar.nix> -
services.poweralertd.enable

Whether to enable the Upower-powered power alerterd.

Type: boolean

Default: false

Example: true

Declared by:

+
services.poweralertd.enable

Whether to enable the Upower-powered power alertd.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/poweralertd.nix>
services.pueue.enable

Whether to enable Pueue, CLI process scheduler and manager.

Type: boolean

Default: false

Example: true

Declared by:

<home-manager/modules/services/pueue.nix> @@ -10700,7 +10699,7 @@ background "#cccccc" <home-manager/modules/services/swayidle.nix>
services.swayidle.package

Swayidle package to install.

Type: package

Default: pkgs.swayidle

Declared by:

<home-manager/modules/services/swayidle.nix> -
services.swayidle.events

Run command on occurence of a event.

Type: list of (submodule)

Default: +

services.swayidle.events

Run command on occurrence of a event.

Type: list of (submodule)

Default: [ ] @@ -11645,7 +11644,7 @@ ignored. <home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>

targets.darwin.defaults.NSGlobalDomain.AppleTemperatureUnit

Sets the temperature unit.

Type: null or one of "Celsius", "Fahrenheit"

Default: null

Example: "Celsius"

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix> -
targets.darwin.defaults.NSGlobalDomain.NSAutomaticCapitalizationEnabled

Whether to enable automatic captilization.

Type: null or boolean

Default: null

Example: true

Declared by:

+
targets.darwin.defaults.NSGlobalDomain.NSAutomaticCapitalizationEnabled

Whether to enable automatic capitalization.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix>
targets.darwin.defaults.NSGlobalDomain.NSAutomaticDashSubstitutionEnabled

Whether to enable smart dashes.

Type: null or boolean

Default: null

Example: true

Declared by:

<home-manager/modules/targets/darwin/user-defaults/opts-allhosts.nix> @@ -12259,7 +12258,7 @@ export _JAVA_AWT_WM_NONREPARENTING=1

See swaynag(5) -for a list of avaliable options and an example configuration. +for a list of available options and an example configuration. Note, configurations declared under <config> will override the default type values of swaynag.

Type: attribute set of attribute set of (Swaynag config atom (null, bool, int, float, str))

Default: diff --git a/tools.html b/tools.html index e6a98678..c60ab407 100644 --- a/tools.html +++ b/tools.html @@ -1,6 +1,6 @@ -Appendix D. Tools

Appendix D. Tools

home-manager - — reconfigure a user environment

Name

home-manager +Appendix D. Tools

Appendix D. Tools

home-manager + — reconfigure a user environment

Name

home-manager — reconfigure a user environment

Synopsis

home-manager { build | @@ -84,7 +84,7 @@ | --verbose } - ]

Description

+ ]

Description

This command updates the user environment so that it corresponds to the configuration specified in ~/.config/nixpkgs/home.nix or ~/.config/nixpkgs/flake.nix.

@@ -153,7 +153,7 @@ available for immediate garbage collection.

-

Options

+

Options

The tool accepts the options

-A attrPath @@ -265,15 +265,15 @@ --verbose

Activates verbose output. -

Files

+

Files

$XDG_DATA_HOME/home-manager/news-read-ids

Identifiers of news items that have been shown. Can be deleted to reset the read news indicator. -

Bugs

+

Bugs

Please report any bugs on the project issue tracker. -

See also

+

See also

home-configuration.nix(5)

\ No newline at end of file