You are not logged in.

#1 2024-05-21 17:27:58

windore
Member
Registered: 2024-04-20
Posts: 2

Decman - a declarative system manager for Arch Linux

Decman is a declarative package & configuration manager for Arch Linux. It allows you to manage installed packages, your dotfiles, enabled systemd units, and run commands automatically. Your system is configured using Python so your configuration can be very adaptive.

Here is an example of a very simple configuration:

import decman
from decman import File, Directory

# Declare installed packages
decman.packages += ["python", "git", "networkmanager", "ufw", "neovim"]

# Declare installed aur packages
decman.aur_packages += ["protonvpn"]

# Declare configuration files
# Inline
decman.files["/etc/vconsole.conf"] = File(content="KEYMAP=us")
# From files within your repository
decman.files["/etc/pacman.conf"] = File(source_file="./dotfiles/pacman.conf")

# Declare a whole directory
decman.directories["/home/user/.config/nvim"] = Directory(source_directory="./dotfiles/nvim", owner="user")

# Ensure that a systemd unit is enabled.
decman.enabled_systemd_units += ["NetworkManager.service"]

I wanted to declaratively manage my Arch Linux installation, so I created decman. I'm sharing it here in case somebody else finds it useful.

More info and installation instructions on GitHub:

https://github.com/kiviktnm/decman

Offline

#2 2024-05-21 17:53:50

Awebb
Member
Registered: 2010-05-06
Posts: 6,596

Re: Decman - a declarative system manager for Arch Linux

If you declare python in a python script, what runs the python script?

Offline

#3 2024-05-21 18:01:17

windore
Member
Registered: 2024-04-20
Posts: 2

Re: Decman - a declarative system manager for Arch Linux

Python is a dependency of decman. It was maybe a poor choice to include it in the example, but python would've been installed before you can run decman.

Offline

Board footer

Powered by FluxBB