2023-11-19 08:20:58 +01:00
|
|
|
# Getting started {#sec-contrib-getting-started}
|
|
|
|
|
|
|
|
If you have not previously forked Home Manager then you need to do that
|
|
|
|
first. Have a look at GitHub's [Fork a
|
|
|
|
repo](https://help.github.com/articles/fork-a-repo/) for instructions on
|
|
|
|
how to do this.
|
|
|
|
|
|
|
|
Once you have a fork of Home Manager you should create a branch starting
|
|
|
|
at the most recent `master` branch. Give your branch a reasonably
|
|
|
|
descriptive name. Commit your changes to this branch and when you are
|
|
|
|
happy with the result and it fulfills [Guidelines](#sec-guidelines) then
|
|
|
|
push the branch to GitHub and [create a pull
|
|
|
|
request](https://help.github.com/articles/creating-a-pull-request/).
|
|
|
|
|
|
|
|
Assuming your clone is at `$HOME/devel/home-manager` then you can make
|
|
|
|
the `home-manager` command use it by either
|
|
|
|
|
|
|
|
1. overriding the default path by using the `-I` command line option:
|
|
|
|
|
2023-12-02 01:19:09 +01:00
|
|
|
``` shell
|
2023-11-19 08:20:58 +01:00
|
|
|
$ home-manager -I home-manager=$HOME/devel/home-manager
|
|
|
|
```
|
|
|
|
|
|
|
|
or, if using [flakes](#sec-flakes-standalone):
|
|
|
|
|
2023-12-02 01:19:09 +01:00
|
|
|
``` shell
|
2023-11-19 08:20:58 +01:00
|
|
|
$ home-manager --override-input home-manager ~/devel/home-manager
|
|
|
|
```
|
|
|
|
|
|
|
|
or
|
|
|
|
|
|
|
|
2. changing the default path by ensuring your configuration includes
|
|
|
|
|
|
|
|
``` nix
|
|
|
|
programs.home-manager.enable = true;
|
|
|
|
programs.home-manager.path = "$HOME/devel/home-manager";
|
|
|
|
```
|
|
|
|
|
|
|
|
and running `home-manager switch` to activate the change.
|
|
|
|
Afterwards, `home-manager build` and `home-manager switch` will use
|
|
|
|
your cloned repository.
|
|
|
|
|
|
|
|
The first option is good if you only temporarily want to use your clone.
|