chore: pretty up with alejandra
This commit is contained in:
parent
7bbda6140f
commit
37b85877bb
75 changed files with 584 additions and 452 deletions
|
|
@ -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";
|
||||
};
|
||||
|
|
@ -11,12 +13,12 @@ in
|
|||
config = lib.mkIf cfg.enable {
|
||||
# Enable Bluetooth support
|
||||
hardware.bluetooth = {
|
||||
enable = true; # Enable Bluetooth service
|
||||
powerOnBoot = true; # Power up the controller at boot
|
||||
enable = true; # Enable Bluetooth service
|
||||
powerOnBoot = true; # Power up the controller at boot
|
||||
};
|
||||
|
||||
# Ensure firmware is available (needed for devices like Intel AX200)
|
||||
hardware.enableAllFirmware = true;
|
||||
hardware.firmware = [ pkgs.linux-firmware ];
|
||||
hardware.firmware = [pkgs.linux-firmware];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./bluetooth.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -4,22 +4,24 @@
|
|||
# - inputs.nixos-hardware.nixosModules.microsoft-surface-pro-intel
|
||||
#
|
||||
# Notes:
|
||||
# - Estimated kernel build time:
|
||||
# - Estimated kernel build time:
|
||||
# ~4h30m using Kernel 6.15.6
|
||||
# ~4h00m using Kernel 6.15.9
|
||||
# ~4h00m using Kernel 6.15.9
|
||||
# - 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.";
|
||||
};
|
||||
|
|
@ -37,14 +39,13 @@ 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
|
||||
|
|
@ -66,7 +67,7 @@ in
|
|||
#for camera
|
||||
libcamera
|
||||
|
||||
# for Battery
|
||||
# for Battery
|
||||
tlp
|
||||
upower
|
||||
acpi
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./custom-kernel-surfacepro-kbl.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./Bluetooth
|
||||
./Surface
|
||||
|
|
|
|||
|
|
@ -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 = [
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./brave.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./signal-desktop.nix
|
||||
./vesktop.nix
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./rustdesk.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -10,20 +10,21 @@
|
|||
# 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";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.rustdesk;
|
||||
description = ''
|
||||
description = ''
|
||||
Package to install for RustDesk.
|
||||
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 {
|
||||
home.packages = [ cfg.package ];
|
||||
home.packages = [cfg.package];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./Messaging
|
||||
./Remote-Support
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./vscodium.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -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,16 +43,15 @@ in
|
|||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
|
||||
profiles.default.extensions =
|
||||
lib.optionals cfg.extensions.enable (
|
||||
(lib.optionals cfg.extensions.standard (with pkgs.vscode-extensions; [
|
||||
catppuccin.catppuccin-vsc
|
||||
jnoortheen.nix-ide
|
||||
ms-azuretools.vscode-docker
|
||||
# ms-python.python # currently broken (pygls failure)
|
||||
]))
|
||||
++ cfg.extensions.extra
|
||||
);
|
||||
profiles.default.extensions = lib.optionals cfg.extensions.enable (
|
||||
(lib.optionals cfg.extensions.standard (with pkgs.vscode-extensions; [
|
||||
catppuccin.catppuccin-vsc
|
||||
jnoortheen.nix-ide
|
||||
ms-azuretools.vscode-docker
|
||||
# ms-python.python # currently broken (pygls failure)
|
||||
]))
|
||||
++ cfg.extensions.extra
|
||||
);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./classic-game-collection.nix
|
||||
./prismlauncher.nix
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
||||
|
|
@ -42,7 +43,7 @@ in
|
|||
};
|
||||
};
|
||||
description = ''
|
||||
Declarative CAVA settings, written to `~/.config/cava/config`.
|
||||
Declarative CAVA settings, written to `~/.config/cava/config`.
|
||||
Ignored if `configText` is set.
|
||||
'';
|
||||
example = {
|
||||
|
|
@ -56,7 +57,7 @@ in
|
|||
type = lib.types.nullOr lib.types.lines;
|
||||
default = null;
|
||||
description = ''
|
||||
Raw CAVA configuration file contents.
|
||||
Raw CAVA configuration file contents.
|
||||
If set, overrides `settings` and is written directly to `~/.config/cava/config`.
|
||||
'';
|
||||
example = ''
|
||||
|
|
@ -64,7 +65,7 @@ in
|
|||
framerate = 120
|
||||
[input]
|
||||
method = pulse
|
||||
'';
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./cava.nix
|
||||
./spotify.nix
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./camera.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./image-viewer.nix
|
||||
./krita.nix
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./kdenlive.nix
|
||||
./video-player.nix
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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 ];
|
||||
# };
|
||||
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./Audio
|
||||
./Capture
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./obsidian.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./libreoffice.nix
|
||||
./pdf-reader.nix
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./Knowledge
|
||||
./Productivity
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./protonvpn.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./Browsers
|
||||
./Communication
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./tools.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -7,34 +7,36 @@
|
|||
# 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; [
|
||||
fastfetch
|
||||
hyfetch
|
||||
bat
|
||||
fzf
|
||||
tree
|
||||
lsd
|
||||
tmux
|
||||
] ++ cfg.extra;
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
fastfetch
|
||||
hyfetch
|
||||
bat
|
||||
fzf
|
||||
tree
|
||||
lsd
|
||||
tmux
|
||||
]
|
||||
++ cfg.extra;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./cli-tools
|
||||
./zsh
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./zsh.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./private-webapps.nix
|
||||
./work-webapps.nix
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./GUI-Apps
|
||||
./Shell
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./steam.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./Steam
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./flatpak.nix
|
||||
./wireshark.nix
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
};
|
||||
|
|
@ -25,12 +27,12 @@ in
|
|||
xdg.portal = {
|
||||
enable = true;
|
||||
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
|
||||
];
|
||||
};
|
||||
|
||||
# Optional explicit installation (not strictly needed)
|
||||
environment.systemPackages = [ pkgs.flatpak ];
|
||||
environment.systemPackages = [pkgs.flatpak];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,15 +28,15 @@ in
|
|||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.wireshark ];
|
||||
environment.systemPackages = [pkgs.wireshark];
|
||||
|
||||
programs.wireshark = {
|
||||
enable = true; # Installs wireshark + sets dumpcap caps
|
||||
enable = true; # Installs wireshark + sets dumpcap caps
|
||||
package = pkgs.wireshark;
|
||||
};
|
||||
|
||||
# Add user to wireshark group
|
||||
users.users.${cfg.username}.extraGroups = [ "wireshark" ];
|
||||
users.users.${cfg.username}.extraGroups = ["wireshark"];
|
||||
|
||||
assertions = [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./docker.nix
|
||||
./openssh.nix
|
||||
|
|
|
|||
|
|
@ -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 = [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
|
||||
|
|
|
|||
|
|
@ -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,8 +42,8 @@ in
|
|||
];
|
||||
|
||||
# Optional: enable Podman socket activation
|
||||
services.dbus.packages = [ pkgs.podman ];
|
||||
|
||||
services.dbus.packages = [pkgs.podman];
|
||||
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.username != "";
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./cli
|
||||
./Gaming
|
||||
|
|
|
|||
|
|
@ -8,23 +8,23 @@
|
|||
# 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)";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
gcc # C & C++
|
||||
clang # alt C/C++
|
||||
mono # C#
|
||||
gcc # C & C++
|
||||
clang # alt C/C++
|
||||
mono # C#
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./c-compiler.nix
|
||||
./go.nix
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -41,17 +41,17 @@ with lib; let
|
|||
# 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;
|
||||
|
||||
# Only generate passwd file if enabled, otherwise null
|
||||
# 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 {
|
|||
];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./Application
|
||||
./Programming-Tools
|
||||
|
|
|
|||
43
flake.nix
43
flake.nix
|
|
@ -10,25 +10,28 @@
|
|||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in
|
||||
{
|
||||
################################################################
|
||||
# NixOS Modules
|
||||
################################################################
|
||||
nixosModules = {
|
||||
default = import ./Modules/System;
|
||||
hardware = import ./Modules/Hardware;
|
||||
};
|
||||
|
||||
################################################################
|
||||
# Home Manager Modules
|
||||
################################################################
|
||||
homeManagerModules = {
|
||||
default = import ./Modules/Home;
|
||||
};
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
...
|
||||
}: let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {inherit system;};
|
||||
in {
|
||||
################################################################
|
||||
# NixOS Modules
|
||||
################################################################
|
||||
nixosModules = {
|
||||
default = import ./Modules/System;
|
||||
hardware = import ./Modules/Hardware;
|
||||
};
|
||||
|
||||
################################################################
|
||||
# Home Manager Modules
|
||||
################################################################
|
||||
homeManagerModules = {
|
||||
default = import ./Modules/Home;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
{ config, nixDirectory, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
nixDirectory,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
################################################################
|
||||
# Module Imports
|
||||
################################################################
|
||||
|
|
@ -12,16 +16,15 @@
|
|||
# Nyx Modules
|
||||
################################################################
|
||||
nyx-module.home = {
|
||||
|
||||
################################################################
|
||||
# Web Browsers
|
||||
################################################################
|
||||
brave = {
|
||||
enable = true;
|
||||
extensions = {
|
||||
enable = true;
|
||||
standard = true; # uBlock, Proton Pass, Proton VPN
|
||||
extra = []; # Additional extension IDs
|
||||
enable = true;
|
||||
standard = true; # uBlock, Proton Pass, Proton VPN
|
||||
extra = []; # Additional extension IDs
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -29,13 +32,13 @@
|
|||
# Messaging
|
||||
################################################################
|
||||
signal-desktop.enable = true;
|
||||
vesktop.enable = true;
|
||||
zoom.enable = false;
|
||||
vesktop.enable = true;
|
||||
zoom.enable = false;
|
||||
|
||||
################################################################
|
||||
# Remote Support
|
||||
################################################################
|
||||
rustdesk.enable = false;
|
||||
rustdesk.enable = false;
|
||||
|
||||
################################################################
|
||||
# Development
|
||||
|
|
@ -43,9 +46,9 @@
|
|||
vscodium = {
|
||||
enable = true;
|
||||
extensions = {
|
||||
enable = true;
|
||||
enable = true;
|
||||
standard = true;
|
||||
extra = [];
|
||||
extra = [];
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -53,35 +56,35 @@
|
|||
# Gaming
|
||||
################################################################
|
||||
classic-game-collection.enable = true;
|
||||
prismlauncher.enable = true;
|
||||
prismlauncher.enable = true;
|
||||
|
||||
################################################################
|
||||
# Audio / Visual Utilities
|
||||
################################################################
|
||||
cava.enable = false;
|
||||
spotify.enable = true;
|
||||
camera.enable = true;
|
||||
cava.enable = false;
|
||||
spotify.enable = true;
|
||||
camera.enable = true;
|
||||
|
||||
image-viewer = {
|
||||
enable = true;
|
||||
enable = true;
|
||||
package = pkgs.gwenview;
|
||||
};
|
||||
|
||||
krita.enable = true;
|
||||
kdenlive.enable = true;
|
||||
krita.enable = true;
|
||||
kdenlive.enable = true;
|
||||
|
||||
video-player = {
|
||||
enable = true;
|
||||
packages = [ pkgs.vlc pkgs.mpv ];
|
||||
enable = true;
|
||||
packages = [pkgs.vlc pkgs.mpv];
|
||||
};
|
||||
|
||||
################################################################
|
||||
# Office
|
||||
################################################################
|
||||
obsidian.enable = true;
|
||||
obsidian.enable = true;
|
||||
libreoffice.enable = true;
|
||||
pdf-viewer.enable = true;
|
||||
printer.enable = true;
|
||||
pdf-viewer.enable = true;
|
||||
printer.enable = true;
|
||||
thunderbird.enable = true;
|
||||
|
||||
################################################################
|
||||
|
|
@ -94,7 +97,7 @@
|
|||
################################################################
|
||||
cli-tools = {
|
||||
enable = true;
|
||||
extra = [ pkgs.ripgrep pkgs.htop ];
|
||||
extra = [pkgs.ripgrep pkgs.htop];
|
||||
};
|
||||
|
||||
zsh.enable = true;
|
||||
|
|
@ -103,22 +106,21 @@
|
|||
# Webapps
|
||||
################################################################
|
||||
private-webapps = {
|
||||
enable = true;
|
||||
browser = pkgs.chromium;
|
||||
enable = true;
|
||||
browser = pkgs.chromium;
|
||||
whatsapp.enable = true;
|
||||
};
|
||||
|
||||
work-webapps = {
|
||||
enable = true;
|
||||
browser = pkgs.chromium;
|
||||
slack.enable = false;
|
||||
teams.enable = false;
|
||||
outlook.enable = true;
|
||||
entra.enable = false;
|
||||
enable = true;
|
||||
browser = pkgs.chromium;
|
||||
slack.enable = false;
|
||||
teams.enable = false;
|
||||
outlook.enable = true;
|
||||
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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue