Skip to content

Jitsusama/core.nix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Core.Nix

My opinionated base configuration for Nix flake setups, providing a foundational layer of development tools and settings for macOS. This repository focuses on nix-darwin and home-manager configurations that universally apply across different contexts - personal projects, work environments, or anywhere you need a consistent development setup.

Think of it as your "baseline development environment" - the tools and settings you always want available, configured exactly how you like them, without any context-specific data like email addresses or API keys.

📁 Project Structure

core.nix/
├── nix-darwin/
│   └── default.nix      # macOS system preferences
├── home-manager/
│   ├── default.nix      # Imports all modules
│   ├── neovim/          # Editor with plugins
│   │   ├── default.nix
│   │   └── plugins/
│   ├── zsh/             # Shell with completions
│   │   ├── default.nix
│   │   └── init.zsh
│   └── ...              # Each tool in its own module
├── flake.nix            # Module exports
└── LICENSE              # MIT license

🚀 How To Use

Add this as a flake input to your Nix configuration:

{
  inputs = {
    core.url = "github:Jitsusama/core.nix";
    # ... other inputs
  };

  outputs = { self, core, ... }@inputs: {
    # Option 1: Import everything (recommended to start)
    darwinConfigurations.hostname = {
      imports = [ core.nix-darwin ];
    };
    homeConfigurations.username = {
      imports = [ core.home-manager ];
    };

    # Option 2: Import only what you need
    homeConfigurations.username = {
      imports = [
        # Pick specific modules from core
        core.home-manager.neovim
        core.home-manager.git
        core.home-manager.zsh
      ];
    };
  };
}

Then add your context-specific configuration on top:

homeConfigurations.username = {
  imports = [ core.home-manager ];
  
  # Add your git identity
  programs.git = {
    userEmail = "your.email@example.com";
    userName = "Your Name";
  };
  
  # Add work-specific or personal tools
  home.packages = with pkgs; [
    internal-tool
    company-cli
  ];
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •