Giter VIP home page Giter VIP logo

dotfiles.nix's Introduction

dotfiles.nix

Cross-platform Linux and macOS development environments for the TheAltF4Stream.

Test flake

Goals

Maintain declarative configurations for environments that are reproducible on each operating system.

Preview

Why move from Ansible?

I started out using Ansible to automate and maintain my development environment (see more here). This was a solid solution and is my recommended way of getting started with development environment automation if you "don't" have any interest in jumping the boat to Nix yet.

I switched because I began to deal with issues from imperative (step-by-step) automation. Things like making sure one step works so another can, having proper dependencies at the right time and other challenges that required more automation steps.

I wanted declarative configurations that defined my development environments.

Why NixOS?

I chose NixOS because of its unique approach to system configuration and package management. NixOS uses the Nix package manager, which provides reproducible, declarative, and reliable environments. This means that my development environment is consistent and predictable, eliminating the "works on my machine" problem.

NixOS's atomic upgrades and rollbacks ensure that system updates are safer and easier to manage. The ability to describe the entire system configuration in a single declarative file simplifies maintenance and enhances portability across different machines.

Why macOS + nix-darwin?

Using macOS with nix-darwin offers the best of both worlds:

  • the robustness and familiarity of macOS
  • the power of Nix package management

Nix-darwin allows me to manage macOS configuration in a declarative manner, similar to how NixOS operates. This way, I can leverage the Nix ecosystem to manage software packages and system configurations while still enjoying the benefits of macOS, such as hardware support, user-friendly interface, and wide range of software.

It's an ideal setup for a cross-platform development environment that requires both stability and flexibility.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.