Skip to content

charmbracelet/nur

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

333 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nix User Repository

This repository contains Charm's Nix User Repository.

Build and populate cache

Packages

NUR Path

First, configure NUR according to the official instructions.

Then reference packages via the NUR namespace:

environment.systemPackages = [
  nur.repos.charmbracelet.gum
  nur.repos.charmbracelet.glow
  nur.repos.charmbracelet.mods
];

Overlay

The overlay allows you to use packages directly from pkgs without the NUR namespace.

Via NUR

After setting up NUR, add the overlay:

nixpkgs.overlays = [
  nur.repos.charmbracelet.overlays.default
];

environment.systemPackages = [
  pkgs.gum
  pkgs.glow
  pkgs.mods
];

Via Flake

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    charmbracelet = {
      url = "github:charmbracelet/nur";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { self, nixpkgs, charmbracelet, ... }: {
    nixosConfigurations.example = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        {
          nixpkgs.overlays = [ charmbracelet.overlays.default ];
          environment.systemPackages = [
            pkgs.gum
            pkgs.glow
            pkgs.mods
          ];
        }
      ];
    };
  };
}

Direct Flake Reference

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    charmbracelet.url = "github:charmbracelet/nur";
  };

  outputs = { self, nixpkgs, charmbracelet, ... }: {
    nixosConfigurations.example = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        {
          environment.systemPackages = [
            charmbracelet.packages.x86_64-linux.gum
            charmbracelet.packages.x86_64-linux.glow
            charmbracelet.packages.x86_64-linux.mods
          ];
        }
      ];
    };
  };
}

Modules

This repository provides NixOS, Home Manager, and Nix-Darwin modules. Currently crush is the only module available.

Via Flake

NixOS:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    charmbracelet = {
      url = "github:charmbracelet/nur";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { self, nixpkgs, charmbracelet, ... }: {
    nixosConfigurations.example = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        charmbracelet.nixosModules.crush
        { programs.crush.enable = true; }
      ];
    };
  };
}

Home Manager:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    charmbracelet = {
      url = "github:charmbracelet/nur";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { self, nixpkgs, charmbracelet, home-manager, ... }: {
    homeConfigurations.user = home-manager.lib.homeManagerConfiguration {
      pkgs = import nixpkgs { system = "x86_64-linux"; };
      modules = [
        charmbracelet.homeModules.crush
        { programs.crush.enable = true; }
      ];
    };
  };
}

Nix-Darwin:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    nix-darwin = {
      url = "github:nix-darwin/nix-darwin";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    charmbracelet = {
      url = "github:charmbracelet/nur";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { self, nixpkgs, charmbracelet, nix-darwin, ... }: {
    darwinConfigurations.example = nix-darwin.lib.evalConfig {
      modules = [
        charmbracelet.darwinModules.crush
        { programs.crush.enable = true; }
      ];
    };
  };
}

Configuration Options

programs.crush

  • enable (boolean): Enable the crush tool (default: false).
  • package (package): Override the package used for crush. Defaults to the package provided by this repository.
  • settings (attribute set): Additional configuration settings for crush.

Example: Override Package

programs.crush = {
  enable = true;
  package = pkgs.callPackage /path/to/custom/crush {};
};

Available Packages

  • charm (deprecated — will be removed July 2026)
  • confettysh
  • crush (unfree — FSL 1.1)
  • freeze
  • glow
  • gum
  • markscribe
  • melt
  • mods
  • pop
  • sequin
  • skate
  • soft-serve
  • vhs
  • wishlist

Part of Charm.

The Charm logo

Charm热爱开源 • Charm loves open source

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Contributors