<?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. Tools</title><link rel="stylesheet" type="text/css" href="style.css" /><link rel="stylesheet" type="text/css" href="overrides.css" /><link rel="stylesheet" type="text/css" href="mono-blue.css" /><script src="highlight.pack.js" type="text/javascript"></script><script src="highlight.load.js" type="text/javascript"></script><meta name="generator" content="DocBook XSL Stylesheets V1.79.2" /><link rel="home" href="index.html" title="Home Manager Manual" /><link rel="up" href="index.html" title="Home Manager Manual" /><link rel="prev" href="nix-darwin-options.html" title="Appendix C. nix-darwin Module Options" /><link rel="next" href="release-notes.html" title="Appendix E. Release Notes" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix D. Tools</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="nix-darwin-options.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="release-notes.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="ch-tools"></a>Appendix D. Tools</h1></div></div></div><div class="toc"><dl class="toc"><dt><span class="refentrytitle"><a href="tools.html#idm140737307306528"><span class="command"><strong>home-manager</strong></span> </a></span><span class="refpurpose"> — reconfigure a user environment</span></dt></dl></div><div class="refentry"><a id="idm140737307306528"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p><span class="command"><strong>home-manager</strong></span> — reconfigure a user environment</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">home-manager</code> { build | instantiate | edit | expire-generations <em class="replaceable"><code>timestamp</code></em> | generations | help | news | option <em class="replaceable"><code>option.name</code></em> | packages | remove-generations <em class="replaceable"><code>ID …</code></em> | switch | uninstall }<br /> [ -A <em class="replaceable"><code>attrPath</code></em> ] [ -I <em class="replaceable"><code>path</code></em> ] [ --flake <em class="replaceable"><code>flake-uri</code></em> ] [ -b <em class="replaceable"><code>ext</code></em> ] [ { -f | --file } <em class="replaceable"><code>path</code></em> ] [ { -h | --help } ] [ --version ] [ { -n | --dry-run } ] [ --option <em class="replaceable"><code>name</code></em> <em class="replaceable"><code>value</code></em> ] [ --cores <em class="replaceable"><code>number</code></em> ] [ { -j | --max-jobs } <em class="replaceable"><code>number</code></em> ] [ --debug ] [ --impure ] [ --keep-failed ] [ --keep-going ] [ --show-trace ] [ --(no-)substitute ] [ --no-out-link ] [ { -v | --verbose } ]</p></div></div><div class="refsection"><a id="idm140737307269184"></a><h2>Description</h2><p> This command updates the user environment so that it corresponds to the configuration specified in <code class="filename">~/.config/nixpkgs/home.nix</code> or <code class="filename">~/.config/nixpkgs/flake.nix</code>. </p><p> All operations using this tool expects a sub-command that indicates the operation to perform. It must be one of </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"> <code class="option">build</code> </span></dt><dd><p> Build configuration into a <code class="filename">result</code> directory. </p></dd><dt><span class="term"> <code class="option">instantiate</code> </span></dt><dd><p> Instantiate the configuration and print the resulting derivation. </p></dd><dt><span class="term"> <code class="option">edit</code> </span></dt><dd><p> Open the home configuration using the editor indicated by <code class="envar">EDITOR</code>. </p></dd><dt><span class="term"> <code class="option">expire-generations <em class="replaceable"><code>timestamp</code></em></code> </span></dt><dd><p> Remove generations older than <em class="replaceable"><code>timestamp</code></em> where <em class="replaceable"><code>timestamp</code></em> is interpreted as in the <code class="option">-d</code> argument of the <span class="citerefentry"><span class="refentrytitle">date</span>(1)</span> tool. For example <code class="literal">-30 days</code> or <code class="literal">2018-01-01</code>. </p></dd><dt><span class="term"> <code class="option">generations</code> </span></dt><dd><p> List all home environment generations. </p></dd><dt><span class="term"> <code class="option">help</code> </span></dt><dd><p> Print tool help. </p></dd><dt><span class="term"> <code class="option">news</code> </span></dt><dd><p> Show news entries in a pager. </p></dd><dt><span class="term"> <code class="option">option <em class="replaceable"><code>option.name</code></em></code> </span></dt><dd><p> Inspect the given option name in the home configuration, like <span class="citerefentry"><span class="refentrytitle">nixos-option</span>(8)</span>. </p></dd><dt><span class="term"> <code class="option">packages</code> </span></dt><dd><p> List all packages installed in <code class="varname">home-manager-path</code>. </p></dd><dt><span class="term"> <code class="option">remove-generations <em class="replaceable"><code>ID …</code></em></code> </span></dt><dd><p> Remove indicated generations. Use the <code class="option">generations</code> sub-command to find suitable generation numbers. </p></dd><dt><span class="term"> <code class="option">switch</code> </span></dt><dd><p> Build and activate the configuration. </p></dd><dt><span class="term"> <code class="option">uninstall</code> </span></dt><dd><p> Remove Home Manager from the user environment. This will </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> remove all managed files from the home directory, </p></li><li class="listitem"><p> remove packages installed through Home Manager from the user profile, and </p></li><li class="listitem"><p> optionally remove all Home Manager generations and make them available for immediate garbage collection. </p></li></ul></div><p> </p></dd></dl></div><p> </p></div><div class="refsection"><a id="idm140737307231536"></a><h2>Options</h2><p> The tool accepts the options </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"> <code class="option">-A <em class="replaceable"><code>attrPath</code></em></code> </span></dt><dd><p> Optional attribute that selects a configuration expression in the configuration file. That is, if <code class="filename">home.nix</code> contains </p><pre class="programlisting nix"> { joe-at-work = {pkgs, ...}: { home.packages = [ pkgs.fortune ]; }; joe-at-home = {pkgs, ...}: { home.packages = [ pkgs.cowsay ]; }; } </pre><p> then the command <span class="command"><strong>home-manager switch -A joe-at-work</strong></span> will activate the profile containing the fortune program. </p></dd><dt><span class="term"> <code class="option">-I <em class="replaceable"><code>path</code></em></code> </span></dt><dd><p> Add a path to the Nix expression search path. For example, to build a Home Manager profile using a specific Nixpkgs run <span class="command"><strong>home-manager -I nixpkgs=/absolute/path/to/nixpkgs build</strong></span>. By default <code class="literal"><nixpkgs></code> is used. </p></dd><dt><span class="term"> <code class="option">--flake <em class="replaceable"><code>flake-uri[#name]</code></em></code> </span></dt><dd><p> Build Home Manager configuration from the flake, which must contain the output homeConfigurations.name. If no name is specified it will first try username@hostname and then username. </p></dd><dt><span class="term"> <code class="option">-b <em class="replaceable"><code>extension</code></em></code> </span></dt><dd><p> Enable automatic resolution of collisions between unmanaged and managed files. The name of the original file will be suffixed by the given extension. For example, </p><pre class="screen"> <code class="prompt">$</code> <strong class="userinput"><code>home-manager -b bck switch</code></strong> </pre><p> will cause a colliding file <code class="filename">~/.config/foo.conf</code> to be moved to <code class="filename">~/.config/foo.conf.bck</code>. </p></dd><dt><span class="term"> <code class="option">-f <em class="replaceable"><code>path</code></em></code> , </span><span class="term"> <code class="option">--file <em class="replaceable"><code>path</code></em></code> </span></dt><dd><p> Indicates the path to the Home Manager configuration file. If not given, <code class="filename">$XDG_CONFIG_HOME/nixpkgs/home.nix</code> is used. </p></dd><dt><span class="term"> <code class="option">-h</code> , </span><span class="term"> <code class="option">--help</code> </span></dt><dd><p> Prints usage information for the <span class="command"><strong>home-manager</strong></span> tool. </p></dd><dt><span class="term"> <code class="option">--version</code> </span></dt><dd><p> Prints the version number of the <span class="command"><strong>home-manager</strong></span> tool. </p></dd><dt><span class="term"> <code class="option">-n</code> , </span><span class="term"> <code class="option">--dry-run</code> </span></dt><dd><p> Perform a dry-run of the given operation, only prints what actions would be taken. </p></dd><dt><span class="term"> <code class="option">--option <em class="replaceable"><code>name</code></em> <em class="replaceable"><code>value</code></em></code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span>. </p></dd><dt><span class="term"> <code class="option">--cores <em class="replaceable"><code>number</code></em></code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span>. </p></dd><dt><span class="term"> <code class="option">-j <em class="replaceable"><code>number</code></em></code> , </span><span class="term"> <code class="option">--max-jobs <em class="replaceable"><code>number</code></em></code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span>. </p></dd><dt><span class="term"> <code class="option">--debug</code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span>. </p></dd><dt><span class="term"> <code class="option">--impure</code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span>. </p></dd><dt><span class="term"> <code class="option">--keep-failed</code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span>. </p></dd><dt><span class="term"> <code class="option">--keep-going</code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span>. </p></dd><dt><span class="term"> <code class="option">--show-trace</code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span>. </p></dd><dt><span class="term"> <code class="option">--(no-)substitute</code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span>. </p></dd><dt><span class="term"> <code class="option">--no-out-link</code> </span></dt><dd><p> Passed on to <span class="citerefentry"><span class="refentrytitle">nix-build</span>(1)</span> when running <span class="command"><strong>home-manager build</strong></span>. </p></dd><dt><span class="term"> <code class="option">-v</code> , </span><span class="term"> <code class="option">--verbose</code> </span></dt><dd><p> Activates verbose output. </p></dd></dl></div></div><div class="refsection"><a id="idm140737307165216"></a><h2>Files</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"> <code class="filename">$XDG_DATA_HOME/home-manager/news-read-ids</code> </span></dt><dd><p> Identifiers of news items that have been shown. Can be deleted to reset the read news indicator. </p></dd></dl></div></div><div class="refsection"><a id="idm140737307161920"></a><h2>Bugs</h2><p> Please report any bugs on the <a class="link" href="https://github.com/nix-community/home-manager/issues" target="_top">project issue tracker</a>. </p></div><div class="refsection"><a id="idm140737307159920"></a><h2>See also</h2><p> <span class="citerefentry"><span class="refentrytitle">home-configuration.nix</span>(5)</span> </p></div></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.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="release-notes.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix C. nix-darwin Module Options </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix E. Release Notes</td></tr></table></div></body></html>