A command-line tool that helps manage packages, apps and plugins for your dotfiles.
dotpak lets you declare the packages, apps, and plugins you want installed across machines in a single manifest, organize them into groups (like work, personal), and install them all with one command.
Dotpak pairs well with a dotfiles manager like chezmoi. Add the ~/.config/dotpak to your chezmoi, create a chezmoi script and using template variables and run dotpak install -g <group> to have a new computer ready to go. A more thorough tutorial will come.
Currently works with:
- pacman,
- AUR
- Flatpak
- Omarchy Quattro plugins
interactive mode built with bubbleteashorthand flags for install type. E.g., -p for pacman- use bubbletea and lipgloss for list command
- hooks to suggest adding package to dotpak after installation
- Arch Linux or an Arch-based distro for pacman/AUR support
- An AUR helper (yay, paru, or pikaur) for aur entries
- Flatpak for flatpak entries
- Omarchy v4.0.0+ for omarchy entries
yay -S dotpak-binDownload the appropriate archive for your platform from the releases page and place the dotpak binary on your PATH.
go install github.com/isaacvarg/dotpak@latestLaunch TUI to add to manifest
dotpakAdd an entry to the manifest
dotpak add <name> -i <installType> [-g <group>] [-c <installCommand>]-i,--installType(required): pacman, aur, flatpak, omarchy, mise-g,--group: group to add this entry to (defaults to all)-c,--installCommand: the actual command/package id to install, if it differs from (e.g. a Flathub app ID or an Omarchy plugin repo)
Shortcuts for the install type can also be used:
-pfor pacman-afor AUR-ffor flatpak-mfor mise-ofor omarchy quattro plugins
Examples:
dotpak add neovim -i pacman
dotpak add spotify -i flatpak -c com.spotify.Client
dotpak add my-omarchy-theme -i omarchy -c github.com/user/repo -g personalInstall everything in a group
dotpak install [-g <group>]Entries in the all group are always included plus the entries in the specified group. This will install each application via the install type
List manifest entries
dotpak list [-g <group>] [-i <installType>]With no flags this prints every entry in the manifest. Use -g and -i to filter results
Remove an entry
dotpak remove <name>Manage groups
dotpak group create <name>
dotpak group list
