#+title: Install #+author: Emmet 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: #+BEGIN_SRC sh :noeval git clone https://gitlab.com/librephoenix/nixos-config.git ~/.dotfiles #+END_SRC To get the hardware configuration on a new system, either copy from =/etc/nixos/hardware-configuration.nix= or run: #+BEGIN_SRC sh :noeval cd ~/.dotfiles sudo nixos-generate-config --show-hardware-config > system/hardware-configuration.nix #+END_SRC 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][flake.nix]]: #+BEGIN_SRC nix :noeval ... let ... # ----- USER SETTINGS ----- # username = "YOURUSERNAME"; # username name = "YOURNAME"; # name/identifier ... #+END_SRC 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: #+BEGIN_SRC sh :noeval cd ~/.dotfiles sudo nixos-rebuild switch --flake .#system #+END_SRC Home manager can be installed with: #+BEGIN_SRC sh :noeval nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager nix-channel --update nix-shell '' -A install #+END_SRC 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: #+BEGIN_SRC sh :noeval nix-channel --add https://nixos.org/channels/nixpkgs-unstable nix-channel --update #+END_SRC 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: #+BEGIN_SRC sh :noeval cd ~/.dotfiles home-manager switch --flake .#user #+END_SRC 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][themes directory]] named [[./themes/background-test.sh][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][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.