My Nix Configs banner
malob malob

My Nix Configs

Git community intermediate

Description

![Build Nix envs](https://github.com/malob/nix-config/workflows/Build%20Nix%20envs/badge.svg) This repo contains my Nix configs for macOS and Linux and by extension, configuration for most tools/progr

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

My Nix Configs

![Build Nix envs](https://github.com/malob/nix-config/workflows/Build%20Nix%20envs/badge.svg)

This repo contains my Nix configs for macOS and Linux and by extension, configuration for most tools/programs I use, at least in the terminal.

I'm continuously tweaking/improving my setup, trying to find ways to make more of my configuration declarative, and I like experimenting with bleeding edge updates/features, so this repo sees a lot of changes. I do try to ensure that `master` always builds and doesn't have any bad bugs (at least in my workflow), and keep the code fairly well documented.

Feel free to file an [issue](https://github.com/malob/nix-config/issues) or start a [discussion](https://github.com/malob/nix-config/discussions) if you find a bug, or think something is broken, or think I'm doing something in a dumb/clumsy way and have a suggestion for a more elegant alternative, or try to crib something from my config but just can't get it working, or are looking at my config and think to yourself "does this guy know about X, cause I bet he'd be into it", or have some other type of feedback/comment. (Issues, are better for things that are actually issues, while discussions are better for ideas, questions, etc.)

I make no promises that I'll respond quickly, or fix the bug (especially if I'm not experiencing it), or whatever, but you definitely shouldn't feel like you're imposing in any way, and I probably will respond within a few days.

Below, I've highlighted stuff that I'm particularly happy with or think others might find helpful/useful.

Highlights

In no particular order:

  • Flakes!
    • All external dependencies managed through flakes for easy updating.
    • Outputs for `nix-darwin` macOS system configurations (using home-manager as a nix-darwin module) and a `home-manager` user configuration for Linux.
    • A function to simplify making nix-darwin system configurations (with home-manager integration), `lib.mkDarwinSystem`.
    • darwinModules output for nix-darwin modules with additional functionality and prepackaged configuration, including:
      • `users-primaryUser` that provides users.primaryUsers.{username,fullName,email,nixConfigDirectory} options, which allows specifying this information one time by setting these options and then referencing their values when setting other options.
    • homeManagerModules output for home-manager modules with additional functionality and prepackaged configuration, including:
      • home-user-info, that provides the same options as the my nix-darwin module users-primaryUsers above under home.user-info. See examples of it in use in `home/git.nix`.
      • `colors` module for declarative colorscheme definitions using OkLCH color math. Schemes define shared m