nixos-config/install.org

3.4 KiB

Install

These are just some simple install notes for myself (in-case I have to reinstall unexpectedly).

Install Notes for Myself

To get this running on a NixOS system, start by cloning the repo:

git clone https://gitlab.com/librephoenix/nixos-config.git ~/.dotfiles

To get the hardware configuration on a new system, either copy from /etc/nixos/hardware-configuration.nix or run:

cd ~/.dotfiles
sudo nixos-generate-config --show-hardware-config > system/hardware-configuration.nix

Also, if you have a differently named user account than my default (emmet), you must update the following lines in the let binding near the top of the flake.nix:

...
let
  ...
  # ----- USER SETTINGS ----- #
  username = "YOURUSERNAME"; # username
  name = "YOURNAME"; # name/identifier
...

There are many more config options there that you may also want to change as well.

Once the variables are set, then switch into the system configuration by running:

cd ~/.dotfiles
sudo nixos-rebuild switch --flake .#system

Home manager can be installed with:

nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
nix-channel --update
nix-shell '<home-manager>' -A install

If home-manager starts to not cooperate, it may be because the unstable branch of nixpkgs is in the Nix channel list. This can be fixed via:

nix-channel --add https://nixos.org/channels/nixpkgs-unstable
nix-channel --update

Home-manager may also not work without re-logging back in after it has been installed.

Once home-manager is running, my home-manager configuration can be installed with:

cd ~/.dotfiles
home-manager switch --flake .#user

This loads in my convenience script phoenix (still a WIP), which replaces frequently used nix and nixos commands with more user friendly ones, namely:

  • phoenix sync to build and switch system and home configuration

    • phoenix sync system to build and switch only system configuration
    • phoenix sync user to build and switch only home configuration
  • phoenix update to update flake inputs
  • phoenix gc to garbage collect

    • If no argument is given, it cleans anything older than 30 days
    • If a time argument is supplied (i.e. 10d), it cleans stuff older than that (10 days in this example)
    • If the argument full is given, it deletes all previous generations

FAQ

home-manager switch --flake .#user Command Fails

If it fails with something to the effect of "could not download {some image file}" then that just means that one of my themes is having trouble downloading the background image. To conserve on space in the repo, my themes download the relevant wallpapers directly from their source, but that also means that if the link is broken, home-manager switch fails.

I have included a script in the themes directory named background-test.sh which performs a rough test on every theme background url, reporting which are broken.

If you're having this error, navigate to the flake.nix and select any theme with a good background wallpaper link. As long as it is able to download the new wallpaper, it should be able to build.