My dotfiles for MacOS and Linux using Nix, home-manager, and nix-darwin.
Warning
Note that this configuration is actively evolving. While functional, some components are still being refined and optimized to ensure the best possible implementation.
This repository contains my system configurations managed through Nix. It supports both MacOS (via nix-darwin) and Linux (NixOS) systems, with a focus on maintaining a consistent development environment across different machines.
.
├── assets/ # Assets like wallpapers and images
├── hosts/ # Host-specific configurations (e.g. nixos, darwin)
├── lib/ # Helper functions and utilities
├── modules/ # Shared configuration modules
│ └── core/ # Core configuration shared across systems
├── overlays/ # Nix package overlays
└── users/ # User-specific configurations
- Flake-based: Uses Nix flakes for reproducible builds and dependencies
- Multi-user: Supports different user configurations on the same machine
- Cross-platform: Works on both MacOS (via nix-darwin) and Linux (NixOS)
- Modular: Configurations are split into reusable modules
-
MacOS (aarch64-darwin)
- Primary configuration for
goddard
machine - Supports multiple users (romaingrx, lcmd)
- Primary configuration for
-
Linux (x86_64-linux)
- NixOS configuration for
carl
machine
- NixOS configuration for
- Homebrew Multi-user Support: The current implementation doesn't handle Homebrew packages well in a multi-user setup. Package management and sharing between users needs improvement.
- Package Sharing: Limited capability for sharing packages between users in the Darwin setup, especially around
sketchybar
.
Note
In progress.