System/modules/options.nix

47 lines
1.3 KiB
Nix

{ config, lib, pkgs, ... }:
let
inherit (import ./lib.nix {
inherit lib;
inherit pkgs;
})
nLib;
in {
options = with lib;
with nLib; {
nathan = {
# Programs, many of these will be generic
programs = {
# Utility modules
utils = {
# Core utililtes I want on every system
# Enabled by default
core = mkEnableOptionT "utils-core";
# Development utilities that can't be installed through home manager due to collisions
devel = mkDefaultOption "devel" config.nathan.config.isDesktop;
};
};
# General system configuration
config = {
# Name of the user to install
user = mkOption {
default = "nathan";
example = "nathan";
description = "Username to use for common configuration";
type = lib.types.str;
};
# Name of the user to install
email = mkOption {
default = "nathan@mccarty.io";
example = "nathan@mccarty.io";
description = "Email to use for common configuration";
type = lib.types.str;
};
# Is this system a desktop?
# Off by default
isDesktop = mkEnableOption "Desktop specific settings";
};
};
};
}