Read config.toml, keys.toml and themes, and open them with :config (stage 8b)
The config folder now sets everything: config.toml the settings (now also `theme` and `editor`), keys.toml the keys, and themes/<name>.toml the theme, laid over the built-in one, so a theme only needs what it changes. Each file is applied again a second after it's saved; a mistake only drops its own line, and the status bar says what's wrong, naming the file. :config lists the three files with their folder; Enter hands the terminal to your editor (the editor setting, $VISUAL, $EDITOR, else notepad or vi), writing the file first if it's missing, with every option at its default behind a #, explained (keys.toml lists every command by name). :theme switches themes until cumulus quits, like :set. The built-in theme gets the named styles the user picked, each also put on by its tag: question (yellow, dashed), important (red, thick) and done (gray, its title faded); and link styles blocks and supports, whose label shows on a link without its own. Themes can also set [modes], [node], [root], [branch] and [link]. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
f6dc4564aa
commit
abe3dc1d84
26 files changed
+1683
-129
No files matched your search
+3
-3
@@ -15,9 +15,8 @@ use std::io;
|
||||
use cumulus::app::action::Message;
|
||||
use cumulus::app::startup::Opening;
|
||||
use cumulus::app::{App, load, run};
|
||||
use cumulus::config::Config;
|
||||
use cumulus::config::paths::Paths;
|
||||
use cumulus::config::settings::Settings;
|
||||
use cumulus::input::keymap::{DEFAULT_LEADER, Keymap};
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
let folder = std::env::temp_dir().join(format!("cumulus-playground-{}", std::process::id()));
|
||||
@@ -31,7 +30,8 @@ fn main() -> io::Result<()> {
|
||||
message: Some(Message::info("the playground: copies of the samples, in a temporary folder")),
|
||||
};
|
||||
let paths = Paths::inside(&folder.join("cumulus"));
|
||||
run(App::new(paths, Settings::default(), Keymap::new(DEFAULT_LEADER), opening))?;
|
||||
let config = Config::load(&paths);
|
||||
run(App::new(paths, config, opening))?;
|
||||
println!("The playground's files are in {}", folder.display());
|
||||
Ok(())
|
||||
}
|
||||
Reference in new issue
Block a user