ManimCommunity / ManimCommunity/manim
CLI: `manim cfg` upgrades!
- 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
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