This commit is contained in:
Harald Hoyer 2024-01-11 10:26:46 +00:00
parent 66c05f9093
commit 45d6f4b0f3
205 changed files with 9040 additions and 342 deletions

View file

@ -0,0 +1,22 @@
{ options, config, lib, pkgs, ... }:
with lib;
with lib.plusultra;
let
cfg = config.plusultra.suites.art;
in
{
options.plusultra.suites.art = with types; {
enable = mkBoolOpt false "Whether or not to enable art configuration.";
};
config = mkIf cfg.enable {
plusultra = {
apps = {
gimp = enabled;
inkscape = enabled;
blender = enabled;
};
};
};
}

View file

@ -0,0 +1,15 @@
{ options, config, lib, pkgs, ... }:
with lib;
with lib.plusultra;
let
cfg = config.plusultra.suites.business;
in
{
options.plusultra.suites.business = with types; {
enable = mkBoolOpt false "Whether or not to enable business configuration.";
};
config =
mkIf cfg.enable { plusultra = { apps = { frappe-books = enabled; }; }; };
}

View file

@ -0,0 +1,63 @@
{ options
, config
, lib
, pkgs
, ...
}:
with lib;
with lib.plusultra; let
cfg = config.plusultra.suites.common-slim;
in
{
options.plusultra.suites.common-slim = with types; {
enable = mkBoolOpt false "Whether or not to enable common-slim configuration.";
};
config = mkIf cfg.enable {
environment.systemPackages = [
pkgs.plusultra.list-iommu
];
plusultra = {
nix = enabled;
# TODO: Enable this once Attic is configured again.
# cache.public = enabled;
cli-apps = {
flake = enabled;
thaw = enabled;
};
tools = {
git = enabled;
fup-repl = enabled;
comma = enabled;
bottom = enabled;
direnv = enabled;
};
hardware = {
storage = enabled;
networking = enabled;
};
services = {
openssh = enabled;
tailscale = enabled;
};
security = {
doas = enabled;
};
system = {
boot = enabled;
fonts = enabled;
locale = enabled;
time = enabled;
xkb = enabled;
};
};
};
}

View file

@ -0,0 +1,68 @@
{ options
, config
, lib
, pkgs
, ...
}:
with lib;
with lib.plusultra; let
cfg = config.plusultra.suites.common;
in
{
options.plusultra.suites.common = with types; {
enable = mkBoolOpt false "Whether or not to enable common configuration.";
};
config = mkIf cfg.enable {
environment.systemPackages = [
pkgs.plusultra.list-iommu
];
plusultra = {
nix = enabled;
# TODO: Enable this once Attic is configured again.
# cache.public = enabled;
cli-apps = {
flake = enabled;
thaw = enabled;
};
tools = {
git = enabled;
misc = enabled;
fup-repl = enabled;
comma = enabled;
nix-ld = enabled;
bottom = enabled;
};
hardware = {
audio = enabled;
storage = enabled;
networking = enabled;
};
services = {
printing = enabled;
openssh = enabled;
tailscale = enabled;
};
security = {
gpg = enabled;
doas = enabled;
keyring = enabled;
};
system = {
boot = enabled;
fonts = enabled;
locale = enabled;
time = enabled;
xkb = enabled;
};
};
};
}

View file

@ -0,0 +1,38 @@
{ options
, config
, lib
, pkgs
, ...
}:
with lib;
with lib.plusultra; let
cfg = config.plusultra.suites.desktop;
in
{
options.plusultra.suites.desktop = with types; {
enable =
mkBoolOpt false "Whether or not to enable common desktop configuration.";
};
config = mkIf cfg.enable {
plusultra = {
desktop = {
gnome = enabled;
addons = { wallpapers = enabled; };
};
apps = {
_1password = enabled;
firefox = enabled;
vlc = enabled;
logseq = enabled;
hey = enabled;
pocketcasts = enabled;
yt-music = enabled;
twitter = enabled;
gparted = enabled;
};
};
};
}

View file

@ -0,0 +1,55 @@
{ options
, config
, lib
, pkgs
, ...
}:
with lib;
with lib.plusultra; let
cfg = config.plusultra.suites.development;
apps = {
vscode = enabled;
yubikey = enabled;
};
cli-apps = {
tmux = enabled;
neovim = enabled;
yubikey = enabled;
prisma = enabled;
};
in
{
options.plusultra.suites.development = with types; {
enable =
mkBoolOpt false
"Whether or not to enable common development configuration.";
};
config = mkIf cfg.enable {
networking.firewall.allowedTCPPorts = [
12345
3000
3001
8080
8081
];
plusultra = {
inherit apps cli-apps;
tools = {
# attic = enabled;
at = enabled;
direnv = enabled;
go = enabled;
http = enabled;
k8s = enabled;
node = enabled;
titan = enabled;
qmk = enabled;
};
virtualisation = { podman = enabled; };
};
};
}

View file

@ -0,0 +1,23 @@
{ options, config, lib, pkgs, ... }:
with lib;
with lib.plusultra;
let
cfg = config.plusultra.suites.emulation;
in
{
options.plusultra.suites.emulation = with types; {
enable =
mkBoolOpt false "Whether or not to enable emulation configuration.";
};
config = mkIf cfg.enable {
plusultra = {
apps = {
yuzu = enabled;
pcsx2 = enabled;
dolphin = enabled;
};
};
};
}

View file

@ -0,0 +1,28 @@
{ options, config, lib, pkgs, ... }:
with lib;
with lib.plusultra;
let
cfg = config.plusultra.suites.games;
apps = {
steam = enabled;
prismlauncher = enabled;
lutris = enabled;
winetricks = enabled;
protontricks = enabled;
doukutsu-rs = enabled;
bottles = enabled;
};
cli-apps = {
wine = enabled;
proton = enabled;
};
in
{
options.plusultra.suites.games = with types; {
enable =
mkBoolOpt false "Whether or not to enable common games configuration.";
};
config = mkIf cfg.enable { plusultra = { inherit apps cli-apps; }; };
}

View file

@ -0,0 +1,14 @@
{ options, config, lib, pkgs, ... }:
with lib;
with lib.plusultra;
let
cfg = config.plusultra.suites.media;
in
{
options.plusultra.suites.media = with types; {
enable = mkBoolOpt false "Whether or not to enable media configuration.";
};
config = mkIf cfg.enable { plusultra = { apps = { freetube = enabled; }; }; };
}

View file

@ -0,0 +1,21 @@
{ options, config, lib, pkgs, ... }:
with lib;
with lib.plusultra;
let
cfg = config.plusultra.suites.music;
in
{
options.plusultra.suites.music = with types; {
enable = mkBoolOpt false "Whether or not to enable music configuration.";
};
config = mkIf cfg.enable {
plusultra = {
apps = {
ardour = enabled;
bottles = enabled;
};
};
};
}

View file

@ -0,0 +1,27 @@
{ options
, config
, lib
, pkgs
, ...
}:
with lib;
with lib.plusultra; let
cfg = config.plusultra.suites.social;
in
{
options.plusultra.suites.social = with types; {
enable = mkBoolOpt false "Whether or not to enable social configuration.";
};
config = mkIf cfg.enable {
plusultra = {
apps = {
discord = {
enable = true;
chromium = enabled;
};
element = enabled;
};
};
};
}

View file

@ -0,0 +1,21 @@
{ options, config, lib, pkgs, ... }:
with lib;
with lib.plusultra;
let
cfg = config.plusultra.suites.video;
in
{
options.plusultra.suites.video = with types; {
enable = mkBoolOpt false "Whether or not to enable video configuration.";
};
config = mkIf cfg.enable {
plusultra = {
apps = {
pitivi = enabled;
obs = enabled;
};
};
};
}