From 6e0e34e425d517a819866f15586b924e13aaae82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Fri, 12 Apr 2024 11:00:06 +0200 Subject: [PATCH] feat: split config more --- hosts/MONSTER/default.nix | 34 +++++-------- modules/home-manager/default.nix | 2 - modules/home-manager/packages/default.nix | 40 ++------------- modules/home-manager/programs/default.nix | 1 - modules/nixos/default.nix | 4 ++ modules/nixos/usecases/3d-printing.nix | 27 ++++++++++ modules/nixos/usecases/development.nix | 40 +++++++++++++++ .../nixos/usecases/development/angular.nix | 14 ++++++ modules/nixos/usecases/development/docker.nix | 29 +++++++++++ modules/nixos/usecases/development/svelte.nix | 19 +++++++ modules/nixos/usecases/gaming.nix | 50 +++++++++++++++++++ 11 files changed, 199 insertions(+), 61 deletions(-) create mode 100644 modules/nixos/usecases/3d-printing.nix create mode 100644 modules/nixos/usecases/development.nix create mode 100644 modules/nixos/usecases/development/angular.nix create mode 100644 modules/nixos/usecases/development/docker.nix create mode 100644 modules/nixos/usecases/development/svelte.nix create mode 100644 modules/nixos/usecases/gaming.nix diff --git a/hosts/MONSTER/default.nix b/hosts/MONSTER/default.nix index 6758106..f90e66b 100644 --- a/hosts/MONSTER/default.nix +++ b/hosts/MONSTER/default.nix @@ -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; diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index b7a8a97..69dab9d 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -1,7 +1,5 @@ { username, - desktop, - stateVersion, osConfig, inputs, ... diff --git a/modules/home-manager/packages/default.nix b/modules/home-manager/packages/default.nix index ee2acaf..6d7315e 100644 --- a/modules/home-manager/packages/default.nix +++ b/modules/home-manager/packages/default.nix @@ -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 ]; } diff --git a/modules/home-manager/programs/default.nix b/modules/home-manager/programs/default.nix index 80e46ba..a081dfc 100644 --- a/modules/home-manager/programs/default.nix +++ b/modules/home-manager/programs/default.nix @@ -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; diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 62972fb..b1903f3 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -22,6 +22,10 @@ ./locales/theaninova.nix + ./usecases/gaming.nix + ./usecases/3d-printing.nix + ./usecases/development.nix + ./services/airprint.nix ]; } diff --git a/modules/nixos/usecases/3d-printing.nix b/modules/nixos/usecases/3d-printing.nix new file mode 100644 index 0000000..9e3c216 --- /dev/null +++ b/modules/nixos/usecases/3d-printing.nix @@ -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 + ]; + }; +} diff --git a/modules/nixos/usecases/development.nix b/modules/nixos/usecases/development.nix new file mode 100644 index 0000000..e656ea3 --- /dev/null +++ b/modules/nixos/usecases/development.nix @@ -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; + }; + }; + }; +} diff --git a/modules/nixos/usecases/development/angular.nix b/modules/nixos/usecases/development/angular.nix new file mode 100644 index 0000000..b1e0ecc --- /dev/null +++ b/modules/nixos/usecases/development/angular.nix @@ -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 ]; }; +} diff --git a/modules/nixos/usecases/development/docker.nix b/modules/nixos/usecases/development/docker.nix new file mode 100644 index 0000000..b73e877 --- /dev/null +++ b/modules/nixos/usecases/development/docker.nix @@ -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; + }; + }; +} diff --git a/modules/nixos/usecases/development/svelte.nix b/modules/nixos/usecases/development/svelte.nix new file mode 100644 index 0000000..425f40c --- /dev/null +++ b/modules/nixos/usecases/development/svelte.nix @@ -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 + ]; + }; +} diff --git a/modules/nixos/usecases/gaming.nix b/modules/nixos/usecases/gaming.nix new file mode 100644 index 0000000..fcd585c --- /dev/null +++ b/modules/nixos/usecases/gaming.nix @@ -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 + ]; + }; +}