feat: split config more

This commit is contained in:
2024-04-12 11:00:06 +02:00
parent 5d510a1989
commit 6e0e34e425
11 changed files with 199 additions and 61 deletions

View File

@@ -32,6 +32,17 @@
supportedFilesystems = [ "ntfs" ];
};
usecases = {
gaming.enable = true;
"3d-printing".enable = true;
development = {
enable = true;
angular.enable = true;
svelte.enable = true;
docker.enable = true;
};
};
desktops = {
hyprland.enable = true;
# gamescope.enable = true;
@@ -61,15 +72,7 @@
services.airprint.enable = true;
services.udev.packages = with pkgs; [
oversteer
android-udev-rules
];
virtualisation.docker.rootless = {
enable = true;
setSocketVariable = true;
};
services.udev.packages = with pkgs; [ android-udev-rules ];
programs.zsh.enable = true;
security.sudo.configFile = ''
@@ -80,11 +83,9 @@
isNormalUser = true;
extraGroups = [
"networkmanager"
"wheel"
"audio"
"video"
"plugdev"
"input"
"adbusers"
"cdrom"
];
@@ -92,7 +93,6 @@
# List packages installed in system profile. To search, run:
environment.systemPackages = with pkgs; [
gamemode
# Essential utils
usbutils
uhubctl
@@ -113,18 +113,10 @@
fzf
eza
# docker
docker-compose
];
networking = {
firewall = {
allowedTCPPorts = [
8100
5037
5173
];
allowedUDPPorts = [ 50765 ];
};
firewall.allowedUDPPorts = [ 50765 ];
networkmanager = {
enable = true;

View File

@@ -1,7 +1,5 @@
{
username,
desktop,
stateVersion,
osConfig,
inputs,
...

View File

@@ -7,9 +7,6 @@
lorri
vulnix
# fix for proton games not launching without any error message
libxcrypt
# browsers
chromium
brave
@@ -30,7 +27,6 @@
(import ./threema-desktop.nix { inherit pkgs; })
(vesktop.override { electron = pkgs.electron_29; })
(element-desktop.override { electron = pkgs.electron_29; })
slack
# office
libreoffice
@@ -44,46 +40,16 @@
pinta
kdePackages.kdenlive
blender-hip
openscad-unstable
# development
insomnia
avalonia-ilspy
ghidra
# 3d printing
lpc21isp
dfu-util
cura
# gaming
steam
oversteer
obs-studio
(lutris.override {
extraLibraries =
pkgs: with pkgs; [
libgudev
libvdpau
libsoup
];
})
wine
winetricks
protontricks
mangohud
gamescope
# utils
gh
git-filter-repo
neofetch
ranger
filezilla
lazydocker
libqalculate
ripgrep
jq
httpie
ranger
neofetch
filezilla
];
}

View File

@@ -11,7 +11,6 @@
};
};
git = import ./git.nix;
lazygit.enable = true;
nixvim = import ./nixvim { inherit pkgs; };
firefox = import ./firefox.nix { inherit pkgs; };
gpg.enable = true;

View File

@@ -22,6 +22,10 @@
./locales/theaninova.nix
./usecases/gaming.nix
./usecases/3d-printing.nix
./usecases/development.nix
./services/airprint.nix
];
}

View File

@@ -0,0 +1,27 @@
{
config,
lib,
pkgs,
...
}:
with lib;
let
cfg = config.usecases."3d-printing";
in
{
options.usecases."3d-printing" = {
enable = mkEnableOption "Enable 3d printing stuff";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
lpc21isp
dfu-util
cura
openscad-unstable
freecad
];
};
}

View File

@@ -0,0 +1,40 @@
{
config,
lib,
pkgs,
username,
...
}:
with lib;
let
cfg = config.usecases.development;
in
{
imports = [
./development/angular.nix
./development/svelte.nix
./development/docker.nix
];
options.usecases.development = {
enable = mkEnableOption "Enable development tools";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
gh
git-filter-repo
ripgrep
jq
httpie
];
home-manager.users.${username} = {
programs = {
lazygit.enable = true;
};
};
};
}

View File

@@ -0,0 +1,14 @@
{ config, lib, ... }:
with lib;
let
cfg = config.usecases.development.angular;
in
{
options.usecases.development.angular = {
enable = mkEnableOption "Enable Angular develompent";
};
config = mkIf cfg.enable { networking.firewall.allowedTCPPorts = [ 8100 ]; };
}

View File

@@ -0,0 +1,29 @@
{
config,
lib,
pkgs,
...
}:
with lib;
let
cfg = config.usecases.development.docker;
in
{
options.usecases.development.docker = {
enable = mkEnableOption "Enable Docker stuff";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
lazydocker
docker-compose
];
virtualisation.docker.rootless = {
enable = true;
setSocketVariable = true;
};
};
}

View File

@@ -0,0 +1,19 @@
{ config, lib, ... }:
with lib;
let
cfg = config.usecases.development.svelte;
in
{
options.usecases.development.svelte = {
enable = mkEnableOption "Enable Svelte develompent";
};
config = mkIf cfg.enable {
networking.firewall.allowedTCPPorts = [
5073
5173
];
};
}

View File

@@ -0,0 +1,50 @@
{
config,
lib,
pkgs,
username,
...
}:
with lib;
let
cfg = config.usecases.gaming;
in
{
options.usecases.gaming = {
enable = mkEnableOption "Enable gaming things";
};
config = mkIf cfg.enable {
programs.steam.enable = true;
services.udev.packages = with pkgs; [ oversteer ];
users.users.${username}.extraGroups = [
"wheel"
"input"
];
environment.systemPackages = with pkgs; [
steam
oversteer
obs-studio
(lutris.override {
extraLibraries =
pkgs: with pkgs; [
libgudev
libvdpau
libsoup
];
})
wine
winetricks
protontricks
mangohud
gamescope
gamemode
# fix for some proton games not launching without any error message
libxcrypt
];
};
}