feat: basic setup with all packages

This commit is contained in:
2026-06-13 14:14:29 +02:00
commit 811ed1e9c4
15 changed files with 379 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
# NOTE: Bar will be rewritten in QuickShell likely
import decman
from decman.plugins import pacman, aur
class LoginManager(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("base")
@pacman.packages
def pkgs(self) -> set[str]:
return {
# "quickshell",
"playerctl",
"playerctl",
}
@aur.packages
def aurpkgs(self) -> set[str]:
# TODO: Rewrite bar in quickshell
return {"aylurs-gtk-shell"}
+27
View File
@@ -0,0 +1,27 @@
import decman
from decman.plugins import pacman, aur
class BaseModule(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("yazi")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"yazi",
"ouch",
"grub",
"linux",
"networkmanager",
"git",
"base-devel",
}
@aur.packages
def aurpkgs(self) -> set[str]:
return {"xdg-desktop-portal-termfilechooser-hunkyburrito-git"}
def files(self) -> dict[str, decman.File]:
return super().files()
+23
View File
@@ -0,0 +1,23 @@
import decman
from decman.plugins import pacman, aur
class BaseModule(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("fonts")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"adobe-source-code-pro-fonts"
"ttf-fantasque-nerd",
"ttf-jetbrains-mono-nerd",
"ttf-iosevka-nerd",
"ttf-nerd-fonts-symbols-common",
"inter-font",
}
@aur.packages
def aurpkgs(self) -> set[str]:
return {"ttf-comfortaa"}
+33
View File
@@ -0,0 +1,33 @@
import decman
from decman.plugins import pacman, aur
class BaseModule(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("base")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"hyprland",
"hyprlock",
"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()
def on_change(self, store: decman.Store):
return super().on_change(store)
+30
View File
@@ -0,0 +1,30 @@
from typing import Literal
import decman
from decman.plugins import pacman, systemd
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")
@pacman.packages
def pkgs(self) -> set[str]:
if self._platform == "desktop":
return {
"greetd",
"greetd-tuigreet",
}
else:
return {"gdm"}
# TODO: Config files for laptop and desktop
@systemd.units
def units(self) -> set[str]:
if self._platform == "desktop":
return {"greetd.service"}
else:
return {"gdm.service"}