System/modules/options.nix

43 lines
1.2 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";
};
};
};
}