nix-config  by malob

Declarative Nix system configurations for macOS and Linux

Created 7 years ago
451 stars

Top 66.7% on SourcePulse

GitHubView on GitHub
Project Summary

This repository offers declarative Nix configurations for macOS and Linux, designed for users seeking reproducible management of terminal environments and system settings. It targets Nix enthusiasts aiming for streamlined setups, easy dependency updates via flakes, and experimentation with bleeding-edge Nix features, providing a unified and declarative approach to system configuration.

How It Works

The setup leverages Nix, Nix Flakes for dependency management, nix-darwin for macOS system configurations, and home-manager for user-level configurations across both macOS and Linux. It features custom modules like users-primaryUser and home-user-info to simplify common settings. The architecture supports Apple Silicon by allowing overlays for x86 packages and includes a GitHub workflow for automated builds and cache updates.

Quick Start & Requirements

  • Prerequisites: Nix package manager, nix-darwin (for macOS), home-manager.
  • Hardware: Apple Silicon Macs are supported with specific considerations for package overlays.
  • Setup: Primarily involves configuring Nix and integrating this repository's structure into a Nix-based system. Specific commands are not detailed in the README.

Highlighted Details

  • Flakes: Centralized dependency management and easy updating.
  • Cross-Platform Config: Nix-darwin (macOS) and home-manager (Linux) outputs.
  • Modular Design: Reusable modules for user info, colors, and program configurations (e.g., Neovim extras).
  • Apple Silicon Support: Facilitates running x86 packages on ARM Macs.
  • CI/CD: GitHub workflow for automated builds, testing, and Cachix cache updates.
  • Tooling: Includes configurations for Git (aliases, delta), Neovim (Lua), Starship prompt, and Claude Code.
  • Unified Theming: A WIP Solarized-based colorscheme adaptable across multiple applications (Ghostty, Fish, Neovim) via a Fish function.
  • Legacy Support: flake-compat enables use with traditional Nix commands.

Maintenance & Community

The repository encourages community feedback via GitHub Issues and Discussions for bugs, suggestions, or questions. The author aims to respond within a few days but makes no guarantees on bug fixes, especially for issues not personally experienced. No specific community channels like Discord/Slack are listed.

Licensing & Compatibility

The license type is not specified in the provided README. Compatibility for commercial use or linking with closed-source projects is not detailed.

Limitations & Caveats

The colors module is marked as a Work In Progress (WIP). The setup involves frequent changes due to experimentation with bleeding-edge Nix features. The author's responsiveness and commitment to fixing bugs are not guaranteed. Users need a foundational understanding of Nix, nix-darwin, and home-manager.

Health Check
Last Commit

2 days ago

Responsiveness

Inactive

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

Explore Similar Projects

Feedback? Help us improve.