chore: pretty up with alejandra

This commit is contained in:
Peritia 2025-09-22 16:16:02 +02:00
parent 7bbda6140f
commit 37b85877bb
75 changed files with 584 additions and 452 deletions

View file

@ -1,9 +1,11 @@
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.hardware.bluetooth;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.hardware.bluetooth;
in {
options.nyx-module.hardware.bluetooth = { options.nyx-module.hardware.bluetooth = {
enable = lib.mkEnableOption "Enable the system Bluetooth module"; enable = lib.mkEnableOption "Enable the system Bluetooth module";
}; };
@ -11,12 +13,12 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
# Enable Bluetooth support # Enable Bluetooth support
hardware.bluetooth = { hardware.bluetooth = {
enable = true; # Enable Bluetooth service enable = true; # Enable Bluetooth service
powerOnBoot = true; # Power up the controller at boot powerOnBoot = true; # Power up the controller at boot
}; };
# Ensure firmware is available (needed for devices like Intel AX200) # Ensure firmware is available (needed for devices like Intel AX200)
hardware.enableAllFirmware = true; hardware.enableAllFirmware = true;
hardware.firmware = [ pkgs.linux-firmware ]; hardware.firmware = [pkgs.linux-firmware];
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./bluetooth.nix ./bluetooth.nix
]; ];

View file

@ -4,22 +4,24 @@
# - inputs.nixos-hardware.nixosModules.microsoft-surface-pro-intel # - inputs.nixos-hardware.nixosModules.microsoft-surface-pro-intel
# #
# Notes: # Notes:
# - Estimated kernel build time: # - Estimated kernel build time:
# ~4h30m using Kernel 6.15.6 # ~4h30m using Kernel 6.15.6
# ~4h00m using Kernel 6.15.9 # ~4h00m using Kernel 6.15.9
# - Known Issues: # - Known Issues:
# - Battery not getting detected. Issue opened: https://github.com/NixOS/nixos-hardware/issues/1612 # - Battery not getting detected. Issue opened: https://github.com/NixOS/nixos-hardware/issues/1612
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.hardware.Custom-Kernel.SurfacePro-KabyLake;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.hardware.Custom-Kernel.SurfacePro-KabyLake;
in {
options.nyx-module.hardware.Custom-Kernel.SurfacePro-KabyLake = { options.nyx-module.hardware.Custom-Kernel.SurfacePro-KabyLake = {
enable = lib.mkEnableOption "Enable Custom Surface Pro (Kaby Lake) kernel module"; enable = lib.mkEnableOption "Enable Custom Surface Pro (Kaby Lake) kernel module";
kernelVersion = lib.mkOption { kernelVersion = lib.mkOption {
type = lib.types.enum [ "stable" "longtime" ]; type = lib.types.enum ["stable" "longtime"];
default = "stable"; default = "stable";
description = "Choose which kernel version nixos-hardware will build for Surface Pro."; description = "Choose which kernel version nixos-hardware will build for Surface Pro.";
}; };
@ -37,14 +39,13 @@ in
''; '';
} }
]; ];
# Pick kernel version for Surface hardware support # Pick kernel version for Surface hardware support
hardware.microsoft-surface.kernelVersion = cfg.kernelVersion; hardware.microsoft-surface.kernelVersion = cfg.kernelVersion;
# boot.kernelPackages = pkgs.linuxPackages_6_6; # normally set by nixos-hardware # boot.kernelPackages = pkgs.linuxPackages_6_6; # normally set by nixos-hardware
# Extra kernel modules # Extra kernel modules
boot.kernelModules = [ "hid-microsoft" "battery" "ac" ]; boot.kernelModules = ["hid-microsoft" "battery" "ac"];
hardware.enableAllFirmware = true; hardware.enableAllFirmware = true;
# Initrd modules — required for Surface hardware to function # Initrd modules — required for Surface hardware to function
@ -66,7 +67,7 @@ in
#for camera #for camera
libcamera libcamera
# for Battery # for Battery
tlp tlp
upower upower
acpi acpi

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./custom-kernel-surfacepro-kbl.nix ./custom-kernel-surfacepro-kbl.nix
]; ];

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./Bluetooth ./Bluetooth
./Surface ./Surface

View file

@ -14,13 +14,14 @@
# - Default extensions include uBlock Origin, Proton Pass, Proton VPN # - Default extensions include uBlock Origin, Proton Pass, Proton VPN
# - Extra extensions must be specified by Chrome Web Store ID # - Extra extensions must be specified by Chrome Web Store ID
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.brave;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.brave;
in {
options.nyx-module.home.brave = { options.nyx-module.home.brave = {
enable = lib.mkEnableOption "Enable Brave (home module)"; enable = lib.mkEnableOption "Enable Brave (home module)";
@ -30,7 +31,7 @@ in
extra = lib.mkOption { extra = lib.mkOption {
type = lib.types.listOf lib.types.str; type = lib.types.listOf lib.types.str;
default = []; default = [];
example = [ "abcdefghijklmnop" "qrstuvwxyz123456" ]; example = ["abcdefghijklmnop" "qrstuvwxyz123456"];
description = "List of additional Brave extension IDs to install."; description = "List of additional Brave extension IDs to install.";
}; };
}; };
@ -43,11 +44,11 @@ in
extensions = lib.optionals cfg.extensions.enable ( extensions = lib.optionals cfg.extensions.enable (
(lib.optionals cfg.extensions.standard [ (lib.optionals cfg.extensions.standard [
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # uBlock Origin {id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} # uBlock Origin
{ id = "ghmbeldphafepmbegfdlkpapadhbakde"; } # Proton Pass {id = "ghmbeldphafepmbegfdlkpapadhbakde";} # Proton Pass
{ id = "jplgfhpmjnbigmhklmmbgecoobifkmpa"; } # Proton VPN {id = "jplgfhpmjnbigmhklmmbgecoobifkmpa";} # Proton VPN
]) ++ ])
(map (id: { inherit id; }) cfg.extensions.extra) ++ (map (id: {inherit id;}) cfg.extensions.extra)
); );
commandLineArgs = [ commandLineArgs = [

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./brave.nix ./brave.nix
]; ];

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./signal-desktop.nix ./signal-desktop.nix
./vesktop.nix ./vesktop.nix

View file

@ -7,13 +7,14 @@
# - enable → Enable Signal Desktop # - enable → Enable Signal Desktop
# - package → Override package (default: pkgs.signal-desktop) # - package → Override package (default: pkgs.signal-desktop)
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.signal-desktop;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.signal-desktop;
in {
options.nyx-module.home.signal-desktop = { options.nyx-module.home.signal-desktop = {
enable = lib.mkEnableOption "Enable signal-desktop (home) module"; enable = lib.mkEnableOption "Enable signal-desktop (home) module";
@ -25,6 +26,6 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ]; home.packages = [cfg.package];
}; };
} }

View file

@ -7,13 +7,14 @@
# - enable → Enable Vesktop client # - enable → Enable Vesktop client
# - package → Override package (default: pkgs.vesktop) # - package → Override package (default: pkgs.vesktop)
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.vesktop;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.vesktop;
in {
options.nyx-module.home.vesktop = { options.nyx-module.home.vesktop = {
enable = lib.mkEnableOption "Enable vesktop (home) module"; enable = lib.mkEnableOption "Enable vesktop (home) module";
@ -25,6 +26,6 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ]; home.packages = [cfg.package];
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./rustdesk.nix ./rustdesk.nix
]; ];

View file

@ -10,20 +10,21 @@
# Notes: # Notes:
# - Estimated build time: ~? Long.... # - Estimated build time: ~? Long....
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.rustdesk;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.rustdesk;
in {
options.nyx-module.home.rustdesk = { options.nyx-module.home.rustdesk = {
enable = lib.mkEnableOption "Enable rustdesk (home) module"; enable = lib.mkEnableOption "Enable rustdesk (home) module";
package = lib.mkOption { package = lib.mkOption {
type = lib.types.package; type = lib.types.package;
default = pkgs.rustdesk; default = pkgs.rustdesk;
description = '' description = ''
Package to install for RustDesk. Package to install for RustDesk.
You can override this if you want to pin a version or use a fork. You can override this if you want to pin a version or use a fork.
''; '';
@ -32,6 +33,6 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ]; home.packages = [cfg.package];
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./Messaging ./Messaging
./Remote-Support ./Remote-Support

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./vscodium.nix ./vscodium.nix
]; ];

View file

@ -13,14 +13,14 @@
# Notes: # Notes:
# - Some Microsoft extensions may be broken (e.g., ms-python.python) # - Some Microsoft extensions may be broken (e.g., ms-python.python)
# #
{ config, pkgs, lib, ... }:
let
cfg = config.nyx-module.home.vscodium;
in
{ {
config,
pkgs,
lib,
...
}: let
cfg = config.nyx-module.home.vscodium;
in {
options.nyx-module.home.vscodium = { options.nyx-module.home.vscodium = {
enable = lib.mkEnableOption "Enable VSCodium with extensions"; enable = lib.mkEnableOption "Enable VSCodium with extensions";
@ -32,7 +32,7 @@ in
extra = lib.mkOption { extra = lib.mkOption {
type = lib.types.listOf lib.types.package; type = lib.types.listOf lib.types.package;
default = []; default = [];
example = [ pkgs.vscode-extensions.ms-python.python ]; example = [pkgs.vscode-extensions.ms-python.python];
description = "List of extra VSCodium extensions to install."; description = "List of extra VSCodium extensions to install.";
}; };
}; };
@ -43,16 +43,15 @@ in
enable = true; enable = true;
package = pkgs.vscodium; package = pkgs.vscodium;
profiles.default.extensions = profiles.default.extensions = lib.optionals cfg.extensions.enable (
lib.optionals cfg.extensions.enable ( (lib.optionals cfg.extensions.standard (with pkgs.vscode-extensions; [
(lib.optionals cfg.extensions.standard (with pkgs.vscode-extensions; [ catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc jnoortheen.nix-ide
jnoortheen.nix-ide ms-azuretools.vscode-docker
ms-azuretools.vscode-docker # ms-python.python # currently broken (pygls failure)
# ms-python.python # currently broken (pygls failure) ]))
])) ++ cfg.extensions.extra
++ cfg.extensions.extra );
);
}; };
}; };
} }

View file

@ -15,13 +15,14 @@
# Options: # Options:
# - enable → Enable the Classic Game Collection # - enable → Enable the Classic Game Collection
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.classic-game-collection;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.classic-game-collection;
in {
options.nyx-module.home.classic-game-collection = { options.nyx-module.home.classic-game-collection = {
enable = lib.mkEnableOption "Enable the Classic Game Collection (home module)"; enable = lib.mkEnableOption "Enable the Classic Game Collection (home module)";
}; };

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./classic-game-collection.nix ./classic-game-collection.nix
./prismlauncher.nix ./prismlauncher.nix

View file

@ -14,13 +14,14 @@
# - Installed via home.packages # - Installed via home.packages
# - JDKs are added to PATH so PrismLauncher can discover them # - JDKs are added to PATH so PrismLauncher can discover them
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.prismlauncher;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.prismlauncher;
in {
options.nyx-module.home.prismlauncher = { options.nyx-module.home.prismlauncher = {
enable = lib.mkEnableOption "Enable PrismLauncher (Minecraft launcher)"; enable = lib.mkEnableOption "Enable PrismLauncher (Minecraft launcher)";
@ -28,16 +29,16 @@ in
jdks = lib.mkOption { jdks = lib.mkOption {
type = lib.types.listOf lib.types.package; type = lib.types.listOf lib.types.package;
default = [ pkgs.jdk17 ]; default = [pkgs.jdk17];
example = [ pkgs.jdk8 pkgs.jdk17 pkgs.jdk21 ]; example = [pkgs.jdk8 pkgs.jdk17 pkgs.jdk21];
description = "List of Java runtimes to make available for PrismLauncher."; description = "List of Java runtimes to make available for PrismLauncher.";
}; };
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = home.packages =
[ pkgs.prismlauncher ] [pkgs.prismlauncher]
++ lib.optionals cfg.includeFfmpeg [ pkgs.ffmpeg ] ++ lib.optionals cfg.includeFfmpeg [pkgs.ffmpeg]
++ cfg.jdks; ++ cfg.jdks;
}; };
} }

View file

@ -20,13 +20,14 @@
# settings.general.framerate = 120; # settings.general.framerate = 120;
# settings.input.method = "pulse"; # settings.input.method = "pulse";
# }; # };
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.cava;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.cava;
in {
options.nyx-module.home.cava = { options.nyx-module.home.cava = {
enable = lib.mkEnableOption "Enable CAVA (home) module"; enable = lib.mkEnableOption "Enable CAVA (home) module";
@ -42,7 +43,7 @@ in
}; };
}; };
description = '' description = ''
Declarative CAVA settings, written to `~/.config/cava/config`. Declarative CAVA settings, written to `~/.config/cava/config`.
Ignored if `configText` is set. Ignored if `configText` is set.
''; '';
example = { example = {
@ -56,7 +57,7 @@ in
type = lib.types.nullOr lib.types.lines; type = lib.types.nullOr lib.types.lines;
default = null; default = null;
description = '' description = ''
Raw CAVA configuration file contents. Raw CAVA configuration file contents.
If set, overrides `settings` and is written directly to `~/.config/cava/config`. If set, overrides `settings` and is written directly to `~/.config/cava/config`.
''; '';
example = '' example = ''
@ -64,7 +65,7 @@ in
framerate = 120 framerate = 120
[input] [input]
method = pulse method = pulse
''; '';
}; };
}; };
@ -73,11 +74,9 @@ in
enable = true; enable = true;
package = pkgs.cava; package = pkgs.cava;
settings = lib.mkIf (cfg.configText == null) cfg.settings; settings = lib.mkIf (cfg.configText == null) cfg.settings;
}; };
xdg.configFile."cava/config" = lib.mkIf (cfg.configText != null) { xdg.configFile."cava/config" = lib.mkIf (cfg.configText != null) {
text = cfg.configText; text = cfg.configText;
}; };

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./cava.nix ./cava.nix
./spotify.nix ./spotify.nix

View file

@ -7,13 +7,14 @@
# Notes: # Notes:
# - Installs into home.packages # - Installs into home.packages
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.spotify;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.spotify;
in {
options.nyx-module.home.spotify = { options.nyx-module.home.spotify = {
enable = lib.mkEnableOption "Enable Spotify (home) module"; enable = lib.mkEnableOption "Enable Spotify (home) module";
@ -30,6 +31,6 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ]; home.packages = [cfg.package];
}; };
} }

View file

@ -7,13 +7,14 @@
# Notes: # Notes:
# - You can override the GUI package with another (e.g., cheese, kamoso) # - You can override the GUI package with another (e.g., cheese, kamoso)
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.camera;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.camera;
in {
options.nyx-module.home.camera = { options.nyx-module.home.camera = {
enable = lib.mkEnableOption "Enable camera (home) module"; enable = lib.mkEnableOption "Enable camera (home) module";

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./camera.nix ./camera.nix
]; ];

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./image-viewer.nix ./image-viewer.nix
./krita.nix ./krita.nix

View file

@ -6,13 +6,14 @@
# Notes: # Notes:
# - Defaults to Gwenview # - Defaults to Gwenview
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.image-viewer;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.image-viewer;
in {
options.nyx-module.home.image-viewer = { options.nyx-module.home.image-viewer = {
enable = lib.mkEnableOption "Enable image viewer (home module)"; enable = lib.mkEnableOption "Enable image viewer (home module)";
@ -25,6 +26,6 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ]; home.packages = [cfg.package];
}; };
} }

View file

@ -6,13 +6,14 @@
# Notes: # Notes:
# - Installed via home.packages # - Installed via home.packages
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.krita;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.krita;
in {
options.nyx-module.home.krita = { options.nyx-module.home.krita = {
enable = lib.mkEnableOption "Enable Krita (home) module"; enable = lib.mkEnableOption "Enable Krita (home) module";
}; };

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./kdenlive.nix ./kdenlive.nix
./video-player.nix ./video-player.nix

View file

@ -9,13 +9,14 @@
# * pkgs.kdePackages.kdenlive (preferred, modern KDE split) # * pkgs.kdePackages.kdenlive (preferred, modern KDE split)
# * pkgs.libsForQt5.kdenlive (older releases, fallback) # * pkgs.libsForQt5.kdenlive (older releases, fallback)
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.kdenlive;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.kdenlive;
in {
options.nyx-module.home.kdenlive = { options.nyx-module.home.kdenlive = {
enable = lib.mkEnableOption "Enable Kdenlive (home) module"; enable = lib.mkEnableOption "Enable Kdenlive (home) module";
}; };

View file

@ -6,20 +6,21 @@
# Notes: # Notes:
# - Defaults to [ vlc ] # - Defaults to [ vlc ]
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.video-player;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.video-player;
in {
options.nyx-module.home.video-player = { options.nyx-module.home.video-player = {
enable = lib.mkEnableOption "Enable video players (home module)"; enable = lib.mkEnableOption "Enable video players (home module)";
packages = lib.mkOption { packages = lib.mkOption {
type = lib.types.listOf lib.types.package; type = lib.types.listOf lib.types.package;
default = [ pkgs.vlc ]; default = [pkgs.vlc];
example = [ pkgs.vlc pkgs.mpv pkgs.celluloid ]; example = [pkgs.vlc pkgs.mpv pkgs.celluloid];
description = "List of video/media players to install (e.g. vlc, mpv, celluloid)."; description = "List of video/media players to install (e.g. vlc, mpv, celluloid).";
}; };
}; };
@ -28,12 +29,11 @@ in
home.packages = cfg.packages; home.packages = cfg.packages;
}; };
} }
########## ##########
# Example # Example
########## ##########
# nyx-module.home.video-player = { # nyx-module.home.video-player = {
# enable = true; # enable = true;
# packages = [ pkgs.vlc pkgs.mpv ]; # packages = [ pkgs.vlc pkgs.mpv ];
# }; # };

View file

@ -9,13 +9,14 @@
# Notes: # Notes:
# - Installed via home.packages # - Installed via home.packages
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.zoom;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.zoom;
in {
options.nyx-module.home.zoom = { options.nyx-module.home.zoom = {
enable = lib.mkEnableOption "Enable Zoom (home) module"; enable = lib.mkEnableOption "Enable Zoom (home) module";
@ -27,6 +28,6 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ]; home.packages = [cfg.package];
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./Audio ./Audio
./Capture ./Capture

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./obsidian.nix ./obsidian.nix
]; ];

View file

@ -7,18 +7,19 @@
# - Consider adding theming support later # - Consider adding theming support later
# (e.g., https://github.com/jackiejude/obsidian-temple-os) # (e.g., https://github.com/jackiejude/obsidian-temple-os)
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.obsidian;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.obsidian;
in {
options.nyx-module.home.obsidian = { options.nyx-module.home.obsidian = {
enable = lib.mkEnableOption "Enable Obsidian (home module)"; enable = lib.mkEnableOption "Enable Obsidian (home module)";
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ pkgs.obsidian ]; home.packages = [pkgs.obsidian];
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./libreoffice.nix ./libreoffice.nix
./pdf-reader.nix ./pdf-reader.nix

View file

@ -6,18 +6,19 @@
# Notes: # Notes:
# - Simple module, just adds LibreOffice to the user environment # - Simple module, just adds LibreOffice to the user environment
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.libreoffice;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.libreoffice;
in {
options.nyx-module.home.libreoffice = { options.nyx-module.home.libreoffice = {
enable = lib.mkEnableOption "Enable LibreOffice (home module)"; enable = lib.mkEnableOption "Enable LibreOffice (home module)";
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ pkgs.libreoffice ]; home.packages = [pkgs.libreoffice];
}; };
} }

View file

@ -6,13 +6,14 @@
# Notes: # Notes:
# - Defaults to Okular # - Defaults to Okular
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.pdf-viewer;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.pdf-viewer;
in {
options.nyx-module.home.pdf-viewer = { options.nyx-module.home.pdf-viewer = {
enable = lib.mkEnableOption "Enable PDF (home module)"; enable = lib.mkEnableOption "Enable PDF (home module)";
@ -25,6 +26,6 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ]; home.packages = [cfg.package];
}; };
} }

View file

@ -7,13 +7,14 @@
# - Default is `simple-scan` (GNOME Document Scanner) # - Default is `simple-scan` (GNOME Document Scanner)
# - Can be overridden with another package such as `system-config-printer` # - Can be overridden with another package such as `system-config-printer`
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.printer;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.printer;
in {
options.nyx-module.home.printer = { options.nyx-module.home.printer = {
enable = lib.mkEnableOption "Enable printer GUI (home module)"; enable = lib.mkEnableOption "Enable printer GUI (home module)";
@ -26,6 +27,6 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ]; home.packages = [cfg.package];
}; };
} }

View file

@ -6,18 +6,19 @@
# Notes: # Notes:
# - Simple module, just adds Thunderbird to the user environment # - Simple module, just adds Thunderbird to the user environment
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.thunderbird;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.thunderbird;
in {
options.nyx-module.home.thunderbird = { options.nyx-module.home.thunderbird = {
enable = lib.mkEnableOption "Enable Thunderbird (home module)"; enable = lib.mkEnableOption "Enable Thunderbird (home module)";
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ pkgs.thunderbird ]; home.packages = [pkgs.thunderbird];
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./Knowledge ./Knowledge
./Productivity ./Productivity

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./protonvpn.nix ./protonvpn.nix
]; ];

View file

@ -8,14 +8,14 @@
# #
# Notes: # Notes:
# - GUI only by default (CLI version available as pkgs.protonvpn-cli) # - GUI only by default (CLI version available as pkgs.protonvpn-cli)
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.protonvpn;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.protonvpn;
in {
options.nyx-module.home.protonvpn = { options.nyx-module.home.protonvpn = {
enable = lib.mkEnableOption "Enable ProtonVPN (home module)"; enable = lib.mkEnableOption "Enable ProtonVPN (home module)";
}; };

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./Browsers ./Browsers
./Communication ./Communication

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./tools.nix ./tools.nix
]; ];

View file

@ -7,34 +7,36 @@
# Options: # Options:
# - enable → Enable CLI tools collection # - enable → Enable CLI tools collection
# - extra → List of extra packages to install # - extra → List of extra packages to install
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.cli-tools;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.cli-tools;
in {
options.nyx-module.home.cli-tools = { options.nyx-module.home.cli-tools = {
enable = lib.mkEnableOption "Enable CLI tools (home module)"; enable = lib.mkEnableOption "Enable CLI tools (home module)";
extra = lib.mkOption { extra = lib.mkOption {
type = lib.types.listOf lib.types.package; type = lib.types.listOf lib.types.package;
default = []; default = [];
example = [ pkgs.ripgrep pkgs.htop ]; example = [pkgs.ripgrep pkgs.htop];
description = "Extra CLI tools to install in addition to the defaults."; description = "Extra CLI tools to install in addition to the defaults.";
}; };
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ home.packages = with pkgs;
fastfetch [
hyfetch fastfetch
bat hyfetch
fzf bat
tree fzf
lsd tree
tmux lsd
] ++ cfg.extra; tmux
]
++ cfg.extra;
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./cli-tools ./cli-tools
./zsh ./zsh

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./zsh.nix ./zsh.nix
]; ];

View file

@ -6,13 +6,14 @@
# #
# Options: # Options:
# - enable → Enable Zsh in the user profile # - enable → Enable Zsh in the user profile
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.zsh;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.zsh;
in {
options.nyx-module.home.zsh = { options.nyx-module.home.zsh = {
enable = lib.mkEnableOption "Enable Zsh (home module)"; enable = lib.mkEnableOption "Enable Zsh (home module)";
}; };

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./private-webapps.nix ./private-webapps.nix
./work-webapps.nix ./work-webapps.nix

View file

@ -12,13 +12,14 @@
# Notes: # Notes:
# - Uses --app mode to create minimal browser windows # - Uses --app mode to create minimal browser windows
# - Additional services can be added following the same pattern # - Additional services can be added following the same pattern
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.private-webapps;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.private-webapps;
in {
options.nyx-module.home.private-webapps = { options.nyx-module.home.private-webapps = {
enable = lib.mkEnableOption "Enable private webapps (home module)"; enable = lib.mkEnableOption "Enable private webapps (home module)";

View file

@ -18,13 +18,14 @@
# Notes: # Notes:
# - Uses --app mode for minimal windows (like PWAs) # - Uses --app mode for minimal windows (like PWAs)
# - Outlook entry uses a custom profile directory for isolation # - Outlook entry uses a custom profile directory for isolation
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.home.work-webapps;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.home.work-webapps;
in {
options.nyx-module.home.work-webapps = { options.nyx-module.home.work-webapps = {
enable = lib.mkEnableOption "Enable work webapps (home module)"; enable = lib.mkEnableOption "Enable work webapps (home module)";

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./GUI-Apps ./GUI-Apps
./Shell ./Shell

View file

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

View file

@ -14,13 +14,14 @@
# - openFirewall.dedicatedServer → Open firewall for Source Dedicated Server # - openFirewall.dedicatedServer → Open firewall for Source Dedicated Server
# - openFirewall.localNetworkGameTransfers → Open firewall for LAN transfers # - openFirewall.localNetworkGameTransfers → Open firewall for LAN transfers
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.steam;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.steam;
in {
options.nyx-module.system.steam = { options.nyx-module.system.steam = {
enable = lib.mkEnableOption "Enable Steam (system module)"; enable = lib.mkEnableOption "Enable Steam (system module)";

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./Steam ./Steam
]; ];

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./flatpak.nix ./flatpak.nix
./wireshark.nix ./wireshark.nix

View file

@ -8,12 +8,14 @@
# Options: # Options:
# - enable → Enable Flatpak system module # - enable → Enable Flatpak system module
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.flatpak;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.flatpak;
in {
options.nyx-module.system.flatpak = { options.nyx-module.system.flatpak = {
enable = lib.mkEnableOption "Enable Flatpak (system module)"; enable = lib.mkEnableOption "Enable Flatpak (system module)";
}; };
@ -25,12 +27,12 @@ in
xdg.portal = { xdg.portal = {
enable = true; enable = true;
extraPortals = with pkgs; [ extraPortals = with pkgs; [
xdg-desktop-portal-gtk # For GTK desktops xdg-desktop-portal-gtk # For GTK desktops
# xdg-desktop-portal-kde # Uncomment for KDE Plasma # xdg-desktop-portal-kde # Uncomment for KDE Plasma
]; ];
}; };
# Optional explicit installation (not strictly needed) # Optional explicit installation (not strictly needed)
environment.systemPackages = [ pkgs.flatpak ]; environment.systemPackages = [pkgs.flatpak];
}; };
} }

View file

@ -9,13 +9,14 @@
# - enable → Enable Wireshark system module # - enable → Enable Wireshark system module
# - username → User to add to the wireshark group (required) # - username → User to add to the wireshark group (required)
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.wireshark;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.wireshark;
in {
options.nyx-module.system.wireshark = { options.nyx-module.system.wireshark = {
enable = lib.mkEnableOption "Enable Wireshark (system module)"; enable = lib.mkEnableOption "Enable Wireshark (system module)";
@ -27,15 +28,15 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
environment.systemPackages = [ pkgs.wireshark ]; environment.systemPackages = [pkgs.wireshark];
programs.wireshark = { programs.wireshark = {
enable = true; # Installs wireshark + sets dumpcap caps enable = true; # Installs wireshark + sets dumpcap caps
package = pkgs.wireshark; package = pkgs.wireshark;
}; };
# Add user to wireshark group # Add user to wireshark group
users.users.${cfg.username}.extraGroups = [ "wireshark" ]; users.users.${cfg.username}.extraGroups = ["wireshark"];
assertions = [ assertions = [
{ {

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./docker.nix ./docker.nix
./openssh.nix ./openssh.nix

View file

@ -15,13 +15,14 @@
# Notes: # Notes:
# - Rootless mode is disabled by default # - Rootless mode is disabled by default
# - Uses cgroup v2 for better resource management on modern kernels # - Uses cgroup v2 for better resource management on modern kernels
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.docker;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.docker;
in {
options.nyx-module.system.docker = { options.nyx-module.system.docker = {
enable = lib.mkEnableOption "Enable Docker (system module)"; enable = lib.mkEnableOption "Enable Docker (system module)";
@ -47,7 +48,7 @@ in
rootless.enable = cfg.rootless; rootless.enable = cfg.rootless;
}; };
users.users.${cfg.username}.extraGroups = [ "docker" ]; users.users.${cfg.username}.extraGroups = ["docker"];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
docker docker
@ -55,8 +56,7 @@ in
]; ];
# Optional: Docker cgroup v2 (usually enabled by default in modern NixOS) # Optional: Docker cgroup v2 (usually enabled by default in modern NixOS)
boot.kernelParams = [ "cgroup_enable=memory" "cgroup_memory=1" ]; boot.kernelParams = ["cgroup_enable=memory" "cgroup_memory=1"];
assertions = [ assertions = [
{ {

View file

@ -11,13 +11,14 @@
# Notes: # Notes:
# - By default, password authentication is disabled for better security # - By default, password authentication is disabled for better security
# - Root login is disabled unless explicitly enabled # - Root login is disabled unless explicitly enabled
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.openssh;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.openssh;
in {
options.nyx-module.system.openssh = { options.nyx-module.system.openssh = {
enable = lib.mkEnableOption "Enable OpenSSH (system module)"; enable = lib.mkEnableOption "Enable OpenSSH (system module)";

View file

@ -13,13 +13,14 @@
# - Adds podman + podman-compose to system packages # - Adds podman + podman-compose to system packages
# - Enables D-Bus socket activation for Podman # - Enables D-Bus socket activation for Podman
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.podman;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.podman;
in {
options.nyx-module.system.podman = { options.nyx-module.system.podman = {
enable = lib.mkEnableOption "Enable Podman (system module)"; enable = lib.mkEnableOption "Enable Podman (system module)";
@ -33,7 +34,7 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
virtualisation.podman.enable = true; virtualisation.podman.enable = true;
users.users.${cfg.username}.extraGroups = [ "podman" ]; users.users.${cfg.username}.extraGroups = ["podman"];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
podman podman
@ -41,8 +42,8 @@ in
]; ];
# Optional: enable Podman socket activation # Optional: enable Podman socket activation
services.dbus.packages = [ pkgs.podman ]; services.dbus.packages = [pkgs.podman];
assertions = [ assertions = [
{ {
assertion = cfg.username != ""; assertion = cfg.username != "";

View file

@ -15,13 +15,14 @@
# - virt-manager GUI is enabled automatically # - virt-manager GUI is enabled automatically
# - Only generic "kvm" kernel module is forced (host picks intel/amd) # - Only generic "kvm" kernel module is forced (host picks intel/amd)
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.vm;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.vm;
in {
options.nyx-module.system.vm = { options.nyx-module.system.vm = {
enable = lib.mkEnableOption "Enable VM (system module)"; enable = lib.mkEnableOption "Enable VM (system module)";
@ -49,10 +50,10 @@ in
}; };
# Add user to groups # Add user to groups
users.users.${cfg.username}.extraGroups = [ "libvirtd" "kvm" ]; users.users.${cfg.username}.extraGroups = ["libvirtd" "kvm"];
# Enable kernel modules for virtualization # Enable kernel modules for virtualization
boot.kernelModules = [ "kvm" ]; boot.kernelModules = ["kvm"];
# Enable GUI management tool # Enable GUI management tool
programs.virt-manager.enable = true; programs.virt-manager.enable = true;

View file

@ -11,13 +11,14 @@
# - theme → oh-my-zsh theme (default: "xiong-chiamiov-plus") # - theme → oh-my-zsh theme (default: "xiong-chiamiov-plus")
# - plugins → List of oh-my-zsh plugins (default: [ "git" ]) # - plugins → List of oh-my-zsh plugins (default: [ "git" ])
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.zsh;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.zsh;
in {
options.nyx-module.system.zsh = { options.nyx-module.system.zsh = {
enable = lib.mkEnableOption "Enable Zsh (system module)"; enable = lib.mkEnableOption "Enable Zsh (system module)";
@ -31,7 +32,7 @@ in
plugins = lib.mkOption { plugins = lib.mkOption {
type = lib.types.listOf lib.types.str; type = lib.types.listOf lib.types.str;
default = [ "git" ]; default = ["git"];
description = "List of oh-my-zsh plugins to enable."; description = "List of oh-my-zsh plugins to enable.";
}; };
}; };
@ -47,6 +48,6 @@ in
}; };
# Add zsh to available shells # Add zsh to available shells
environment.shells = with pkgs; [ zsh ]; environment.shells = with pkgs; [zsh];
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./cli ./cli
./Gaming ./Gaming

View file

@ -8,23 +8,23 @@
# Options: # Options:
# - enable → Enable C compiler toolchain # - enable → Enable C compiler toolchain
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.c-compiler;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.c-compiler;
in {
options.nyx-module.system.c-compiler = { options.nyx-module.system.c-compiler = {
enable = lib.mkEnableOption "Enable C compiler (system module)"; enable = lib.mkEnableOption "Enable C compiler (system module)";
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gcc # C & C++ gcc # C & C++
clang # alt C/C++ clang # alt C/C++
mono # C# mono # C#
]; ];
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./c-compiler.nix ./c-compiler.nix
./go.nix ./go.nix

View file

@ -6,13 +6,14 @@
# Options: # Options:
# - enable → Enable Go system module # - enable → Enable Go system module
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.go;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.go;
in {
options.nyx-module.system.go = { options.nyx-module.system.go = {
enable = lib.mkEnableOption "Enable Go (system module)"; enable = lib.mkEnableOption "Enable Go (system module)";
}; };

View file

@ -7,13 +7,14 @@
# Options: # Options:
# - enable → Enable Lua system module # - enable → Enable Lua system module
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.lua;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.lua;
in {
options.nyx-module.system.lua = { options.nyx-module.system.lua = {
enable = lib.mkEnableOption "Enable Lua (system module)"; enable = lib.mkEnableOption "Enable Lua (system module)";
}; };

View file

@ -7,13 +7,14 @@
# Options: # Options:
# - enable → Enable Python system module # - enable → Enable Python system module
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.python;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.python;
in {
options.nyx-module.system.python = { options.nyx-module.system.python = {
enable = lib.mkEnableOption "Enable Python (system module)"; enable = lib.mkEnableOption "Enable Python (system module)";
}; };

View file

@ -13,13 +13,14 @@
# nyx-module.system.ruby.enable = true; # nyx-module.system.ruby.enable = true;
# nyx-module.system.ruby.bundler = false; # disable Bundler explicitly # nyx-module.system.ruby.bundler = false; # disable Bundler explicitly
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.ruby;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.ruby;
in {
options.nyx-module.system.ruby = { options.nyx-module.system.ruby = {
enable = lib.mkEnableOption "Enable Ruby (system module)"; enable = lib.mkEnableOption "Enable Ruby (system module)";
@ -35,8 +36,7 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
environment.systemPackages = environment.systemPackages = with pkgs;
with pkgs;
[ [
ruby ruby
jruby jruby

View file

@ -7,13 +7,14 @@
# Options: # Options:
# - enable → Enable Rust system module # - enable → Enable Rust system module
# #
{ config, lib, pkgs, ... }:
let
cfg = config.nyx-module.system.rust;
in
{ {
config,
lib,
pkgs,
...
}: let
cfg = config.nyx-module.system.rust;
in {
options.nyx-module.system.rust = { options.nyx-module.system.rust = {
enable = lib.mkEnableOption "Enable Rust (system module)"; enable = lib.mkEnableOption "Enable Rust (system module)";
}; };

View file

@ -41,17 +41,17 @@ with lib; let
# Resolve the user home safely even if the user isn't declared yet. # Resolve the user home safely even if the user isn't declared yet.
userHome = lib.attrByPath ["users" "users" cfg.user "home"] "/home/${cfg.user}" config; userHome = lib.attrByPath ["users" "users" cfg.user "home"] "/home/${cfg.user}" config;
# Only generate passwd file if enabled, otherwise null # Only generate passwd file if enabled, otherwise null
generatedPasswdFile = generatedPasswdFile =
if cfg.enable then if cfg.enable
then
pkgs.runCommand "tigervnc-passwd" { pkgs.runCommand "tigervnc-passwd" {
buildInputs = [ pkgs.tigervnc ]; buildInputs = [pkgs.tigervnc];
} '' } ''
mkdir -p $out mkdir -p $out
echo -n "${cfg.password}" | vncpasswd -f > $out/passwd echo -n "${cfg.password}" | vncpasswd -f > $out/passwd
'' ''
else else null;
null;
in { in {
options.nyx-module.system.service.vnc = { options.nyx-module.system.service.vnc = {
enable = mkEnableOption "Enable a TigerVNC multi-session server."; enable = mkEnableOption "Enable a TigerVNC multi-session server.";
@ -250,4 +250,3 @@ in {
]; ];
}; };
} }

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
./Application ./Application
./Programming-Tools ./Programming-Tools

View file

@ -10,25 +10,28 @@
}; };
}; };
outputs = { self, nixpkgs, home-manager, ... }: outputs = {
let self,
system = "x86_64-linux"; nixpkgs,
pkgs = import nixpkgs { inherit system; }; home-manager,
in ...
{ }: let
################################################################ system = "x86_64-linux";
# NixOS Modules pkgs = import nixpkgs {inherit system;};
################################################################ in {
nixosModules = { ################################################################
default = import ./Modules/System; # NixOS Modules
hardware = import ./Modules/Hardware; ################################################################
}; nixosModules = {
default = import ./Modules/System;
################################################################ hardware = import ./Modules/Hardware;
# Home Manager Modules
################################################################
homeManagerModules = {
default = import ./Modules/Home;
};
}; };
################################################################
# Home Manager Modules
################################################################
homeManagerModules = {
default = import ./Modules/Home;
};
};
} }

View file

@ -1,6 +1,10 @@
{ config, nixDirectory, pkgs, inputs, ... }:
{ {
config,
nixDirectory,
pkgs,
inputs,
...
}: {
################################################################ ################################################################
# Module Imports # Module Imports
################################################################ ################################################################
@ -12,16 +16,15 @@
# Nyx Modules # Nyx Modules
################################################################ ################################################################
nyx-module.home = { nyx-module.home = {
################################################################ ################################################################
# Web Browsers # Web Browsers
################################################################ ################################################################
brave = { brave = {
enable = true; enable = true;
extensions = { extensions = {
enable = true; enable = true;
standard = true; # uBlock, Proton Pass, Proton VPN standard = true; # uBlock, Proton Pass, Proton VPN
extra = []; # Additional extension IDs extra = []; # Additional extension IDs
}; };
}; };
@ -29,13 +32,13 @@
# Messaging # Messaging
################################################################ ################################################################
signal-desktop.enable = true; signal-desktop.enable = true;
vesktop.enable = true; vesktop.enable = true;
zoom.enable = false; zoom.enable = false;
################################################################ ################################################################
# Remote Support # Remote Support
################################################################ ################################################################
rustdesk.enable = false; rustdesk.enable = false;
################################################################ ################################################################
# Development # Development
@ -43,9 +46,9 @@
vscodium = { vscodium = {
enable = true; enable = true;
extensions = { extensions = {
enable = true; enable = true;
standard = true; standard = true;
extra = []; extra = [];
}; };
}; };
@ -53,35 +56,35 @@
# Gaming # Gaming
################################################################ ################################################################
classic-game-collection.enable = true; classic-game-collection.enable = true;
prismlauncher.enable = true; prismlauncher.enable = true;
################################################################ ################################################################
# Audio / Visual Utilities # Audio / Visual Utilities
################################################################ ################################################################
cava.enable = false; cava.enable = false;
spotify.enable = true; spotify.enable = true;
camera.enable = true; camera.enable = true;
image-viewer = { image-viewer = {
enable = true; enable = true;
package = pkgs.gwenview; package = pkgs.gwenview;
}; };
krita.enable = true; krita.enable = true;
kdenlive.enable = true; kdenlive.enable = true;
video-player = { video-player = {
enable = true; enable = true;
packages = [ pkgs.vlc pkgs.mpv ]; packages = [pkgs.vlc pkgs.mpv];
}; };
################################################################ ################################################################
# Office # Office
################################################################ ################################################################
obsidian.enable = true; obsidian.enable = true;
libreoffice.enable = true; libreoffice.enable = true;
pdf-viewer.enable = true; pdf-viewer.enable = true;
printer.enable = true; printer.enable = true;
thunderbird.enable = true; thunderbird.enable = true;
################################################################ ################################################################
@ -94,7 +97,7 @@
################################################################ ################################################################
cli-tools = { cli-tools = {
enable = true; enable = true;
extra = [ pkgs.ripgrep pkgs.htop ]; extra = [pkgs.ripgrep pkgs.htop];
}; };
zsh.enable = true; zsh.enable = true;
@ -103,22 +106,21 @@
# Webapps # Webapps
################################################################ ################################################################
private-webapps = { private-webapps = {
enable = true; enable = true;
browser = pkgs.chromium; browser = pkgs.chromium;
whatsapp.enable = true; whatsapp.enable = true;
}; };
work-webapps = { work-webapps = {
enable = true; enable = true;
browser = pkgs.chromium; browser = pkgs.chromium;
slack.enable = false; slack.enable = false;
teams.enable = false; teams.enable = false;
outlook.enable = true; outlook.enable = true;
entra.enable = false; entra.enable = false;
}; };
}; };
# note this is not all Nyx-Module can do. # note this is not all Nyx-Module can do.
# other home.nix configurations
# other home.nix configurations
} }