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 = {
enable = lib.mkEnableOption "Enable the system Bluetooth module";
};
@ -17,6 +19,6 @@ in
# Ensure firmware is available (needed for devices like Intel AX200)
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 = [
./bluetooth.nix
];

View file

@ -10,16 +10,18 @@
# - Known Issues:
# - 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 = {
enable = lib.mkEnableOption "Enable Custom Surface Pro (Kaby Lake) kernel module";
kernelVersion = lib.mkOption {
type = lib.types.enum [ "stable" "longtime" ];
type = lib.types.enum ["stable" "longtime"];
default = "stable";
description = "Choose which kernel version nixos-hardware will build for Surface Pro.";
};
@ -38,13 +40,12 @@ in
}
];
# Pick kernel version for Surface hardware support
hardware.microsoft-surface.kernelVersion = cfg.kernelVersion;
# boot.kernelPackages = pkgs.linuxPackages_6_6; # normally set by nixos-hardware
# Extra kernel modules
boot.kernelModules = [ "hid-microsoft" "battery" "ac" ];
boot.kernelModules = ["hid-microsoft" "battery" "ac"];
hardware.enableAllFirmware = true;
# Initrd modules — required for Surface hardware to function

View file

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

View file

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

View file

@ -14,13 +14,14 @@
# - Default extensions include uBlock Origin, Proton Pass, Proton VPN
# - 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 = {
enable = lib.mkEnableOption "Enable Brave (home module)";
@ -30,7 +31,7 @@ in
extra = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
example = [ "abcdefghijklmnop" "qrstuvwxyz123456" ];
example = ["abcdefghijklmnop" "qrstuvwxyz123456"];
description = "List of additional Brave extension IDs to install.";
};
};
@ -43,11 +44,11 @@ in
extensions = lib.optionals cfg.extensions.enable (
(lib.optionals cfg.extensions.standard [
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # uBlock Origin
{ id = "ghmbeldphafepmbegfdlkpapadhbakde"; } # Proton Pass
{ id = "jplgfhpmjnbigmhklmmbgecoobifkmpa"; } # Proton VPN
]) ++
(map (id: { inherit id; }) cfg.extensions.extra)
{id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} # uBlock Origin
{id = "ghmbeldphafepmbegfdlkpapadhbakde";} # Proton Pass
{id = "jplgfhpmjnbigmhklmmbgecoobifkmpa";} # Proton VPN
])
++ (map (id: {inherit id;}) cfg.extensions.extra)
);
commandLineArgs = [

View file

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

View file

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

View file

@ -7,13 +7,14 @@
# - enable → Enable 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 = {
enable = lib.mkEnableOption "Enable signal-desktop (home) module";
@ -25,6 +26,6 @@ in
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
home.packages = [cfg.package];
};
}

View file

@ -7,13 +7,14 @@
# - enable → Enable Vesktop client
# - 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 = {
enable = lib.mkEnableOption "Enable vesktop (home) module";
@ -25,6 +26,6 @@ in
};
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 = [
./rustdesk.nix
];

View file

@ -10,13 +10,14 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable rustdesk (home) module";
@ -32,6 +33,6 @@ in
};
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 = [
./Messaging
./Remote-Support

View file

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

View file

@ -13,14 +13,14 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable VSCodium with extensions";
@ -32,7 +32,7 @@ in
extra = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [];
example = [ pkgs.vscode-extensions.ms-python.python ];
example = [pkgs.vscode-extensions.ms-python.python];
description = "List of extra VSCodium extensions to install.";
};
};
@ -43,8 +43,7 @@ in
enable = true;
package = pkgs.vscodium;
profiles.default.extensions =
lib.optionals cfg.extensions.enable (
profiles.default.extensions = lib.optionals cfg.extensions.enable (
(lib.optionals cfg.extensions.standard (with pkgs.vscode-extensions; [
catppuccin.catppuccin-vsc
jnoortheen.nix-ide

View file

@ -15,13 +15,14 @@
# Options:
# - 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 = {
enable = lib.mkEnableOption "Enable the Classic Game Collection (home module)";
};

View file

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

View file

@ -14,13 +14,14 @@
# - Installed via home.packages
# - 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 = {
enable = lib.mkEnableOption "Enable PrismLauncher (Minecraft launcher)";
@ -28,16 +29,16 @@ in
jdks = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [ pkgs.jdk17 ];
example = [ pkgs.jdk8 pkgs.jdk17 pkgs.jdk21 ];
default = [pkgs.jdk17];
example = [pkgs.jdk8 pkgs.jdk17 pkgs.jdk21];
description = "List of Java runtimes to make available for PrismLauncher.";
};
};
config = lib.mkIf cfg.enable {
home.packages =
[ pkgs.prismlauncher ]
++ lib.optionals cfg.includeFfmpeg [ pkgs.ffmpeg ]
[pkgs.prismlauncher]
++ lib.optionals cfg.includeFfmpeg [pkgs.ffmpeg]
++ cfg.jdks;
};
}

View file

@ -20,13 +20,14 @@
# settings.general.framerate = 120;
# 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 = {
enable = lib.mkEnableOption "Enable CAVA (home) module";
@ -73,11 +74,9 @@ in
enable = true;
package = pkgs.cava;
settings = lib.mkIf (cfg.configText == null) cfg.settings;
};
xdg.configFile."cava/config" = lib.mkIf (cfg.configText != null) {
text = cfg.configText;
};

View file

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

View file

@ -7,13 +7,14 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable Spotify (home) module";
@ -30,6 +31,6 @@ in
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
home.packages = [cfg.package];
};
}

View file

@ -7,13 +7,14 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable camera (home) module";

View file

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

View file

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

View file

@ -6,13 +6,14 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable image viewer (home module)";
@ -25,6 +26,6 @@ in
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
home.packages = [cfg.package];
};
}

View file

@ -6,13 +6,14 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable Krita (home) module";
};

View file

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

View file

@ -9,13 +9,14 @@
# * pkgs.kdePackages.kdenlive (preferred, modern KDE split)
# * 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 = {
enable = lib.mkEnableOption "Enable Kdenlive (home) module";
};

View file

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

View file

@ -9,13 +9,14 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable Zoom (home) module";
@ -27,6 +28,6 @@ in
};
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 = [
./Audio
./Capture

View file

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

View file

@ -7,18 +7,19 @@
# - Consider adding theming support later
# (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 = {
enable = lib.mkEnableOption "Enable Obsidian (home module)";
};
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 = [
./libreoffice.nix
./pdf-reader.nix

View file

@ -6,18 +6,19 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable LibreOffice (home module)";
};
config = lib.mkIf cfg.enable {
home.packages = [ pkgs.libreoffice ];
home.packages = [pkgs.libreoffice];
};
}

View file

@ -6,13 +6,14 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable PDF (home module)";
@ -25,6 +26,6 @@ in
};
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)
# - 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 = {
enable = lib.mkEnableOption "Enable printer GUI (home module)";
@ -26,6 +27,6 @@ in
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
home.packages = [cfg.package];
};
}

View file

@ -6,18 +6,19 @@
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable Thunderbird (home module)";
};
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 = [
./Knowledge
./Productivity

View file

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

View file

@ -8,14 +8,14 @@
#
# Notes:
# - 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 = {
enable = lib.mkEnableOption "Enable ProtonVPN (home module)";
};

View file

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

View file

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

View file

@ -7,27 +7,28 @@
# Options:
# - enable → Enable CLI tools collection
# - 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 = {
enable = lib.mkEnableOption "Enable CLI tools (home module)";
extra = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [];
example = [ pkgs.ripgrep pkgs.htop ];
example = [pkgs.ripgrep pkgs.htop];
description = "Extra CLI tools to install in addition to the defaults.";
};
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
home.packages = with pkgs;
[
fastfetch
hyfetch
bat
@ -35,6 +36,7 @@ in
tree
lsd
tmux
] ++ cfg.extra;
]
++ cfg.extra;
};
}

View file

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

View file

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

View file

@ -6,13 +6,14 @@
#
# Options:
# - 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 = {
enable = lib.mkEnableOption "Enable Zsh (home module)";
};

View file

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

View file

@ -12,13 +12,14 @@
# Notes:
# - Uses --app mode to create minimal browser windows
# - 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 = {
enable = lib.mkEnableOption "Enable private webapps (home module)";

View file

@ -18,13 +18,14 @@
# Notes:
# - Uses --app mode for minimal windows (like PWAs)
# - 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 = {
enable = lib.mkEnableOption "Enable work webapps (home module)";

View file

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

View file

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

View file

@ -14,13 +14,14 @@
# - openFirewall.dedicatedServer → Open firewall for Source Dedicated Server
# - 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 = {
enable = lib.mkEnableOption "Enable Steam (system module)";

View file

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

View file

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

View file

@ -8,12 +8,14 @@
# Options:
# - 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 = {
enable = lib.mkEnableOption "Enable Flatpak (system module)";
};
@ -31,6 +33,6 @@ in
};
# 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
# - 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 = {
enable = lib.mkEnableOption "Enable Wireshark (system module)";
@ -27,7 +28,7 @@ in
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ pkgs.wireshark ];
environment.systemPackages = [pkgs.wireshark];
programs.wireshark = {
enable = true; # Installs wireshark + sets dumpcap caps
@ -35,7 +36,7 @@ in
};
# Add user to wireshark group
users.users.${cfg.username}.extraGroups = [ "wireshark" ];
users.users.${cfg.username}.extraGroups = ["wireshark"];
assertions = [
{

View file

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

View file

@ -15,13 +15,14 @@
# Notes:
# - Rootless mode is disabled by default
# - 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 = {
enable = lib.mkEnableOption "Enable Docker (system module)";
@ -47,7 +48,7 @@ in
rootless.enable = cfg.rootless;
};
users.users.${cfg.username}.extraGroups = [ "docker" ];
users.users.${cfg.username}.extraGroups = ["docker"];
environment.systemPackages = with pkgs; [
docker
@ -55,8 +56,7 @@ in
];
# 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 = [
{

View file

@ -11,13 +11,14 @@
# Notes:
# - By default, password authentication is disabled for better security
# - 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 = {
enable = lib.mkEnableOption "Enable OpenSSH (system module)";

View file

@ -13,13 +13,14 @@
# - Adds podman + podman-compose to system packages
# - 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 = {
enable = lib.mkEnableOption "Enable Podman (system module)";
@ -33,7 +34,7 @@ in
config = lib.mkIf cfg.enable {
virtualisation.podman.enable = true;
users.users.${cfg.username}.extraGroups = [ "podman" ];
users.users.${cfg.username}.extraGroups = ["podman"];
environment.systemPackages = with pkgs; [
podman
@ -41,7 +42,7 @@ in
];
# Optional: enable Podman socket activation
services.dbus.packages = [ pkgs.podman ];
services.dbus.packages = [pkgs.podman];
assertions = [
{

View file

@ -15,13 +15,14 @@
# - virt-manager GUI is enabled automatically
# - 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 = {
enable = lib.mkEnableOption "Enable VM (system module)";
@ -49,10 +50,10 @@ in
};
# Add user to groups
users.users.${cfg.username}.extraGroups = [ "libvirtd" "kvm" ];
users.users.${cfg.username}.extraGroups = ["libvirtd" "kvm"];
# Enable kernel modules for virtualization
boot.kernelModules = [ "kvm" ];
boot.kernelModules = ["kvm"];
# Enable GUI management tool
programs.virt-manager.enable = true;

View file

@ -11,13 +11,14 @@
# - theme → oh-my-zsh theme (default: "xiong-chiamiov-plus")
# - 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 = {
enable = lib.mkEnableOption "Enable Zsh (system module)";
@ -31,7 +32,7 @@ in
plugins = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ "git" ];
default = ["git"];
description = "List of oh-my-zsh plugins to enable.";
};
};
@ -47,6 +48,6 @@ in
};
# 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 = [
./cli
./Gaming

View file

@ -8,13 +8,14 @@
# Options:
# - 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 = {
enable = lib.mkEnableOption "Enable C compiler (system module)";
};
@ -27,4 +28,3 @@ in
];
};
}

View file

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

View file

@ -6,13 +6,14 @@
# Options:
# - 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 = {
enable = lib.mkEnableOption "Enable Go (system module)";
};

View file

@ -7,13 +7,14 @@
# Options:
# - 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 = {
enable = lib.mkEnableOption "Enable Lua (system module)";
};

View file

@ -7,13 +7,14 @@
# Options:
# - 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 = {
enable = lib.mkEnableOption "Enable Python (system module)";
};

View file

@ -13,13 +13,14 @@
# nyx-module.system.ruby.enable = true;
# 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 = {
enable = lib.mkEnableOption "Enable Ruby (system module)";
@ -35,8 +36,7 @@ in
};
config = lib.mkIf cfg.enable {
environment.systemPackages =
with pkgs;
environment.systemPackages = with pkgs;
[
ruby
jruby

View file

@ -7,13 +7,14 @@
# Options:
# - 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 = {
enable = lib.mkEnableOption "Enable Rust (system module)";
};

View file

@ -43,15 +43,15 @@ with lib; let
# Only generate passwd file if enabled, otherwise null
generatedPasswdFile =
if cfg.enable then
if cfg.enable
then
pkgs.runCommand "tigervnc-passwd" {
buildInputs = [ pkgs.tigervnc ];
buildInputs = [pkgs.tigervnc];
} ''
mkdir -p $out
echo -n "${cfg.password}" | vncpasswd -f > $out/passwd
''
else
null;
else null;
in {
options.nyx-module.system.service.vnc = {
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 = [
./Application
./Programming-Tools

View file

@ -10,12 +10,15 @@
};
};
outputs = { self, nixpkgs, home-manager, ... }:
let
outputs = {
self,
nixpkgs,
home-manager,
...
}: let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
in
{
pkgs = import nixpkgs {inherit system;};
in {
################################################################
# NixOS Modules
################################################################

View file

@ -1,6 +1,10 @@
{ config, nixDirectory, pkgs, inputs, ... }:
{
config,
nixDirectory,
pkgs,
inputs,
...
}: {
################################################################
# Module Imports
################################################################
@ -12,7 +16,6 @@
# Nyx Modules
################################################################
nyx-module.home = {
################################################################
# Web Browsers
################################################################
@ -72,7 +75,7 @@
video-player = {
enable = true;
packages = [ pkgs.vlc pkgs.mpv ];
packages = [pkgs.vlc pkgs.mpv];
};
################################################################
@ -94,7 +97,7 @@
################################################################
cli-tools = {
enable = true;
extra = [ pkgs.ripgrep pkgs.htop ];
extra = [pkgs.ripgrep pkgs.htop];
};
zsh.enable = true;
@ -117,8 +120,7 @@
entra.enable = false;
};
};
# note this is not all Nyx-Module can do.
# other home.nix configurations
# note this is not all Nyx-Module can do.
# other home.nix configurations
}