From ce94f3e81302ecb5d177486345bf4ba138c860ac Mon Sep 17 00:00:00 2001 From: GarandPLG Date: Sat, 23 May 2026 20:47:49 +0200 Subject: [PATCH] Add boxes and switcheroo modules; enable kdenlive MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Register GNOME Boxes and Switcheroo in core packages and enable flags Turn on kdenlive for Garand‑Desktop and adjust its wrapper for QT scaling Extend Docker module with host‑specific profile support and conditional Nvidia integration Reformat package definitions (plex, distrobox, winboat) and tidy nvidia‑driver list --- hosts/Garand-Desktop/system-modules.nix | 4 +++- hosts/Garand-Laptop/system-modules.nix | 2 ++ hosts/default/system-modules.nix | 2 ++ modules/core/docker.nix | 9 +++++++- modules/core/packages/packages.nix | 30 ++++++++++++++++++++----- modules/drivers/nvidia-drivers.nix | 4 +++- 6 files changed, 43 insertions(+), 8 deletions(-) diff --git a/hosts/Garand-Desktop/system-modules.nix b/hosts/Garand-Desktop/system-modules.nix index f91636f..4655dcc 100644 --- a/hosts/Garand-Desktop/system-modules.nix +++ b/hosts/Garand-Desktop/system-modules.nix @@ -53,6 +53,7 @@ _: { distrobox.enable = false; # Distrobox: containerized development environments lazydocker.enable = false; # Lazydocker: simple TUI for Docker bottles.enable = false; # Bottles: Easy-to-use wineprefix manager + boxes.enable = false; # Gnome-Boxes: virtual machine manager /* Gaming @@ -94,9 +95,10 @@ _: { Media & Graphics */ eyeOfGnome.enable = true; # Eye of GNOME: image viewer + switcheroo.enable = false; # Switcheroo: file conversion tool freetube.enable = false; # FreeTube: privacy‑friendly YouTube client gimp.enable = false; # GIMP: GNU Image Manipulation Program - kdenlive.enable = false; # Kdenlive: video editing software + kdenlive.enable = true; # Kdenlive: video editing software pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs plex.enable = true; # Plex: media player and server client jellyfin.enable = true; # Jellyfin: foss media player diff --git a/hosts/Garand-Laptop/system-modules.nix b/hosts/Garand-Laptop/system-modules.nix index f91636f..2759275 100644 --- a/hosts/Garand-Laptop/system-modules.nix +++ b/hosts/Garand-Laptop/system-modules.nix @@ -53,6 +53,7 @@ _: { distrobox.enable = false; # Distrobox: containerized development environments lazydocker.enable = false; # Lazydocker: simple TUI for Docker bottles.enable = false; # Bottles: Easy-to-use wineprefix manager + boxes.enable = false; # Gnome-Boxes: virtual machine manager /* Gaming @@ -94,6 +95,7 @@ _: { Media & Graphics */ eyeOfGnome.enable = true; # Eye of GNOME: image viewer + switcheroo.enable = false; # Switcheroo: file conversion tool freetube.enable = false; # FreeTube: privacy‑friendly YouTube client gimp.enable = false; # GIMP: GNU Image Manipulation Program kdenlive.enable = false; # Kdenlive: video editing software diff --git a/hosts/default/system-modules.nix b/hosts/default/system-modules.nix index 0f78063..531a8d3 100644 --- a/hosts/default/system-modules.nix +++ b/hosts/default/system-modules.nix @@ -53,6 +53,7 @@ _: { distrobox.enable = false; # Distrobox: containerized development environments lazydocker.enable = false; # Lazydocker: simple TUI for Docker bottles.enable = false; # Bottles: Easy-to-use wineprefix manager + boxes.enable = false; # Gnome-Boxes: virtual machine manager /* Gaming @@ -94,6 +95,7 @@ _: { Media & Graphics */ eyeOfGnome.enable = true; # Eye of GNOME: image viewer + switcheroo.enable = false; # Switcheroo: file conversion tool freetube.enable = false; # FreeTube: privacy‑friendly YouTube client gimp.enable = false; # GIMP: GNU Image Manipulation Program kdenlive.enable = false; # Kdenlive: video editing software diff --git a/modules/core/docker.nix b/modules/core/docker.nix index d123149..da6d736 100644 --- a/modules/core/docker.nix +++ b/modules/core/docker.nix @@ -2,12 +2,19 @@ pkgs, lib, config, + host, ... -}: { +}: let + inherit (import ../../hosts/${host}/variables.nix) profile; +in { options.docker.enable = lib.mkEnableOption "Docker"; config.virtualisation.docker = lib.mkIf config.docker.enable { enable = true; + enableNvidia = + if profile == "nvidia" + then true + else false; package = pkgs.docker; daemon.settings.dns = ["9.9.9.11" "149.112.112.11"]; }; diff --git a/modules/core/packages/packages.nix b/modules/core/packages/packages.nix index fbb6a96..efaf29b 100644 --- a/modules/core/packages/packages.nix +++ b/modules/core/packages/packages.nix @@ -32,10 +32,22 @@ ttySolitaire = tty-solitaire; gimp = gimp; eyeOfGnome = eog; - kdenlive = kdePackages.kdenlive; + kdenlive = kdePackages.kdenlive.overrideAttrs (old: { + postInstall = + (old.postInstall or "") + + '' + wrapProgram $out/bin/kdenlive \ + --set QT_SCALE_FACTOR 0.8 + ''; + }); plex = [ - (plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};}) - # plex-desktop + ( + plex-desktop.override { + extraEnv = { + QT_QPA_PLATFORM = "xcb"; + }; + } + ) plexamp ]; jellyfin = [ @@ -44,8 +56,14 @@ ]; freetube = freetube; lazydocker = lazydocker; - distrobox = [distrobox pkgs.boxbuddy]; - winboat = [winboat freerdp]; + distrobox = [ + distrobox + pkgs.boxbuddy + ]; + winboat = [ + winboat + freerdp + ]; signal = signal-desktop; pixieditor = pixieditor; bottles = bottles; @@ -55,6 +73,8 @@ ferdium = ferdium; logisim-evolution = logisim-evolution; notify = notify-client; + boxes = gnome-boxes; + switcheroo = switcheroo; }; in { imports = builtins.attrValues (builtins.mapAttrs mkPackage packages); diff --git a/modules/drivers/nvidia-drivers.nix b/modules/drivers/nvidia-drivers.nix index ad79f87..74a6b03 100644 --- a/modules/drivers/nvidia-drivers.nix +++ b/modules/drivers/nvidia-drivers.nix @@ -13,7 +13,9 @@ in { config = mkIf cfg.enable { services.xserver.videoDrivers = ["nvidia"]; - environment.systemPackages = with pkgs; [nvidia-docker]; + environment.systemPackages = with pkgs; [ + nvidia-docker + ]; hardware = { nvidia-container-toolkit.enable = true; nvidia = {