Base system configuration for development machines.
This repository provides nix-darwin and home-manager
modules with base configurations for multiple tools and programs used for developing customer projects.
standard: The standard profile used on all development machines
config.nedeco provides the following attributes:
documentation.enable
nix.enable
sudo.enable
update-changelog.enable
zsh.enable
Profiles just automatically enable a given set of these options.
Enabling an option essentially just automatically configures a part of nix-darwin.
empty: An empty profile that is used to make program-specific options available without enabling themminimal: The minimal set of programs that should be enabled on all development machinesstandard: The minimal set of programs with some extra tools (mostly GUI programs) on top
config.nedeco provides the following attributes:
cli-tools.enable
direnv.enable
git.enable
zsh.enable
Profiles just automatically enable a given set of these options.
Enabling an option essentially just automatically configures a part of home-manager.
Install lix as described here. Make sure you enable Flakes during installation.
This assumes that you do not have an existing installation of nix (or specifically lix).
If you already have an existing nix or lix installation, you can skip this step.
The rest of these steps assume that you don't have an existing configuration. If you do, you're on your own.
mkdir -p ~/.config/nixpkgs/
cd ~/.config/nixpkgs/
nix flake init -t "github:nedeco/nix-base-system#standard"
find . -type f -name "*.nix" -exec sed -I '' "s/%SYSTEM_CURRENT_USER%/$(id -un)/g" {} +
find . -type f -name "*.nix" -exec sed -I '' "s/%SYSTEM_CURRENT_NAME%/$(id -F)/g" {} +
nix run nix-darwin/master#darwin-rebuild -- --flake '.#default' switch
The last command can potentially take some time to run, because it has to download (or compile) all of the configured programs and utilities.