feat: todos, decman config almost complete

This commit is contained in:
2026-06-14 17:58:00 +02:00
parent e74b162b91
commit 04a5d8919c
32 changed files with 1632 additions and 72 deletions
+15 -10
View File
@@ -2,26 +2,31 @@ import decman
from decman.plugins import pacman, aur
class BaseModule(decman.Module):
class FileManager(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("yazi")
super().__init__("filemanager")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"yazi",
"ifuse",
"libimobiledevice",
"ouch",
"grub",
"linux",
"networkmanager",
"git",
"base-devel",
"yazi",
}
@aur.packages
def aurpkgs(self) -> set[str]:
return {"xdg-desktop-portal-termfilechooser-hunkyburrito-git"}
def files(self) -> dict[str, decman.File]:
return super().files()
def directories(self) -> dict[str, decman.Directory]:
return {
"~/.config/xdg-desktop-portal": decman.Directory(
"./config/xdg-desktop-portal"
),
"~/.config/xdg-desktop-portal-termfilechooser": decman.Directory(
"./config/xdg-desktop-portal-termfilechooser"
),
"~/.config/yazi": decman.Directory("./config/yazi"),
}
+2 -2
View File
@@ -2,7 +2,7 @@ import decman
from decman.plugins import pacman, aur
class BaseModule(decman.Module):
class Fonts(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("fonts")
@@ -10,7 +10,7 @@ class BaseModule(decman.Module):
@pacman.packages
def pkgs(self) -> set[str]:
return {
"adobe-source-code-pro-fonts"
"adobe-source-code-pro-fonts",
"ttf-fantasque-nerd",
"ttf-jetbrains-mono-nerd",
"ttf-iosevka-nerd",
+4 -6
View File
@@ -1,11 +1,11 @@
import decman
from decman.plugins import pacman, aur
from decman.plugins import pacman
class BaseModule(decman.Module):
class Hyprland(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("base")
super().__init__("hyprland")
@pacman.packages
def pkgs(self) -> set[str]:
@@ -15,19 +15,17 @@ class BaseModule(decman.Module):
"hypridle",
"hyprshutdown",
"grimblast",
"grim",
"xdg-desktop-portal-hyprland",
"hyprpolkitagent",
"hyprpaper",
"wl-clipboard",
"cliphist",
"hyrplauncher",
"hyprpwcenter",
"hyprtoolkit",
}
def directories(self) -> dict[str, decman.Directory]:
return super().directories()
return {"~/.config/hypr": decman.Directory("./config/hypr")}
def on_change(self, store: decman.Store):
return super().on_change(store)
+11 -4
View File
@@ -8,7 +8,7 @@ class LoginManager(decman.Module):
def __init__(self, platform: Literal["desktop", "laptop"]):
"""Base packages that should never be uninstalled"""
self._platform: Literal["desktop", "laptop"] = platform
super().__init__("base")
super().__init__("login")
@pacman.packages
def pkgs(self) -> set[str]:
@@ -20,12 +20,19 @@ class LoginManager(decman.Module):
else:
return {"gdm"}
# TODO: Config files for laptop and desktop
# TODO: Consider dms greetd for desktop
@systemd.units
def units(self) -> set[str]:
if self._platform == "desktop":
return {"greetd.service"}
else:
return {"gdm.service"}
def files(self) -> dict[str, decman.File]:
if self._platform == "desktop":
return {
"/etc/greetd/config.toml": decman.File("./system/greetd/config.toml"),
"/etc/pam.d/greetd": decman.File("./system/greetd/pam"),
}
else:
# TODO: GDM config files
return {}
+2 -5
View File
@@ -6,15 +6,12 @@ from decman.plugins import pacman
class DesktopShell(decman.Module):
def __init__(self):
"""DesktopShell"""
super().__init__("base")
super().__init__("desktopshell")
@pacman.packages
def pkgs(self) -> set[str]:
return {"dms-shell", "cava", "matugen"}
# TODO: Copy the config, once done
# TODO: Copy the config of dms, once done
def directories(self) -> dict[str, decman.Directory]:
return { "~/.config/matugen": decman.Directory("./config/matugen") }
def files(self) -> dict[str, decman.File]:
return { "~/.config/matugen": decman.File("") }