A simple but efficient way to transfer your dotfiles from one setup to another.
fdf --repo https://github.com/youruser/your-dotfiles
Clone any dotfiles repo and apply it to your system with one command.
Clone and fetch your dotfiles from any Git repository. Supports SSH and HTTPS.
Use .fdf scripts with commands like PUT, EXECUTE, and ECHO to define exactly what happens.
Review changes before overwriting with a side-by-side TUI diff viewer powered by ncurses. See exactly what's being modified.
Written in pure C with only ncurses as a dependency. Fast, portable, and works on any Linux distribution.
Set a custom source folder, grab files from root, or use the default dotfiles/ directory — it's your choice.
Prompts before overwriting existing files. Use -f to force placement or -d to preview diffs first.
# 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
PUT <file> IN <dest> — Copy a file from your repoRUN <command> — Run a shell commandMKDIR <path> — Create a directoryECHO "<msg>" — Print a messageCONFIG <key> = <val> — Set configurationEND FETCH — End the scriptUse fdf -d to preview changes before overwriting files. The ncurses-based TUI shows a color-coded comparison:
Navigate with j/k or arrows, PgUp/PgDn for pages, q to close.