{ inputs, lib, ... }: let userOpt = with lib; { username = mkOption { type = types.str; }; wm = mkOption { type = types.enum [ "Wayland" "X11" "-"]; default = "-"; }; git = { username = mkOption { type = types.str; }; email = mkOption { type = types.str; }; key = mkOption { type = types.str; }; }; }; in with lib; { options.usercfg = userOpt; options.syscfg = { hostname = mkOption { type = types.str; }; defaultUser = mkOption { type = types.str; }; make = { cli = mkOption { type = types.bool; default = true; }; gui = mkOption { type = types.bool; default = false; }; virt = mkOption { type = types.bool; default = true; }; power = mkOption { type = types.bool; default = false; }; game = mkOption { type = types.bool; default = false; }; develop = mkOption { type = types.bool; default = false; }; }; net = { wlp = { enable = mkOption { type = types.bool; default = false; }; nif = mkOption { type = types.str; default = ""; }; }; wg = { enable = mkOption { type = types.bool; default = false; }; ip4 = mkOption { type = types.str; default = ""; }; ip6 = mkOption { type = types.str; default = ""; }; }; }; users = mkOption { type = types.listOf (types.submodule { options = userOpt; }); default = [ ]; }; }; }