pub struct Config {Show 20 fields
pub path_template: String,
pub default_base: Option<String>,
pub copy: Vec<String>,
pub hooks_post_create: Option<String>,
pub hooks_pre_remove: Option<String>,
pub editor: Option<String>,
pub remove_delete_merged_branch: bool,
pub remove_untracked_blocks: bool,
pub pr_default_remote: String,
pub submodules_init: SubmoduleInit,
pub agent_model: AgentModel,
pub agent_effort: Effort,
pub list_show_untracked: bool,
pub list_columns: Vec<Column>,
pub ui_nerd_fonts: bool,
pub ui_mouse: bool,
pub ui_color: ColorChoice,
pub ui_theme: ThemePreset,
pub theme_overrides: ThemeOverrides,
pub keybinding_overrides: Vec<(KeyAction, KeyChord)>,
}Expand description
The fully-resolved configuration after merging all layers.
Fields§
§path_template: StringWorktree-store path template (spec §6).
default_base: Option<String>Base ref for new when a branch is created; None resolves the repo’s
default branch at runtime.
copy: Vec<String>Glob patterns to copy into new worktrees (spec §8).
hooks_post_create: Option<String>Shell command run after worktree creation.
hooks_pre_remove: Option<String>Shell command run before worktree removal.
editor: Option<String>Editor command; None falls back to $VISUAL/$EDITOR.
remove_delete_merged_branch: boolDelete a wt-created branch on remove if fully merged.
remove_untracked_blocks: boolWhether untracked files count as dirty for remove/prune guards.
pr_default_remote: StringRemote used for PR fetches.
submodules_init: SubmoduleInitWhen to auto-initialize git submodules on create/checkout (issue #50).
agent_model: AgentModelDefault model for the AI PR auto-fill (wt pr open --ai); overridable
per-invocation by --model or the TUI’s Ctrl-M key.
agent_effort: EffortDefault effort for the AI PR auto-fill; overridable by --effort or the
TUI’s Ctrl-E key.
list_show_untracked: boolShow ? in the dirty column for untracked files.
list_columns: Vec<Column>Ordered list of columns to display in wt list.
ui_nerd_fonts: boolEnable Nerd Font glyphs in the TUI.
ui_mouse: boolEnable mouse support in the TUI.
ui_color: ColorChoiceColor output setting (reconciled with --color/NO_COLOR).
ui_theme: ThemePresetBuilt-in theme preset (the base TUI palette).
theme_overrides: ThemeOverridesPer-color overrides layered on top of the preset ([ui.theme]).
keybinding_overrides: Vec<(KeyAction, KeyChord)>Accumulated ui.keybindings overrides (applied over the defaults).
Implementations§
Source§impl Config
impl Config
Sourcepub fn apply(&mut self, layer: ConfigLayer)
pub fn apply(&mut self, layer: ConfigLayer)
Applies a parsed layer on top of this config (spec §11 merge semantics):
scalars replace, arrays (copy, list.columns) replace wholesale,
ui.keybindings deep-merges per action, and the [ui.theme] colors
deep-merge per slot (the preset is a scalar). Overrides accumulate in
apply order, so a later layer wins.
Sourcepub fn palette(&self) -> Palette
pub fn palette(&self) -> Palette
Resolves the effective TUI Palette: the selected preset’s base palette
with any [ui.theme] per-color overrides applied on top.
Sourcepub fn keymap(&self) -> Keymap
pub fn keymap(&self) -> Keymap
Builds the effective TUI keymap: the defaults with the configured overrides applied in order.
Sourcepub fn color_enabled(
&self,
flag: Option<ColorChoice>,
env: &Env,
stdout_is_tty: bool,
) -> bool
pub fn color_enabled( &self, flag: Option<ColorChoice>, env: &Env, stdout_is_tty: bool, ) -> bool
Resolves whether to emit color, reconciling the --color flag, the
NO_COLOR env var, and ui.color (spec §11 precedence).
Trait Implementations§
impl Eq for Config
impl StructuralPartialEq for Config
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnsafeUnpin for Config
impl UnwindSafe for Config
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more