Skip to content

tabsp/dotfiles

Repository files navigation

dotfiles

中文

Personal dotfiles managed by dotman, a small Rust dotfiles deployer inspired by Dotbot's ordered configuration model.

Prerequisites

  • Rust toolchain with Cargo
  • GNU Make
  • fish shell

Usage

Build the deployer:

make build

Preview the deployment:

make deploy DRY_RUN=1

Deploy dotfiles:

make deploy

Skip shell commands such as plugin sync:

make deploy EXCEPT=shell

Run only link steps:

make deploy ONLY=link

Configuration

Deployment steps live in dotman.yaml.

Supported directives:

  • defaults
  • link
  • create
  • shell
  • clean (dry-run placeholder only)

Example:

- defaults:
    link:
      create: true
      relink: true
      relative: true

- link:
    ~/.config/fish: config/fish
    ~/.config/nvim: config/nvim

- create:
    - ~/.config/fish/local.d

- shell:
    - command: fish -lc 'fisher update'
      description: Sync fish plugins
      stdout: true
      stderr: true

Local Overrides

Machine-specific paths, tokens, and temporary tool setup should stay out of the shared repository.

Fish loads local-only files from:

~/.config/fish/local.d/*.fish

Layout

  • config/: tracked source dotfiles
  • dotman.yaml: deploy steps
  • src/: Rust deployer source
  • tests/: CLI integration tests

Development

make lint
make test
make ci

About

Personal dotfiles managed by dotman, a safety-first bootstrap manager for macOS and Linux.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors