N7DHDONTAB6UEU4PHQR7BNSUQFAA4JBIVSTKDQ7V7OF3CLOEWXOQC
QYSR4PDNVTQOISVLQMO5M7MYBEG37SV6Y7JGM6QPC3CA2BJAYPYQC
VXESMJDKIRYTNWV6PVDZUSECSP7ESMK5LZPEE72DFBUU5MH7GWLAC
BX2EXA45RHKBK4ZFZYUMHYDYKRVIUQJZDW6O643XUHKI5LVNDSJAC
A32NGEIBDOOKELILD6YPAGDCEDVVSYBSNJNS4RDXB7SHBQNIVNPQC
ENRHXIAOXEVZGED76KL4CZJ5SPZDX5IRS3WICJ22WRKSCCU6IC2QC
NC3PZB4VVLIWOHU2OONGNZT3LYZO7ZRZMBMFCBYU2464VG3VLX4QC
723QWZKMMKC44ZAQQYSSOPCB65TKSORXU2D4PIHWOUEKICJGUBVAC
G3HOZ76K2NR5UVTKVUI6ZDOXQWCU3CAMTK2OOHKKMRV73GQ7CFSAC
BYCLZBRJTN2ZIINK42SBGJHKCPVXECL632SYTV6EEQROEUNZJFHAC
6DZO6E3ALZ477IYSCGVKASDYM54CZEDON55NR2UTUGOCZR3BMTAAC
SBJS4CDALIHJCQFCV2EITKNK3RVMUGIQMJI3JBL7BAR4QOJNWQDQC
O64A6IJJGMWJYUDR6VUFGYFPWWPN222BEMMLFCMLKDEFO5OVRE4QC
WCNICOSNFZTSJ76LCYNRBHH6FX4B6DSWOV35FPIBCPCQ5PMPXZ5QC
QRSG7RJSX5R255Y2HHTLYBXMBR374QS3PV2UJDWK2ZPMG7V66SSAC
47GPXWYAN5HMMVVIWFEAY63MID4U2UHIBH4HNMDYWNQ2J6E2WX6AC
35SHW4PLA23OV3IFQXNGK35Z4Z5LG73MWHXUZUW7XZCTNQXNH5WQC
HQFIGEP4D7NUOHGEC2E4K5WDLPBAGC3BXD7KUHJW2QPTGDTA7EPAC
HZ4SV4CG73RCVZ3B4FX3VQA44JEW546NYJWOQF6VGEVRGDR5TAUAC
BN7PSYS5IMGH4CXNCQZGOWBETO7KY4TKICB4ESZEZVXVGLOPVV7QC
{ config, pkgs, ... }:
let
userName = "<username>";
homeDirectory = "/Users/<username>";
users.users."${userName}" = {
name = "${userName}";
home = "${homeDirectory}";
};
# this is responsible for hooking up all of our home-manager config
home-manager.users."${userName}" = { pkgs, ... }: {
imports = [ ../home.nix ];
};
}
in
{
let
userName = "<PUT_YOUR_USERNAME>";
in
{
userName = userName;
homeDirectory = "/Users/${userName}";
}
``` sh
sh <(curl -L https://nixos.org/nix/install) --darwin-use-unencrypted-nix-store-volume --daemon
```
* [install nix-darwin](https://github.com/LnL7/nix-darwin#install "nix-darwin-install-instructions") if on macos
- NOTE: double check all the install commands if something goes wrong, things may have changed upstream
* [install home-manager](https://github.com/nix-community/home-manager#installation) follow the instructions at the link
* if on macos also follow the instructions for [integrating home-manager as a nix-darwin module](https://nix-community.github.io/home-manager/index.html#sec-install-nix-darwin-module "home-manager-nix-darwin-module")
* clone this repo
``` sh
git clone https://github.com/averagechris/dotfiles.git
```
* create `localhome/default.nix` based on `localhome/example.nix`
- on recent versions of macos you'll need to add a special flag
``` sh
cp ~/dotfiles/nixpkgs/localhome/example.nix ~/dotfiles/nixpkgs/localhome/default.nix
```
* modify `localhome/default.nix` according to the needs of the system (like choosing what to install and some PII info)
```shell
sh <(curl -L https://nixos.org/nix/install) --darwin-use-unencrypted-nix-store-volume --daemon
```
* create `darwin/local_config.nix` based on `darwin/example_local_config.nix`
``` shell
cp ~/dotfiles/nixpkgs/darwin/example_local_config.nix ~/dotfiles/nixpkgs/darwin/local_config.nix
```
* modify `darwin/local_config.nix` by adding the right user name and home directory
- [install nix-darwin](https://github.com/LnL7/nix-darwin#install "nix-darwin-install-instructions") if on macos
```shell
nix-build https://github.com/LnL7/nix-darwin/archive/master.tar.gz -A installer
./result/bin/darwin-installer
```
- [install home-manager](https://github.com/nix-community/home-manager#installation) follow the instructions at the link
- if on macos also follow the instructions for [integrating home-manager as a nix-darwin module](https://nix-community.github.io/home-manager/index.html#sec-install-nix-darwin-module "home-manager-nix-darwin-module")
* build the configuration
* for non-macos
* if on non-macos
``` sh
home-manager switch
- create `localhome/default.nix` based on `localhome/example.nix`
```shell
cp ~/dotfiles/nixpkgs/localhome/example.nix ~/dotfiles/nixpkgs/localhome/default.nix
* if on macos (only the first call to darwin-rebuild requires the darwin-config argument)
``` sh
- modify `localhome/default.nix` according to the needs of the system (like choosing what to install and some PII info)
- create `darwin/pii.nix` based on `darwin/example_pii.nix`
```shell
cp ~/dotfiles/nixpkgs/darwin/pii.nix ~/dotfiles/nixpkgs/darwin/pii.nix
```
- modify `darwin/pii.nix` by adding the right user name and home directory
- symlink `~/dotfiles/nixpkgs` to `~/.config/`
```shell
ln -fs ~/dotfiles/nixpkgs ~/.config/
```
- build the configuration
- for non-macos
```shell
home-manager switch
```
- if on macos (only the first call to darwin-rebuild requires the darwin-config argument)
```shell
```
* finish installing emacs dependencies by starting emacs and running the following functions
* `all-the-icons-install-fonts` to install the fonts used for icons
* `emojify-download-emoji` to be able to display emoji characters
```
* move start_scripts to home-manager
* emacsMacport does not have a gui launcher add one upstream or make a wrapper, right now you have to use `open -a ~/.nix-profile/Applications/Emacs.app` and start the server from within emacs, you can't do `emacs --daemon` that doesn't work (should fix that as well at somepoint)
- move start_scripts to home-manager
- emacsMacport does not have a gui launcher add one upstream or make a wrapper, right now you have to use `open -a ~/.nix-profile/Applications/Emacs.app` and start the server from within emacs, you can't do `emacs --daemon` that doesn't work (should fix that as well at somepoint)
* `rm -rf /nix`
* if you get an error on macos remove nix from `/synthetic.conf` and try again
* on macos use disk utility app to delete the `nix` apfs volume
* restart system
* nix is now gone completely so you can follow the install instructions to start over
- `rm -rf /nix`
- if you get an error on macos remove nix from `/synthetic.conf` and try again
- on macos use disk utility app to delete the `nix` apfs volume
- restart system
- nix is now gone completely so you can follow the install instructions to start over
* tl;dr; these can sometimes replace the changes necessary in `/etc/zprofile` and `/etc/zshrc` meaning we need to intervene manually.
``` sh
- tl;dr; these can sometimes replace the changes necessary in `/etc/zprofile` and `/etc/zshrc` meaning we need to intervene manually.
```sh
/nixpkgs/darwin/pii.nix