refactor *started*

This commit is contained in:
martyTF 2026-03-30 22:03:03 +02:00
parent d0413cb830
commit db2103a37d
103 changed files with 1008 additions and 786 deletions

View file

@ -0,0 +1,26 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.audio = {
base.enable = lib.mkEnableOption "enable basic audio";
media.enable = lib.mkEnableOption "enable audio media";
editing.enable = lib.mkEnableOption "enable audio editing";
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf (apps.audio.base.enable) pavucontrol)
(lib.mkIf (apps.audio.base.enable) playerctl)
(lib.mkIf (apps.audio.editing.enable) tenacity)
(lib.mkIf (apps.audio.editing.enable) flac)
];
};
}

16
modules/apps/default.nix Normal file
View file

@ -0,0 +1,16 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./audio
./gaming
./image
./video
./terminal
];
}

View file

@ -0,0 +1,13 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./steam.nix
./minecraft.nix
];
}

View file

@ -0,0 +1,20 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
apps.gaming = {
minecraft.enable = lib.mkEnableOption "enable minecraft";
};
};
config = lib.mkIf config.apps.gaming.minecraft.enable {
environment.systemPackages = with pkgs; [
prismlauncher
];
};
}

View file

@ -0,0 +1,41 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
apps.gaming = {
steam.enable = lib.mkEnableOption "enable steam";
};
};
config = lib.mkIf config.apps.gaming.steam.enable {
environment.systemPackages = with pkgs; [
adwsteamgtk
];
programs = {
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
extraPackages = with pkgs; [
gamescope
];
};
gamescope = {
enable = true;
capSysNice = true;
};
};
};
}

View file

@ -0,0 +1,24 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.image = {
base.enable = lib.mkEnableOption "enable basic image";
editing.enable = lib.mkEnableOption "enable image editing";
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf (apps.image.base.enable) nomacs)
(lib.mkIf (apps.image.editing.enable) gimp3-with-plugins)
(lib.mkIf (apps.image.editing.enable) krita)
];
};
}

View file

@ -0,0 +1,12 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./keyboard.nix
];
}

View file

@ -0,0 +1,26 @@
{
config,
lib,
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [
qmk
qmk-udev-rules
qmk_hid
via
vial
];
services.udev = {
packages = with pkgs; [
qmk
qmk-udev-rules
qmk_hid
via
vial
];
};
}

View file

@ -0,0 +1,31 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.terminal.toys = lib.mkEnableOption "enable terminal toys";
};
config = {
environment.systemPackages =
with pkgs;
[
unzip
btop
]
++ lib.mkIf config.apps.terminal.toys [
asciiquarium-transparent
cava
bunnyfetch
nerdfetch
fastfetch
cmatrix
astroterm
];
};
}

View file

@ -0,0 +1,30 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
apps.terminal = {
package = lib.mkOption {
default = "";
description = "terminal package";
};
binary = lib.mkOption {
default = "";
description = "terminal binary";
};
default = lib.mkOption {
default = "";
description = "default terminal";
};
};
};
imports = [
./base-packages.nix
./kitty.nix
./tui.nix
];
}

View file

@ -0,0 +1,25 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.terminal = {
kitty.enable = lib.mkEnableOption "enable kitty";
};
};
config = lib.mkIf config.apps.terminal.kitty.enable {
terminal = lib.mkIf (config.apps.terminal.default == "kitty") {
package = pkgs.kitty;
binary = "${pkgs.kitty}/bin/kitty";
};
environment.systemPackages = with pkgs; [
kitty
];
};
}

View file

@ -0,0 +1,25 @@
{
config,
pkgs,
inputs,
lib,
...
}:
let
tt = config.apps.terminal.tui;
in
{
options = {
apps.terminal.tui = {
ranger.enable = lib.mkEnableOption "enable ranger";
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf (tt.ranger.enable) ranger)
];
};
}

View file

@ -0,0 +1,26 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.video = {
base.enable = lib.mkEnableOption "enable basic video";
editing.enable = lib.mkEnableOption "enable video editing";
media.enable = lib.mkEnableOption "enable video media";
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf (apps.video.base.enable) mpv)
(lib.mkIf (apps.video.editing.enable) kdePackages.kdenlive)
(lib.mkIf (apps.video.media.enable) jellyfin-desktop)
(lib.mkIf (apps.video.media.enable) pipeline)
];
};
}