Skip to content

My personal declarative macOS machine configuration

License

Notifications You must be signed in to change notification settings

periklis/nix-config

Repository files navigation

nix-config

This project defines my declarative multi-machine configuration for NixOS and macOS. It is based nix and nix-darwin. It is based upon sub-modules for tracking dependencies (e.g. machine specific dot-files, secret files).

Rationale

The main objective for this project is to have single machine configurations in addition to machine dependent configurations. The setup of new machine should be as easy as running a single script beyond creating access credentials to repositories.

The following requirements are met:

  • Single script bootstrap process
  • Shareable across machines
  • Shareable across architectures
  • Extensible for machine-specific and per-user specific configurations
  • Follows a declarative programming model for the system configuration
  • Explicit dependency management for nix-darwin, nixpkgs and machine configurations
  • Integration of Emacs package management

The following requirements are missing:

Bootstrap

To bootstrap this project a new macOS machine, you have to run the following script only:

$ curl https://raw.githubusercontent.com/periklis/nix-config/master/bin/bootstrap |  \
  bash -s -- $USERNAME $MACHINE_NAME $TARGET_NIXPGS_BRANCH $ARCH

Acknowledgments

This in projects is inspired on the work of other giants in the open source community, thus i would like to thank:

License

nix-config is licensed under the MIT license, available at http://opensource.org/licenses/MIT and also in the LICENSE file.

About

My personal declarative macOS machine configuration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages