# Nix (WIP - don't follow) The *Nix package manager* is a package manager which allows for user independent packages and a whole lot more (although it's not necessarily minimal). To set it up install it's package and activate it's service: ## Setup ``` # apk add nix # rc-update add nix-daemon default # rc-service nix-daemon start ``` > (The `nix` package is only available in the `edge` and `apk-ample` repositories) And add this line to `/etc/nix/nix.conf` to globally enable some features which will be necessary later: ``` experimental-features = nix-command flakes ``` Don't forget to add your user to the nix group: ``` # adduser nix ``` ## Usage Nix can be used to manage your `$HOME` with `home-manager` and `flakes`. ([Here a link explaining it all](https://juliu.is/tidying-your-home-with-nix/)) Now that Nix is up and running utilize the `flake` that comes with the [config files](https://docs.bijl.us/alpine-desktop-setup/post-install/config-files/) to set up our home for us. But before initialising `nix` make sure that you set the correct `` in both `flake.nix` and `home.nix` which are located in `~/.config/home-manager`. Then after changing those simply run this command from that same directory: ``` $ nix run . switch ``` This should have installed `nixpkgs-unstable` and `home-manager`. Verify this with: ``` $ home-manager --version ``` And thanks to `home-manager` we can easily set up and manage an entire graphical enviroment with all the necessary packages in one go. You are now also able to install packages as a user without root from `nixpkgs`: ``` $ nix-env -iA nixpkgs. ``` You can also test a package before installing it with `nix-shell -p ` To update your system, in `~/.config/home-manager` run: ``` $ nix flake update ``` ### Nix-Bubblewrap ### NixGL