Currently this setup is written by nix flake.
- macOS
- Ubuntu(which I use most, cannot guarantee for other distribution)
flake.nix: Describes the project and its dependencies (only for flake-enabled projects).home-manager/: Describes different hm config based on platform.lib/: Directory for custom Nix functions.machines/: Directory for custom machine config.overlays/: Directory for Nix package overlays.config/: Directory for my custom app config.
- nix -- recommend lix-installer
curl -sSf -L https://install.lix.systems/lix | sh -s -- install
Some deps need installing. Optional:
- 1password -- I use 1password to sync my ssh keys
- Standalone Home manager
- make --- install via sudo apt-get install make
The Makefile will automatically detect your current username and hostname.
Standard Deployment:
make deploy-macCustom Deployment: You can override the target user or host if needed:
# Deploy for a different user
make deploy-mac USER=alice
# Deploy for a specific host (requires machines/<Host>.nix)
make deploy-mac HOST=OfficeMacNote: You may need to logout and login for some settings to take full effect.
make deploy-linuxThis project is heavily inspired by following repo: