pub struct SymlinkSection {
pub force_home: Vec<String>,
pub app_uses_library: bool,
pub force_app: Vec<String>,
pub app_aliases: HashMap<String, String>,
pub protected_paths: Vec<String>,
pub targets: HashMap<String, String>,
pub plist_extensions: Vec<String>,
}Expand description
Symlink handler settings.
Fields§
§force_home: Vec<String>Files/directories that must deploy to $HOME instead of
$XDG_CONFIG_HOME. Matched against the first path segment
(without leading dot).
app_uses_library: boolWhether _app/ and app_aliases route through the macOS
~/Library/Application Support root. Defaults to true on
macOS, ignored on other platforms (where app_support_dir
always collapses to xdg_config_home).
Setting this to false on macOS opts the user into Linux-style
~/.config placement for every _app/ and app_aliases
entry. _lib/ is unaffected — it explicitly targets
~/Library/.
See docs/proposals/macos-paths.lex §11.2.
force_app: Vec<String>Curated list of GUI-app folder names whose first path segment
routes to <app_support_dir>/<seg>/<rest> without requiring a
_app/ prefix in the pack tree. Capped at 100 entries; see
docs/proposals/macos-paths.lex §3.4.
Matching is case-sensitive (Library folder names are case-sensitive on macOS) and on the first path segment only.
app_aliases: HashMap<String, String>Pack-name → GUI-app folder name rewrites. When the pack name
matches a key here, the resolver’s default rule reroutes to
<app_support_dir>/<value>/<rel_path>. See
docs/proposals/macos-paths.lex §3.3.
protected_paths: Vec<String>Paths that must not be symlinked for security reasons.
targets: HashMap<String, String>Custom per-file symlink target overrides.
Maps relative pack filename to absolute or relative target path.
Absolute paths are used as-is; relative paths are resolved from
$XDG_CONFIG_HOME.
plist_extensions: Vec<String>Filename suffixes (without leading dot) that should be detected
as plists for dodot git-install-filters adopt hints and the
.gitattributes line. Defaults to ["plist"]. Some apps store
plists with non-standard suffixes (.binplist, .savedState,
etc.); register additional extensions here to flow them through
the same clean/smudge pipeline.
Comparison is case-insensitive, matching the existing detection
behavior. Honors the standard root → pack inheritance.
See docs/proposals/plists.lex §8.1.
Trait Implementations§
Source§impl Clone for SymlinkSection
impl Clone for SymlinkSection
Source§fn clone(&self) -> SymlinkSection
fn clone(&self) -> SymlinkSection
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Config for SymlinkSection
impl Config for SymlinkSection
Source§type Layer = SymlinkSectionLayer
type Layer = SymlinkSectionLayer
Self (a potentially partial configuration). Read moreSource§fn from_layer(layer: Self::Layer) -> Result<Self, Error>
fn from_layer(layer: Self::Layer) -> Result<Self, Error>
Self from a layer and validates itself. Read moreSource§fn builder() -> Builder<Self>
fn builder() -> Builder<Self>
#[default = ...]) are merged
(with the lowest priority). Read more