init
This commit is contained in:
commit
2278bffff9
77 changed files with 1174 additions and 0 deletions
20
Modules/Hardware/Bluetooth/bluetooth.nix
Normal file
20
Modules/Hardware/Bluetooth/bluetooth.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.bluetooth;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.bluetooth = {
|
||||
enable = lib.mkEnableOption "Enable bluetooth (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.bluetooth;
|
||||
description = "Package to install for bluetooth.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
7
Modules/Hardware/Bluetooth/default.nix
Normal file
7
Modules/Hardware/Bluetooth/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./bluetooth.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Hardware/Surface/Custom-Kernel.nix
Normal file
20
Modules/Hardware/Surface/Custom-Kernel.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.Custom-Kernel;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.Custom-Kernel = {
|
||||
enable = lib.mkEnableOption "Enable Custom-Kernel (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.Custom-Kernel;
|
||||
description = "Package to install for Custom-Kernel.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
7
Modules/Hardware/Surface/default.nix
Normal file
7
Modules/Hardware/Surface/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./Custom-Kernel.nix
|
||||
];
|
||||
}
|
||||
0
Modules/Hardware/Surface/thermal-conf.xml
Normal file
0
Modules/Hardware/Surface/thermal-conf.xml
Normal file
8
Modules/Hardware/default.nix
Normal file
8
Modules/Hardware/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./Bluetooth
|
||||
./Surface
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Browsers/brave.nix
Normal file
20
Modules/Home/GUI-Apps/Browsers/brave.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.brave;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.brave = {
|
||||
enable = lib.mkEnableOption "Enable brave (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.brave;
|
||||
description = "Package to install for brave.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
7
Modules/Home/GUI-Apps/Browsers/default.nix
Normal file
7
Modules/Home/GUI-Apps/Browsers/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./brave.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./signal-desktop.nix
|
||||
./vesktop.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
{ 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";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.signal-desktop;
|
||||
description = "Package to install for signal-desktop.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Communication/Messaging/vesktop.nix
Normal file
20
Modules/Home/GUI-Apps/Communication/Messaging/vesktop.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.vesktop;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.vesktop = {
|
||||
enable = lib.mkEnableOption "Enable vesktop (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.vesktop;
|
||||
description = "Package to install for vesktop.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
7
Modules/Home/GUI-Apps/Communication/Remote/default.nix
Normal file
7
Modules/Home/GUI-Apps/Communication/Remote/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./rustdesk.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Communication/Remote/rustdesk.nix
Normal file
20
Modules/Home/GUI-Apps/Communication/Remote/rustdesk.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ 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 = "Package to install for rustdesk.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
8
Modules/Home/GUI-Apps/Communication/default.nix
Normal file
8
Modules/Home/GUI-Apps/Communication/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./Messaging
|
||||
./Remote
|
||||
];
|
||||
}
|
||||
7
Modules/Home/GUI-Apps/Development/default.nix
Normal file
7
Modules/Home/GUI-Apps/Development/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./vscodium.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Development/vscodium.nix
Normal file
20
Modules/Home/GUI-Apps/Development/vscodium.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.vscodium;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.vscodium = {
|
||||
enable = lib.mkEnableOption "Enable vscodium (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.vscodium;
|
||||
description = "Package to install for vscodium.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Gaming/classic-game-collection.nix
Normal file
20
Modules/Home/GUI-Apps/Gaming/classic-game-collection.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.classic-game-collection;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.classic-game-collection = {
|
||||
enable = lib.mkEnableOption "Enable classic-game-collection (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.classic-game-collection;
|
||||
description = "Package to install for classic-game-collection.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
8
Modules/Home/GUI-Apps/Gaming/default.nix
Normal file
8
Modules/Home/GUI-Apps/Gaming/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./classic-game-collection.nix
|
||||
./prismlauncher.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Gaming/prismlauncher.nix
Normal file
20
Modules/Home/GUI-Apps/Gaming/prismlauncher.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.prismlauncher;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.prismlauncher = {
|
||||
enable = lib.mkEnableOption "Enable prismlauncher (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.prismlauncher;
|
||||
description = "Package to install for prismlauncher.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
7
Modules/Home/GUI-Apps/Multimedia/Audio/default.nix
Normal file
7
Modules/Home/GUI-Apps/Multimedia/Audio/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./spotify.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Multimedia/Audio/spotify.nix
Normal file
20
Modules/Home/GUI-Apps/Multimedia/Audio/spotify.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.spotify;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.spotify = {
|
||||
enable = lib.mkEnableOption "Enable spotify (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.spotify;
|
||||
description = "Package to install for spotify.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Multimedia/Capture/camera.nix
Normal file
20
Modules/Home/GUI-Apps/Multimedia/Capture/camera.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.camera;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.camera = {
|
||||
enable = lib.mkEnableOption "Enable camera (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.camera;
|
||||
description = "Package to install for camera.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
7
Modules/Home/GUI-Apps/Multimedia/Capture/default.nix
Normal file
7
Modules/Home/GUI-Apps/Multimedia/Capture/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./camera.nix
|
||||
];
|
||||
}
|
||||
7
Modules/Home/GUI-Apps/Multimedia/Graphics/default.nix
Normal file
7
Modules/Home/GUI-Apps/Multimedia/Graphics/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./krita.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Multimedia/Graphics/krita.nix
Normal file
20
Modules/Home/GUI-Apps/Multimedia/Graphics/krita.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.krita;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.krita = {
|
||||
enable = lib.mkEnableOption "Enable krita (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.krita;
|
||||
description = "Package to install for krita.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
8
Modules/Home/GUI-Apps/Multimedia/Video/default.nix
Normal file
8
Modules/Home/GUI-Apps/Multimedia/Video/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./kdenlive.nix
|
||||
./zoom.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Multimedia/Video/kdenlive.nix
Normal file
20
Modules/Home/GUI-Apps/Multimedia/Video/kdenlive.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.kdenlive;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.kdenlive = {
|
||||
enable = lib.mkEnableOption "Enable kdenlive (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.kdenlive;
|
||||
description = "Package to install for kdenlive.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Multimedia/Video/zoom.nix
Normal file
20
Modules/Home/GUI-Apps/Multimedia/Video/zoom.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.zoom;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.zoom = {
|
||||
enable = lib.mkEnableOption "Enable zoom (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.zoom;
|
||||
description = "Package to install for zoom.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
10
Modules/Home/GUI-Apps/Multimedia/default.nix
Normal file
10
Modules/Home/GUI-Apps/Multimedia/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./Audio
|
||||
./Capture
|
||||
./Graphics
|
||||
./Video
|
||||
];
|
||||
}
|
||||
7
Modules/Home/GUI-Apps/Office/Knowledge/default.nix
Normal file
7
Modules/Home/GUI-Apps/Office/Knowledge/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./obsidian.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Office/Knowledge/obsidian.nix
Normal file
20
Modules/Home/GUI-Apps/Office/Knowledge/obsidian.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.obsidian;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.obsidian = {
|
||||
enable = lib.mkEnableOption "Enable obsidian (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.obsidian;
|
||||
description = "Package to install for obsidian.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
8
Modules/Home/GUI-Apps/Office/Productivity/default.nix
Normal file
8
Modules/Home/GUI-Apps/Office/Productivity/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./office-apps.nix
|
||||
./printer-scan.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Office/Productivity/office-apps.nix
Normal file
20
Modules/Home/GUI-Apps/Office/Productivity/office-apps.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.office-apps;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.office-apps = {
|
||||
enable = lib.mkEnableOption "Enable office-apps (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.office-apps;
|
||||
description = "Package to install for office-apps.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/Office/Productivity/printer-scan.nix
Normal file
20
Modules/Home/GUI-Apps/Office/Productivity/printer-scan.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.printer-scan;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.printer-scan = {
|
||||
enable = lib.mkEnableOption "Enable printer-scan (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.printer-scan;
|
||||
description = "Package to install for printer-scan.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
8
Modules/Home/GUI-Apps/Office/default.nix
Normal file
8
Modules/Home/GUI-Apps/Office/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./Knowledge
|
||||
./Productivity
|
||||
];
|
||||
}
|
||||
7
Modules/Home/GUI-Apps/System-Tools/default.nix
Normal file
7
Modules/Home/GUI-Apps/System-Tools/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./standard-apps.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/System-Tools/standard-apps.nix
Normal file
20
Modules/Home/GUI-Apps/System-Tools/standard-apps.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.standard-apps;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.standard-apps = {
|
||||
enable = lib.mkEnableOption "Enable standard-apps (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.standard-apps;
|
||||
description = "Package to install for standard-apps.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
7
Modules/Home/GUI-Apps/VPN/default.nix
Normal file
7
Modules/Home/GUI-Apps/VPN/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./protonvpn.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/GUI-Apps/VPN/protonvpn.nix
Normal file
20
Modules/Home/GUI-Apps/VPN/protonvpn.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.protonvpn;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.protonvpn = {
|
||||
enable = lib.mkEnableOption "Enable protonvpn (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.protonvpn;
|
||||
description = "Package to install for protonvpn.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
14
Modules/Home/GUI-Apps/default.nix
Normal file
14
Modules/Home/GUI-Apps/default.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./Browsers
|
||||
./Communication
|
||||
./Development
|
||||
./Gaming
|
||||
./Multimedia
|
||||
./Office
|
||||
./System-Tools
|
||||
./VPN
|
||||
];
|
||||
}
|
||||
7
Modules/Home/Shell/cli-tools/default.nix
Normal file
7
Modules/Home/Shell/cli-tools/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./tools.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/Shell/cli-tools/tools.nix
Normal file
20
Modules/Home/Shell/cli-tools/tools.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.tools;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.tools = {
|
||||
enable = lib.mkEnableOption "Enable tools (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.tools;
|
||||
description = "Package to install for tools.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
8
Modules/Home/Shell/default.nix
Normal file
8
Modules/Home/Shell/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./cli-tools
|
||||
./zsh
|
||||
];
|
||||
}
|
||||
7
Modules/Home/Shell/zsh/default.nix
Normal file
7
Modules/Home/Shell/zsh/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./zsh.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/Shell/zsh/zsh.nix
Normal file
20
Modules/Home/Shell/zsh/zsh.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.home.zsh;
|
||||
in
|
||||
{
|
||||
options.nyx-module.home.zsh = {
|
||||
enable = lib.mkEnableOption "Enable zsh (home) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.zsh;
|
||||
description = "Package to install for zsh.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
8
Modules/Home/Webapps/default.nix
Normal file
8
Modules/Home/Webapps/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./private-webapps.nix
|
||||
./work-webapps.nix
|
||||
];
|
||||
}
|
||||
20
Modules/Home/Webapps/private-webapps.nix
Normal file
20
Modules/Home/Webapps/private-webapps.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ 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";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.private-webapps;
|
||||
description = "Package to install for private-webapps.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/Home/Webapps/work-webapps.nix
Normal file
20
Modules/Home/Webapps/work-webapps.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ 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";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.work-webapps;
|
||||
description = "Package to install for work-webapps.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
9
Modules/Home/default.nix
Normal file
9
Modules/Home/default.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./GUI-Apps
|
||||
./Shell
|
||||
./Webapps
|
||||
];
|
||||
}
|
||||
7
Modules/System/Application/Gaming/Steam/default.nix
Normal file
7
Modules/System/Application/Gaming/Steam/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./steam.nix
|
||||
];
|
||||
}
|
||||
20
Modules/System/Application/Gaming/Steam/steam.nix
Normal file
20
Modules/System/Application/Gaming/Steam/steam.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.steam;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.steam = {
|
||||
enable = lib.mkEnableOption "Enable steam (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.steam;
|
||||
description = "Package to install for steam.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
7
Modules/System/Application/Gaming/default.nix
Normal file
7
Modules/System/Application/Gaming/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./Steam
|
||||
];
|
||||
}
|
||||
20
Modules/System/Application/Grub/all-grub.nix
Normal file
20
Modules/System/Application/Grub/all-grub.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.all-grub;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.all-grub = {
|
||||
enable = lib.mkEnableOption "Enable all-grub (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.all-grub;
|
||||
description = "Package to install for all-grub.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
8
Modules/System/Application/Grub/default.nix
Normal file
8
Modules/System/Application/Grub/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./all-grub.nix
|
||||
./minegrub.nix
|
||||
];
|
||||
}
|
||||
20
Modules/System/Application/Grub/minegrub.nix
Normal file
20
Modules/System/Application/Grub/minegrub.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.minegrub;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.minegrub = {
|
||||
enable = lib.mkEnableOption "Enable minegrub (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.minegrub;
|
||||
description = "Package to install for minegrub.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./flatpak.nix
|
||||
./wireshark.nix
|
||||
];
|
||||
}
|
||||
20
Modules/System/Application/Special-Applications/flatpak.nix
Normal file
20
Modules/System/Application/Special-Applications/flatpak.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.flatpak;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.flatpak = {
|
||||
enable = lib.mkEnableOption "Enable flatpak (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.flatpak;
|
||||
description = "Package to install for flatpak.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.wireshark;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.wireshark = {
|
||||
enable = lib.mkEnableOption "Enable wireshark (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.wireshark;
|
||||
description = "Package to install for wireshark.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
10
Modules/System/Application/cli/default.nix
Normal file
10
Modules/System/Application/cli/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./docker.nix
|
||||
./openssh.nix
|
||||
./vm.nix
|
||||
./zsh.nix
|
||||
];
|
||||
}
|
||||
20
Modules/System/Application/cli/docker.nix
Normal file
20
Modules/System/Application/cli/docker.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.docker;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.docker = {
|
||||
enable = lib.mkEnableOption "Enable docker (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.docker;
|
||||
description = "Package to install for docker.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/System/Application/cli/openssh.nix
Normal file
20
Modules/System/Application/cli/openssh.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.openssh;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.openssh = {
|
||||
enable = lib.mkEnableOption "Enable openssh (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.openssh;
|
||||
description = "Package to install for openssh.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/System/Application/cli/vm.nix
Normal file
20
Modules/System/Application/cli/vm.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.vm;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.vm = {
|
||||
enable = lib.mkEnableOption "Enable vm (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.vm;
|
||||
description = "Package to install for vm.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/System/Application/cli/zsh.nix
Normal file
20
Modules/System/Application/cli/zsh.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.zsh;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.zsh = {
|
||||
enable = lib.mkEnableOption "Enable zsh (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.zsh;
|
||||
description = "Package to install for zsh.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
10
Modules/System/Application/default.nix
Normal file
10
Modules/System/Application/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./cli
|
||||
./Gaming
|
||||
./Grub
|
||||
./Special-Applications
|
||||
];
|
||||
}
|
||||
7
Modules/System/Desktops/KDE/default.nix
Normal file
7
Modules/System/Desktops/KDE/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./kde.nix
|
||||
];
|
||||
}
|
||||
20
Modules/System/Desktops/KDE/kde.nix
Normal file
20
Modules/System/Desktops/KDE/kde.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.kde;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.kde = {
|
||||
enable = lib.mkEnableOption "Enable kde (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.kde;
|
||||
description = "Package to install for kde.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
7
Modules/System/Desktops/default.nix
Normal file
7
Modules/System/Desktops/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./KDE
|
||||
];
|
||||
}
|
||||
20
Modules/System/Programming-Tools/c-compiler.nix
Normal file
20
Modules/System/Programming-Tools/c-compiler.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ 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";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.c-compiler;
|
||||
description = "Package to install for c-compiler.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
11
Modules/System/Programming-Tools/default.nix
Normal file
11
Modules/System/Programming-Tools/default.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./c-compiler.nix
|
||||
./go.nix
|
||||
./lua.nix
|
||||
./python.nix
|
||||
./rust.nix
|
||||
];
|
||||
}
|
||||
20
Modules/System/Programming-Tools/go.nix
Normal file
20
Modules/System/Programming-Tools/go.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.go;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.go = {
|
||||
enable = lib.mkEnableOption "Enable go (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.go;
|
||||
description = "Package to install for go.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/System/Programming-Tools/lua.nix
Normal file
20
Modules/System/Programming-Tools/lua.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.lua;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.lua = {
|
||||
enable = lib.mkEnableOption "Enable lua (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.lua;
|
||||
description = "Package to install for lua.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/System/Programming-Tools/python.nix
Normal file
20
Modules/System/Programming-Tools/python.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.python;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.python = {
|
||||
enable = lib.mkEnableOption "Enable python (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.python;
|
||||
description = "Package to install for python.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
20
Modules/System/Programming-Tools/rust.nix
Normal file
20
Modules/System/Programming-Tools/rust.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.system.rust;
|
||||
in
|
||||
{
|
||||
options.nyx-module.system.rust = {
|
||||
enable = lib.mkEnableOption "Enable rust (system) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.rust;
|
||||
description = "Package to install for rust.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
9
Modules/System/default.nix
Normal file
9
Modules/System/default.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./Application
|
||||
./Desktops
|
||||
./Programming-Tools
|
||||
];
|
||||
}
|
||||
9
Modules/default.nix
Normal file
9
Modules/default.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./Hardware
|
||||
./Home
|
||||
./System
|
||||
];
|
||||
}
|
||||
108
autogen-modules.sh
Executable file
108
autogen-modules.sh
Executable file
|
|
@ -0,0 +1,108 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="${1:-Modules}" # pass root dir, defaults to Modules
|
||||
|
||||
# Generate module boilerplate for each .nix (excluding default.nix)
|
||||
gen_module_boilerplate() {
|
||||
local file="$1"
|
||||
local module
|
||||
module="$(basename "$file" .nix)"
|
||||
|
||||
local ns target
|
||||
if [[ "$file" == *"/Home/"* ]]; then
|
||||
ns="home"
|
||||
target="home.packages"
|
||||
else
|
||||
ns="system"
|
||||
target="environment.systemPackages"
|
||||
fi
|
||||
|
||||
cat > "$file" <<EOF
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.nyx-module.${ns}.${module};
|
||||
in
|
||||
{
|
||||
options.nyx-module.${ns}.${module} = {
|
||||
enable = lib.mkEnableOption "Enable ${module} (${ns}) module";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.${module};
|
||||
description = "Package to install for ${module}.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
${target} = [ cfg.package ];
|
||||
};
|
||||
}
|
||||
EOF
|
||||
echo "Wrote boilerplate for $file"
|
||||
}
|
||||
|
||||
gen_default_for_dir() {
|
||||
local dir="$1"
|
||||
local file="${dir}/default.nix"
|
||||
|
||||
# collect non-default nix files in this directory
|
||||
local local_modules=()
|
||||
for f in "$dir"/*.nix; do
|
||||
[[ -f "$f" && "$(basename "$f")" != "default.nix" ]] && local_modules+=("./$(basename "$f")")
|
||||
done
|
||||
|
||||
# if there are non-default nix files, import them
|
||||
if (( ${#local_modules[@]} > 0 )); then
|
||||
{
|
||||
echo "{ config, lib, pkgs, ... }:"
|
||||
echo
|
||||
echo "{"
|
||||
echo " imports = ["
|
||||
for m in "${local_modules[@]}"; do
|
||||
echo " $m"
|
||||
done
|
||||
echo " ];"
|
||||
echo "}"
|
||||
} > "$file"
|
||||
|
||||
# otherwise, import all subdirs (not their default.nix directly)
|
||||
else
|
||||
local subdirs=()
|
||||
for sub in "$dir"/*/; do
|
||||
[[ -d "$sub" && -f "$sub/default.nix" ]] && subdirs+=("./$(basename "$sub")")
|
||||
done
|
||||
|
||||
{
|
||||
echo "{ config, lib, pkgs, ... }:"
|
||||
echo
|
||||
echo "{"
|
||||
echo " imports = ["
|
||||
for s in "${subdirs[@]}"; do
|
||||
echo " $s"
|
||||
done
|
||||
echo " ];"
|
||||
echo "}"
|
||||
} > "$file"
|
||||
fi
|
||||
|
||||
echo "Wrote default.nix in $dir"
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Walk the tree
|
||||
echo "Generating nix module boilerplates under $ROOT ..."
|
||||
|
||||
# 1. Generate boilerplate for all non-default modules
|
||||
find "$ROOT" -type f -name "*.nix" ! -name "default.nix" | while read -r f; do
|
||||
gen_module_boilerplate "$f"
|
||||
done
|
||||
|
||||
# 2. Generate default.nix in every directory
|
||||
find "$ROOT" -type d | while read -r d; do
|
||||
gen_default_for_dir "$d"
|
||||
done
|
||||
|
||||
echo "Done! All modules + defaults generated."
|
||||
17
flake.nix
Normal file
17
flake.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
description = "Nyx-Modules";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager,... }: {
|
||||
nixosModules.default = import ./Modules { inherit home-manager; };
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue