Files
dotfiles/modules/core/system/base.py
T

54 lines
1.5 KiB
Python

import decman
from decman.plugins import pacman, aur
class BasePackages(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("base")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"base",
"base-devel",
"cifs",
"cups",
"efibootmgr",
"git",
"grub",
"linux",
"linux-firmware",
"linux-headers",
"mesa",
"mesa-utils",
"networkmanager",
"paccache",
"plymouth",
"reflector",
"sudo",
"systemd-resolvconf",
"trash-cli",
}
@aur.packages
def aurpkgs(self) -> set[str]:
return {"decman"}
# TODO:
# def file_variables(self) -> dict[str, str]:
# return super().file_variables()
def files(self) -> dict[str, decman.File]:
# TODO: File substitutions (for PC and laptop)
return {
"/etc/mkinitcpio.conf": decman.File(source_file="./system/mkinitcpio.conf"),
"/etc/pacman.conf": decman.File(source_file="./system/pacman.conf"),
"/etc/default/grub": decman.File(source_file="./system/grub"),
"/etc/environment": decman.File(source_file="./system/environment"),
}
def on_change(self, store):
decman.prg(["mkinitcpio", "-P"])
decman.prg(["grub-mkconfig", "-o", "/boot/grub/grub.cfg"])