home-manager/README.md

129 lines
5.4 KiB
Markdown
Raw Permalink Normal View History

2017-01-14 13:04:57 +01:00
Home Manager using Nix
======================
This project provides a basic system for managing a user environment using the
[Nix][] package manager together with the Nix libraries found in [Nixpkgs][]. It
allows declarative configuration of user specific (non-global) packages and
dotfiles.
2021-01-08 15:26:58 +01:00
Usage
-----
Before attempting to use Home Manager please read [the warning
below](#words-of-warning).
2017-01-14 13:04:57 +01:00
For a systematic overview of Home Manager and its available options, please see:
- [Home Manager manual][manual]
- [Home Manager configuration options][configuration options]
- [3rd party Home Manager option
search](https://home-manager-options.extranix.com/)
If you would like to contribute to Home Manager, then please have a look at
["Contributing" in the manual][contributing].
2023-04-28 11:21:33 +02:00
Releases
--------
Home Manager is developed against `nixpkgs-unstable` branch, which often causes
it to contain tweaks for changes/packages not yet released in stable [NixOS][].
To avoid breaking users' configurations, Home Manager is released in branches
corresponding to NixOS releases (e.g. `release-23.11`). These branches get
fixes, but usually not new modules. If you need a module to be backported, then
feel free to open an issue.
2023-04-28 11:21:33 +02:00
2017-01-14 13:04:57 +01:00
Words of warning
----------------
Unfortunately, it is quite possible to get difficult to understand errors when
working with Home Manager. You should therefore be comfortable using the [Nix][]
language and the various tools in the Nix ecosystem.
2017-01-14 13:04:57 +01:00
If you are not very familiar with Nix but still want to use Home Manager then
you are strongly encouraged to start with a small and very simple configuration
and gradually make it more elaborate as you learn.
2020-06-25 00:10:08 +02:00
In some cases Home Manager cannot detect whether it will overwrite a previous
manual configuration. For example, the Gnome Terminal module will write to your
dconf store and cannot tell whether a configuration that it is about to be
overwritten was from a previous Home Manager generation or from manual
configuration.
2017-01-14 13:04:57 +01:00
Home Manager targets [NixOS][] unstable and NixOS version 23.11 (the current
stable version), it may or may not work on other Linux distributions and NixOS
versions.
2017-04-01 23:05:36 +02:00
Also, the `home-manager` tool does not explicitly support rollbacks at the
moment so if your home directory gets messed up you'll have to fix it yourself.
See the [rollbacks][] section for instructions on how to manually perform a
rollback.
2017-01-14 13:04:57 +01:00
Now when your expectations have been built up and you are eager to try all this
out you can go ahead and read the rest of this text.
2017-01-14 13:04:57 +01:00
Contact
-------
You can chat with us on IRC in the channel [#home-manager][] on [OFTC][]. There
is also a [Matrix room](https://matrix.to/#/#hm:rycee.net), which is bridged to
the IRC channel.
2017-01-14 13:04:57 +01:00
Installation
------------
Home Manager can be used in three primary ways:
1. Using the standalone `home-manager` tool. For platforms other than NixOS and
Darwin, this is the only available choice. It is also recommended for people
on [NixOS][] or Darwin that want to manage their home directory independently
of the system as a whole. See ["Standalone installation" in the
manual][manual standalone install] for instructions on how to perform this
installation.
1. As a module within a NixOS system configuration. This allows the user
profiles to be built together with the system when running `nixos-rebuild`.
See ["NixOS module" in the manual][manual nixos install] for a description of
this setup.
1. As a module within a [nix-darwin] system configuration. This allows the user
profiles to be built together with the system when running `darwin-rebuild`.
See ["nix-darwin module" in the manual][manual nix-darwin install] for a
description of this setup.
Home Manager provides both the channel-based setup and the flake-based one. See
[Nix Flakes][manual nix flakes] for a description of the flake-based setup.
Translations
------------
Home Manager has basic support for internationalization through
[gettext](https://www.gnu.org/software/gettext/). The translations are hosted by
[Weblate](https://weblate.org/). If you would like to contribute to the
translation effort then start by going to the [Home Manager Weblate
project](https://hosted.weblate.org/engage/home-manager/).
<a href="https://hosted.weblate.org/engage/home-manager/">
<img src="https://hosted.weblate.org/widgets/home-manager/-/multi-auto.svg" alt="Translation status" />
</a>
2021-11-14 00:59:24 +01:00
License
-------
This project is licensed under the terms of the [MIT license](LICENSE).
[#home-manager]: https://webchat.oftc.net/?channels=home-manager
2024-04-17 23:58:16 +02:00
[Nix Flakes]: https://wiki.nixos.org/wiki/Flakes
2017-01-14 13:04:57 +01:00
[NixOS]: https://nixos.org/
[Nix]: https://nixos.org/explore.html
2022-03-20 06:30:06 +01:00
[Nixpkgs]: https://github.com/NixOS/nixpkgs
2021-05-29 20:22:40 +02:00
[OFTC]: https://oftc.net/
[configuration options]: https://nix-community.github.io/home-manager/options.xhtml
[contributing]: https://nix-community.github.io/home-manager/#ch-contributing
2023-12-09 22:29:20 +01:00
[manual nix flakes]: https://nix-community.github.io/home-manager/#ch-nix-flakes
[manual nix-darwin install]: https://nix-community.github.io/home-manager/#sec-install-nix-darwin-module
[manual nixos install]: https://nix-community.github.io/home-manager/#sec-install-nixos-module
[manual standalone install]: https://nix-community.github.io/home-manager/#sec-install-standalone
[manual]: https://nix-community.github.io/home-manager/
[nix-darwin]: https://github.com/LnL7/nix-darwin
2024-03-13 13:45:11 +01:00
[rollbacks]: https://nix-community.github.io/home-manager/index.xhtml#sec-usage-rollbacks