ManimCommunity / ManimCommunity/manim

CLI: `manim cfg` upgrades!

Open
#2,867 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
40.9k
Forks
3.1k
Avg merge
3d 12h
Merged PRs (30d)
25

Description

## Problem
Similar to #2695. `manim cfg write` and `manim cfg export` have very similar functionality but are under different commands. Both commands are also lacking documentation and it's not clear how they differ (if at all). Furthermore, writing config files is very clunky at the moment as all of these commands force the user to go through the configuration file writer which has >50 fields.

## Description of proposed feature
I propose a few changes to clean this up:
- `manim cfg new` that creates a new config file via the CLI wizard that currently exist and optionally produces a default config via a `--default` flag or similar (the opposite way is also possible and I'm not really sure which is more ergonomic).
- `manim cfg install [arg]` which takes a config file as an argument and puts it in `$HOME/.config/manim/manim.cfg` like `manim cfg write -l user`
- `manim cfg edit` that edits the config placed in `$HOME/.config/manim/manim.cfg` using `$EDITOR$` with an optional `-l` flag (similar to `manim cfg write`) that specifies whether to edit the `user` config or the `cwd` config (the second half of this idea is questionable, but I thought it was worth mentioning nontheless)
- `manim cfg export` which takes the config installed at `$HOME/.config/manim/manim.cfg` and copies it to the current working directory (maybe not a good name, but the idea still stands)

These are only first ideas so please feel free to rip them apart/suggest improvements :)

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing `manim cfg write` and `manim cfg export` command entry points and comparing their behavior. First resolve the proposed command names, flags, config locations, and editor behavior; the work is done when the agreed CLI workflow and differences are clearly defined and documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.