Package Management System
The dotfiles use a declarative package management approach:- packages.txt - Central package list
- Paru - AUR helper for installing packages
- Dotbot - Automation tool that syncs packages
Understanding packages.txt
Thepackages.txt file in the dotfiles repository root contains all required packages:
Package Categories
The packages are organized by purpose: Core System:hyprland- Window managerwaybar- Status barkitty- Terminal emulatorrofi- Application launcher
hypridle- Idle daemonhyprlock- Screen lockerpolkit-gnome- Authentication agentxdg-desktop-portal-hyprland- Portal for desktop integration
brightnessctl- Brightness controlpavucontrol- Audio controlwl-clipboard- Clipboard managerbtop- System monitoreza- Betterlsbat- Bettercatyazi- File manager TUI
hyprshot- Screenshot toolgrim- Screenshot backendslurp- Region selectorsatty- Screenshot annotationimv- Image viewer
ttf-jetbrains-mono-nerd- Nerd Font with iconsnoto-fonts-*- Comprehensive font coverageinter-font- UI font
zsh- Shellzsh-antidote- Plugin managerlazygit- Git TUI
How Package Installation Works
Theinstall.conf.yaml contains a shell command that automatically installs missing packages:
- Compares
packages.txtwith installed packages - Identifies missing packages
- Installs them using Paru
- Skips already-installed packages (
--needed)
Adding New Packages
Method 1: Edit packages.txt (Recommended)
This method keeps your dotfiles synchronized:-
Edit the package list:
-
Add your package (one per line):
-
Run the install script:
Method 2: Manual Installation
For quick testing without modifying the dotfiles:Finding Packages
Search Official Repositories
Search AUR
Check Package Contents
Removing Packages
Remove from System
Remove from packages.txt
- Edit
~/dotfiles/packages.txt - Delete the package line
- Commit the change (if using git)
Clean up orphaned packages
Clean up orphaned packages
Remove packages that were installed as dependencies but are no longer needed:
Updating Packages
Update All Packages
Update Specific Package
Update AUR Packages Only
Working with Paru
What is Paru?
Paru is an AUR helper that:- Manages both official and AUR packages
- Handles dependency resolution
- Reviews PKGBUILDs before building
- Supports all
pacmancommands
Common Paru Commands
Paru Configuration
Configure Paru in~/.config/paru/paru.conf:
Package Installation Tips
Install Without Confirmation
Useful for scripts:--needed- Skip if already installed--noconfirm- Don’t ask for confirmation
Install as Dependency
Mark package as dependency (will be removed with orphan cleanup):Review PKGBUILD Before Installing
For AUR packages, always review the build script:Synchronizing Across Systems
Clone to New System
The package system makes it easy to replicate your setup:Keep Multiple Systems in Sync
-
Add packages on System A:
-
Update System B:
Package Dependencies
View Package Dependencies
Install Optional Dependencies
Troubleshooting
Package Not Found
Error:error: target not found: package-name
Solutions:
- Check spelling:
paru -Ss partial-name - Update databases:
paru -Sy - Search AUR:
paru -Ss package-name
Conflicting Packages
Error:package-name and other-package are in conflict
Solution: Remove the conflicting package first:
Failed to Build AUR Package
Error: Build errors during AUR installation Solutions:- Update system:
paru -Syu - Install
base-devel:sudo pacman -S base-devel - Check AUR comments for known issues
- Report issue on AUR package page
Database Lock Error
Error:error: failed to init transaction (unable to lock database)
Solution:
Best Practices
Keep packages.txt updated
Keep packages.txt updated
Whenever you manually install a package you want to keep, add it to
packages.txt to ensure it’s tracked.Group related packages
Group related packages
Use --needed flag
Use --needed flag
Always use
paru -S --needed to avoid reinstalling packages unnecessarily.Regular maintenance
Regular maintenance
Run these commands periodically:
Backup before major updates
Backup before major updates
Before system upgrades, create a backup:
See Also
- Installation Guide - Initial setup
- Customization Guide - Customize application settings
- Arch Wiki: Pacman - Package manager documentation
- Paru GitHub - AUR helper repository
