Decman Is a Declarative Package and Configuration Manager for Arch Linux
Decman introduces a declarative approach to Arch Linux administration, aligning installed software, configuration files, and services with a predefined state rather than applying changes manually.
At its core, the project stores the desired setup as a Python-based declaration. You specify the packages that must be present, the configuration files that must exist and their expected contents, and which systemd units should be active. The configuration acts as the single source of truth for the entire system.
When run, Decman compares this declared state with the actual system and applies only the minimal changes needed to reconcile the two. This drift-aware process makes rebuilds and migrations more predictable and repeatable, which is especially valuable on multiple machines or after clean installs.
- Packages: supports both native Pacman packages and AUR packages through dedicated plugins, enabling a unified declarative workflow for software from different sources.
- Configuration: tracks files from a source directory and synchronizes them to their destinations with defined ownership and permissions, ensuring consistency across the system.
- Hooks: can run custom commands when tracked files change or after system updates, enabling automations like regenerating initramfs or chaining extra steps into an update cycle.
- System services: managed via a systemd plugin, so units can be enabled or configured as part of the declared state.
- Desktop apps: a Flatpak plugin makes it possible to manage Flatpak applications within the same declarative framework.
The project has reached its first stable 1.0 release, signaling readiness for daily use by users who value a clean, state-driven workflow. While not a one-size-fits-all solution, Decman offers a compelling alternative to piecemeal updates and ad hoc scripting.
In practice, you reapply the declarative configuration to bring a system back to the defined state. This approach reduces manual drift, helps with auditing changes, and simplifies reproducing a setup on multiple machines or environments that support similar tooling.
For new Arch installations, Decman can accelerate initial setup and ensure that software and configurations follow a consistent blueprint from day one. By treating installations as a managed, declarative target rather than a sequence of commands, the workflow becomes more predictable, auditable, and scalable over time.