dotshot

command module
v0.0.0-...-820aed3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 6, 2025 License: MIT Imports: 1 Imported by: 0

README ΒΆ

dotshot

Go Build Go Report Card Neovim Zsh Starship

Lightweight dotfile snapshot & sync tool for Arch-based systems (or anyone who needs Git-tracked config backups)


🧠 What is dotshot?

dotshot is a small, focused CLI app for syncing and snapshotting dotfiles, like:

  • Neovim configs
  • Zsh (~/.zshrc, ~/.config/zsh/)
  • WezTerm themes and settings
  • Any other custom config files you want version-controlled

It helps keep your system's critical user-level config files in sync with a tracked Git repo β€” ideal for power users managing dotfiles manually or through a central ~/arch or ~/dotfiles repo.


⚑ Features
  • πŸ—‚οΈ Track and sync dotfiles to a defined repo structure
  • πŸ” Dry-run mode for safe previews
  • 🧱 Optional Git commit automation
  • 🧭 Designed for integration into larger tools like ghostctl
  • πŸ›  Configurable via TOML/YAML (via Viper)

πŸ“¦ Installation
From Source
git clone https://github.com/ghostkellz/dotshot.git
cd dotshot
go build -o dotshot .
With PKGBUILD (Arch Linux)
makepkg -si
With install script
./install.sh

πŸš€ Usage
# One-time setup
./dotshot init

# Add paths to sync
./dotshot add nvim ~/.config/nvim
./dotshot add zsh ~/.config/zsh ~/.zshrc

# Sync current config state to repo
./dotshot sync

# Show what would sync
dotshot sync --dry-run

# Watch for changes and auto-sync
dotshot watch

# Restore dotfiles from repo to original locations
dotshot restore

# Show what would sync and git status
dotshot status

# Commit and push changes
dotshot commit

# Print systemd user service install instructions
dotshot systemd-helper

βš™οΈ Configuration
  • Default config location: ./config.yaml or ~/.config/dotshot/config.yaml
  • Example config: see config.yaml in the repo or /usr/share/dotshot/config.yaml.example
  • Exclude files: add an exclude: list to your config

πŸ›‘οΈ Systemd Integration

To run dotshot as a background user service:

cp dotshot.service ~/.config/systemd/user/dotshot.service
systemctl --user daemon-reload
systemctl --user enable --now dotshot.service
systemctl --user status dotshot.service

πŸ”§ Planned Features
  • Automatic tagging/versioning
  • Integration with ghostctl as a subcommand
  • System snapshot metadata (hostname, kernel, date)

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL