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

Quick Start
fdf --repo https://github.com/youruser/your-dotfiles

Clone any dotfiles repo and apply it to your system with one command.

3 stars
1.0
0 forks
31 commits
Contributors
C 99.3%
Makefile 0.7%

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, EXECUTE, and ECHO 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 only ncurses as a dependency. 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

# Install hyprland and dependencies
RUN sudo pacman -S --noconfirm hyprland waybar wofi

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

# Place config files
PUT hyprland.conf IN ~/.config/hypr/hyprland.conf
PUT waybar/config IN ~/.config/waybar/config
PUT waybar/style.css IN ~/.config/waybar/style.css
PUT .bashrc IN ~/.bashrc

ECHO "Hyprland setup complete!"
ECHO "Reboot and select Hyprland from your display manager."

END FETCH

Available Commands

  • PUT <file> IN <dest> — Copy a file from your repo
  • RUN <command> — Run a shell command
  • MKDIR <path> — Create a directory
  • 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