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 = {
|
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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./bluetooth.nix
|
./bluetooth.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./custom-kernel-surfacepro-kbl.nix
|
./custom-kernel-surfacepro-kbl.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./Bluetooth
|
./Bluetooth
|
||||||
./Surface
|
./Surface
|
||||||
|
|
|
||||||
|
|
@ -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 = [
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./brave.nix
|
./brave.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./signal-desktop.nix
|
./signal-desktop.nix
|
||||||
./vesktop.nix
|
./vesktop.nix
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./rustdesk.nix
|
./rustdesk.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./Messaging
|
./Messaging
|
||||||
./Remote-Support
|
./Remote-Support
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./vscodium.nix
|
./vscodium.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -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
|
);
|
||||||
);
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./classic-game-collection.nix
|
./classic-game-collection.nix
|
||||||
./prismlauncher.nix
|
./prismlauncher.nix
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./cava.nix
|
./cava.nix
|
||||||
./spotify.nix
|
./spotify.nix
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./camera.nix
|
./camera.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./image-viewer.nix
|
./image-viewer.nix
|
||||||
./krita.nix
|
./krita.nix
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./kdenlive.nix
|
./kdenlive.nix
|
||||||
./video-player.nix
|
./video-player.nix
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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 ];
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./Audio
|
./Audio
|
||||||
./Capture
|
./Capture
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./obsidian.nix
|
./obsidian.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./libreoffice.nix
|
./libreoffice.nix
|
||||||
./pdf-reader.nix
|
./pdf-reader.nix
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./Knowledge
|
./Knowledge
|
||||||
./Productivity
|
./Productivity
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./protonvpn.nix
|
./protonvpn.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./Browsers
|
./Browsers
|
||||||
./Communication
|
./Communication
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./tools.nix
|
./tools.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./cli-tools
|
./cli-tools
|
||||||
./zsh
|
./zsh
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./zsh.nix
|
./zsh.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./private-webapps.nix
|
./private-webapps.nix
|
||||||
./work-webapps.nix
|
./work-webapps.nix
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./GUI-Apps
|
./GUI-Apps
|
||||||
./Shell
|
./Shell
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./steam.nix
|
./steam.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./Steam
|
./Steam
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
./wireshark.nix
|
./wireshark.nix
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./docker.nix
|
./docker.nix
|
||||||
./openssh.nix
|
./openssh.nix
|
||||||
|
|
|
||||||
|
|
@ -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 = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 != "";
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./cli
|
./cli
|
||||||
./Gaming
|
./Gaming
|
||||||
|
|
|
||||||
|
|
@ -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#
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./c-compiler.nix
|
./c-compiler.nix
|
||||||
./go.nix
|
./go.nix
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./Application
|
./Application
|
||||||
./Programming-Tools
|
./Programming-Tools
|
||||||
|
|
|
||||||
43
flake.nix
43
flake.nix
|
|
@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue