dotfiles  by rgomezcasas

macOS productivity dotfiles powered by Nix

Created 12 years ago
361 stars

Top 78.1% on SourcePulse

GitHubView on GitHub
Project Summary

This repository provides a declarative configuration for macOS, leveraging Nix flakes and home-manager to manage dotfiles, system settings, and applications. It targets macOS users on Apple Silicon seeking a highly reproducible, efficient, and customizable development environment, offering a streamlined setup and enhanced productivity through a curated stack of tools and over 80 utility scripts.

How It Works

The core of the system is built around Nix flakes, nix-darwin, and home-manager for declarative system and user configuration. This approach ensures reproducibility and allows for easy management of packages (Nix, Homebrew, Node.js, Mac App Store), macOS defaults, and symlinks. Zsh with the Zim framework is used for a fast shell experience (<10ms startup), complemented by Ghostty terminal and Karabiner-Elements for keyboard customization via Goku. A dotly framework organizes over 80 bash scripts for various tasks.

Quick Start & Requirements

  • Primary install/run command:
    1. Install Nix: curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
    2. Clone repo: git clone --recurse-submodules git@github.com:rgomezcasas/dotfiles.git ~/.dotfiles
    3. Build & apply: cd ~/.dotfiles/nix && sudo darwin-rebuild switch --flake .#pro --impure
  • Prerequisites: macOS on Apple Silicon (aarch64-darwin), Nix with flakes enabled, SSH key for private submodules.
  • Links: Documentation for adding packages, scripts, and keyboard shortcuts is available within the docs/ directory.

Highlighted Details

  • Shell startup consistently under 10ms due to Zim and zsh-defer.
  • Manages over 80 bash scripts via the dotly framework for interactive command execution.
  • Declarative management of Nix packages, Homebrew formulas/casks, and Mac App Store applications.
  • Keyboard shortcuts are managed via Goku, with configurations in os/mac/karabiner-goku/karabiner.edn.

Maintenance & Community

No specific details on contributors, sponsorships, or community channels (like Discord/Slack) are present in the README.

Licensing & Compatibility

The project is licensed under the MIT License (MIT). Its primary compatibility is with macOS on Apple Silicon.

Limitations & Caveats

This configuration is strictly limited to macOS on Apple Silicon (aarch64-darwin). It relies on a private submodule (dotfiles-private), suggesting that some sensitive configurations or credentials are managed separately and are not publicly available.

Health Check
Last Commit

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
0 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.