A simple but efficient way to transfer your dotfiles from one setup to another.

Install
yay -Sy fetchdots

Install fetchdots on your system and start managing your dotfiles with simple .fdf scripts.

3 stars
1.0
0 forks
36 commits
Contributors
C 99.4%
Makefile 0.6%

Features

Deploy from Any Repo

Clone and fetch your dotfiles from any Git repository. Supports SSH and HTTPS.

Simple Script Syntax

Use .fdf scripts with commands like PUT, LINK, GETPKG, and DEPEND_ON to define exactly what happens.

Diff Viewer

Review changes before overwriting with a side-by-side TUI diff viewer powered by ncurses. See exactly what's being modified.

Lightweight

Written in pure C with minimal dependencies. Fast, portable, and works on any Linux distribution.

Configurable

Set a custom source folder, grab files from root, or use the default dotfiles/ directory — it's your choice.

Safe by Default

Prompts before overwriting existing files. Use -f to force placement or -d to preview diffs first.

Syntax

setup.fdf
# Hyprland dotfiles setup
CONFIG default_dir = dotfiles

# Check required packages
DEPEND_ON {
   hyprland>=0.40
   kitty==0.32
   waybar
}

# Ensure dependencies are installed
GETPKG "hyprland" WITH "pacman"
GETPKG "waybar" WITH "pacman"

# Create config directories
MKDIR ~/.config/hypr
MKDIR ~/.config/waybar

# Place config files
PUT hyprland.conf IN ~/.config/hypr/hyprland.conf
LINK waybar/config TO ~/.config/waybar/config
PUT .bashrc IN ~/.bashrc

ECHO "Hyprland setup complete!"

END FETCH

Available Commands

  • DEPEND_ON — Check required packages and versions
  • GETPKG <pkg> WITH <manager> — Install packages
  • PUT <file> IN <dest> — Copy a file from your repo
  • LINK <file> TO <dest> — Create symbolic links
  • MKDIR <path> — Create a directory
  • RUN <command> — Run a shell command
  • ECHO "<msg>" — Print a message
  • CONFIG <key> = <val> — Set configuration
  • END FETCH — End the script
View full syntax reference

Side-by-Side Diff Viewer

Use fdf -d to preview changes before overwriting files. The ncurses-based TUI shows a color-coded comparison:

  • Added lines (green)
  • Removed lines (red)
  • Changed lines (yellow)

Navigate with j/k or arrows, PgUp/PgDn for pages, q to close.

Website Tools

Syntax Validator

Validate your .fdf scripts online before deploying

Documentation

Full installation guide and syntax reference

Explore Dots

Discover community dotfile repositories

Releases

Download binaries and view changelogs