/home

It's Andrey's literal home directory because he's an absolute maniac.

Primary LanguageShell

intro

Hey - this is my home directory.

WHAT? You've made your home directory a Git repository? Are you crazy?

Crazy is subjective, but yes.

setup

Are you on a new machine? Run the following from your home directory.

$ curl -sLo- https://raw.githubusercontent.com/andreykaipov/home/master/.meta/init.sh | sh -
$ ~/.meta/install.sh

Want to reinstall for whatever reason?

$ FORCE_REINSTALL=1 ~/.meta/install.sh

work

Secret work environment variables go in ~/.config/sh/env.work. When this file is present, Nix packages under the forWork list in ~/.config/nixpkgs/config.nix are also installed.

Set the Git email accordingly in ~/.config/git/work.

rationale

  • Symlinks suck, why bother with them?

  • Every tracked file must explicitly exist in our .gitignore, so we can't accidentally add a file we don't want.

    Since I've neatly organized all the actual configuration under .config, I take quite a liberal approach by including it all, and just exclude things we definitely wouldn't want to commit. Since most programs should recognize the XDG base dir, an added benefit now is easily finding any new configuration that might have changed or been added recently.

  • Setting GIT_CEILING_DIRECTORIES="$HOME" prevents Git from working inside any non-Git subdirectories within our home directory, so accidentally mucking around with this repo is practically impossible unless we're in $HOME only.


nix oops?

$ nix-collect-garbage -d
$ nix-store --verify --repair --check-contents
$ FORCE_REINSTALL=1 ~/.meta/install.sh`