format: formatting all files
This commit is contained in:
parent
ee565ff88f
commit
fa791cd360
35 changed files with 333 additions and 263 deletions
|
|
@ -45,6 +45,11 @@
|
|||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
perSystem =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
formatter = pkgs.nixfmt;
|
||||
};
|
||||
imports = [
|
||||
(inputs.import-tree ./modules/top)
|
||||
(inputs.import-tree ./modules/hosts)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
{ ... }:
|
||||
{
|
||||
config.dendritic.features.editor-neovim.homeModules = [
|
||||
({ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ neovim ];
|
||||
})
|
||||
(
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ neovim ];
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,95 +1,98 @@
|
|||
{ inputs, ... }:
|
||||
{
|
||||
config.dendritic.features.editor-neovim.homeModules = [
|
||||
({ pkgs, lib, ... }: {
|
||||
imports = [
|
||||
inputs.nvf.homeManagerModules.default
|
||||
../home/programs/neovim/options.nix
|
||||
../home/programs/neovim/languages.nix
|
||||
../home/programs/neovim/picker.nix
|
||||
../home/programs/neovim/snacks.nix
|
||||
../home/programs/neovim/keymaps.nix
|
||||
../home/programs/neovim/utils.nix
|
||||
../home/programs/neovim/mini.nix
|
||||
];
|
||||
(
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nvf.homeManagerModules.default
|
||||
../home/programs/neovim/options.nix
|
||||
../home/programs/neovim/languages.nix
|
||||
../home/programs/neovim/picker.nix
|
||||
../home/programs/neovim/snacks.nix
|
||||
../home/programs/neovim/keymaps.nix
|
||||
../home/programs/neovim/utils.nix
|
||||
../home/programs/neovim/mini.nix
|
||||
];
|
||||
|
||||
programs.nvf = {
|
||||
enable = true;
|
||||
programs.nvf = {
|
||||
enable = true;
|
||||
|
||||
settings.vim = {
|
||||
startPlugins = with pkgs; [
|
||||
vimPlugins.grug-far-nvim
|
||||
vimPlugins.image-nvim
|
||||
vimPlugins.vim-hoogle
|
||||
vimPlugins.telescope_hoogle
|
||||
vimPlugins.zk-nvim
|
||||
vimPlugins.cyberdream-nvim
|
||||
vimPlugins.octo-nvim
|
||||
settings.vim = {
|
||||
startPlugins = with pkgs; [
|
||||
vimPlugins.grug-far-nvim
|
||||
vimPlugins.image-nvim
|
||||
vimPlugins.vim-hoogle
|
||||
vimPlugins.telescope_hoogle
|
||||
vimPlugins.zk-nvim
|
||||
vimPlugins.cyberdream-nvim
|
||||
vimPlugins.octo-nvim
|
||||
];
|
||||
|
||||
luaConfigRC.colorscheme = ''
|
||||
vim.cmd.colorscheme("cyberdream-light")
|
||||
'';
|
||||
|
||||
luaConfigRC.zk_nvim = ''
|
||||
local ok, zk = pcall(require, "zk")
|
||||
if not ok then return end
|
||||
|
||||
zk.setup({
|
||||
picker = "select",
|
||||
lsp = {
|
||||
config = {
|
||||
name = "zk",
|
||||
cmd = { "zk", "lsp" },
|
||||
filetypes = { "markdown" },
|
||||
},
|
||||
auto_attach = { enabled = true },
|
||||
},
|
||||
})
|
||||
'';
|
||||
};
|
||||
|
||||
settings.vim.augroups = [
|
||||
{ name = "SwiftSetup"; }
|
||||
];
|
||||
|
||||
luaConfigRC.colorscheme = ''
|
||||
vim.cmd.colorscheme("cyberdream-light")
|
||||
'';
|
||||
settings.vim.autocmds = [
|
||||
{
|
||||
event = [ "FileType" ];
|
||||
pattern = [ "swift" ];
|
||||
group = "SwiftSetup";
|
||||
desc = "Start sourcekit-lsp for Swift files";
|
||||
callback = lib.generators.mkLuaInline ''
|
||||
function()
|
||||
local lspconfig = require("lspconfig")
|
||||
for _, client in pairs(vim.lsp.get_active_clients()) do
|
||||
if client.name == "sourcekit" then return end
|
||||
end
|
||||
lspconfig.sourcekit.setup({
|
||||
cmd = { "sourcekit-lsp" },
|
||||
filetypes = { "swift", "swiftpm" },
|
||||
root_dir = lspconfig.util.root_pattern("Package.swift", ".git"),
|
||||
})
|
||||
end
|
||||
'';
|
||||
}
|
||||
|
||||
luaConfigRC.zk_nvim = ''
|
||||
local ok, zk = pcall(require, "zk")
|
||||
if not ok then return end
|
||||
|
||||
zk.setup({
|
||||
picker = "select",
|
||||
lsp = {
|
||||
config = {
|
||||
name = "zk",
|
||||
cmd = { "zk", "lsp" },
|
||||
filetypes = { "markdown" },
|
||||
},
|
||||
auto_attach = { enabled = true },
|
||||
},
|
||||
})
|
||||
'';
|
||||
{
|
||||
event = [ "BufWritePost" ];
|
||||
pattern = [ "*.swift" ];
|
||||
group = "SwiftSetup";
|
||||
desc = "Format Swift files on save";
|
||||
callback = lib.generators.mkLuaInline ''
|
||||
function()
|
||||
if vim.fn.executable("swift-format") == 1 then
|
||||
vim.cmd("silent! noautocmd !swift-format -i %")
|
||||
vim.cmd("checktime")
|
||||
end
|
||||
end
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
settings.vim.augroups = [
|
||||
{ name = "SwiftSetup"; }
|
||||
];
|
||||
|
||||
settings.vim.autocmds = [
|
||||
{
|
||||
event = [ "FileType" ];
|
||||
pattern = [ "swift" ];
|
||||
group = "SwiftSetup";
|
||||
desc = "Start sourcekit-lsp for Swift files";
|
||||
callback = lib.generators.mkLuaInline ''
|
||||
function()
|
||||
local lspconfig = require("lspconfig")
|
||||
for _, client in pairs(vim.lsp.get_active_clients()) do
|
||||
if client.name == "sourcekit" then return end
|
||||
end
|
||||
lspconfig.sourcekit.setup({
|
||||
cmd = { "sourcekit-lsp" },
|
||||
filetypes = { "swift", "swiftpm" },
|
||||
root_dir = lspconfig.util.root_pattern("Package.swift", ".git"),
|
||||
})
|
||||
end
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
event = [ "BufWritePost" ];
|
||||
pattern = [ "*.swift" ];
|
||||
group = "SwiftSetup";
|
||||
desc = "Format Swift files on save";
|
||||
callback = lib.generators.mkLuaInline ''
|
||||
function()
|
||||
if vim.fn.executable("swift-format") == 1 then
|
||||
vim.cmd("silent! noautocmd !swift-format -i %")
|
||||
vim.cmd("checktime")
|
||||
end
|
||||
end
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
home.packages = with pkgs; [
|
||||
vhs
|
||||
libqalculate
|
||||
];
|
||||
}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -2,33 +2,39 @@
|
|||
{
|
||||
config.dendritic.features = {
|
||||
secrets-home-sops.homeModules = [
|
||||
({ inputs, config, ... }: {
|
||||
imports = [
|
||||
inputs.sops-nix.homeModules.sops
|
||||
];
|
||||
(
|
||||
{ inputs, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.sops-nix.homeModules.sops
|
||||
];
|
||||
|
||||
sops.defaultSopsFile = ../../secrets/users/${config.dendritic.current.primaryUser}.yaml;
|
||||
sops.defaultSopsFormat = "yaml";
|
||||
sops.age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
||||
sops.defaultSopsFile = ../../secrets/users/${config.dendritic.current.primaryUser}.yaml;
|
||||
sops.defaultSopsFormat = "yaml";
|
||||
sops.age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
||||
|
||||
sops.secrets."user/test" = {
|
||||
path = ".config/secrets/test";
|
||||
};
|
||||
})
|
||||
sops.secrets."user/test" = {
|
||||
path = ".config/secrets/test";
|
||||
};
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
secrets-system-sops.nixosModules = [
|
||||
({ inputs, config, ... }: {
|
||||
imports = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
(
|
||||
{ inputs, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
|
||||
sops.defaultSopsFile = ../../secrets/hosts/${config.dendritic.current.hostName}.yaml;
|
||||
sops.defaultSopsFormat = "yaml";
|
||||
sops.age.keyFile = "/home/${config.dendritic.current.primaryUser}/.config/sops/age/keys.txt";
|
||||
sops.defaultSopsFile = ../../secrets/hosts/${config.dendritic.current.hostName}.yaml;
|
||||
sops.defaultSopsFormat = "yaml";
|
||||
sops.age.keyFile = "/home/${config.dendritic.current.primaryUser}/.config/sops/age/keys.txt";
|
||||
|
||||
sops.secrets."system/example" = { };
|
||||
})
|
||||
sops.secrets."system/example" = { };
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
cachix
|
||||
devenv
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# ✨ Magical shell history
|
||||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.atuin = {
|
||||
enable = true;
|
||||
flags = [
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# A cat clone with syntax highlighting and Git integration.
|
||||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# An interactive treeview directory navigator
|
||||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.broot = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# A modern replacement for 'ls'.
|
||||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
|
|||
|
|
@ -3,11 +3,13 @@
|
|||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
accent = "#" + config.lib.stylix.colors.base0D;
|
||||
foreground = "#" + config.lib.stylix.colors.base05;
|
||||
muted = "#" + config.lib.stylix.colors.base03;
|
||||
in {
|
||||
in
|
||||
{
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
@ -13,7 +14,7 @@
|
|||
auto-update = "off";
|
||||
working-directory = "home";
|
||||
window-inherit-working-directory = false; # avoid inheritance
|
||||
keybinds = [];
|
||||
keybinds = [ ];
|
||||
# background-opacity = 0.8;
|
||||
background-opacity = 1;
|
||||
confirm-close-surface = false;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# A terminal-based Kubernetes CLI.
|
||||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.k9s = {
|
||||
enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs}: {
|
||||
{ pkgs }:
|
||||
{
|
||||
browser = "${pkgs.firefox}/bin/firefox";
|
||||
terminal = "${pkgs.ghostty}/bin/ghostty";
|
||||
fileManager = "${pkgs.thunar}/bin/thunar";
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
home.sessionVariables = {
|
||||
XDG_ICON_DIR = "${pkgs.whitesur-icon-theme}/share/icons/WhiteSur";
|
||||
GSETTINGS_SCHEMA_DIR = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas";
|
||||
|
|
@ -52,18 +53,18 @@
|
|||
|
||||
layout = {
|
||||
preset-column-widths = [
|
||||
{proportion = 1. / 3.;}
|
||||
{proportion = 1. / 2.;}
|
||||
{proportion = 2. / 3.;}
|
||||
{ proportion = 1. / 3.; }
|
||||
{ proportion = 1. / 2.; }
|
||||
{ proportion = 2. / 3.; }
|
||||
];
|
||||
default-column-width = {
|
||||
proportion = 0.5;
|
||||
};
|
||||
|
||||
preset-window-heights = [
|
||||
{proportion = 1. / 3.;}
|
||||
{proportion = 1. / 2.;}
|
||||
{proportion = 2. / 3.;}
|
||||
{ proportion = 1. / 3.; }
|
||||
{ proportion = 1. / 2.; }
|
||||
{ proportion = 2. / 3.; }
|
||||
];
|
||||
|
||||
background-color = "#00000000";
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
# ✨ password manager
|
||||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
package = pkgs.pass.withExtensions (exts: [exts.pass-otp]);
|
||||
package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]);
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -3,10 +3,12 @@
|
|||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
accent = "#${config.lib.stylix.colors.base0D}";
|
||||
background-alt = "#${config.lib.stylix.colors.base01}";
|
||||
in {
|
||||
in
|
||||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
config = lib.mkIf config.bluetooth.enable {
|
||||
services.blueman.enable = true;
|
||||
hardware.bluetooth = {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{_}: {
|
||||
{ _ }:
|
||||
{
|
||||
# Disable so comma can be installed
|
||||
programs.command-not-found.enable = false;
|
||||
programs.nix-index-database.comma.enable = true;
|
||||
|
|
|
|||
|
|
@ -2,10 +2,11 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
services.dbus = {
|
||||
enable = true;
|
||||
packages = [pkgs.dconf];
|
||||
packages = [ pkgs.dconf ];
|
||||
};
|
||||
|
||||
programs.dconf = {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
wlr-randr
|
||||
wl-clipboard
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
# ../../common/nixos/nfs.nix
|
||||
|
|
@ -20,23 +21,25 @@
|
|||
"sd_mod"
|
||||
"rtsx_pci_sdmmc"
|
||||
];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-amd"];
|
||||
boot.extraModulePackages = [];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
initrd.luks.devices."luks-1dbfdeb6-8537-41b2-abf0-09373af3eeee".device = "/dev/disk/by-uuid/1dbfdeb6-8537-41b2-abf0-09373af3eeee";
|
||||
initrd.luks.devices."luks-1dbfdeb6-8537-41b2-abf0-09373af3eeee".device =
|
||||
"/dev/disk/by-uuid/1dbfdeb6-8537-41b2-abf0-09373af3eeee";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/c79b630a-d130-42ed-8cdc-3f8545fe2993";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-96e3b309-ca79-4b42-aca5-3f098b123758".device = "/dev/disk/by-uuid/96e3b309-ca79-4b42-aca5-3f098b123758";
|
||||
boot.initrd.luks.devices."luks-96e3b309-ca79-4b42-aca5-3f098b123758".device =
|
||||
"/dev/disk/by-uuid/96e3b309-ca79-4b42-aca5-3f098b123758";
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/1FBA-8B80";
|
||||
fsType = "vfat";
|
||||
|
|
@ -46,7 +49,7 @@
|
|||
];
|
||||
};
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/17eec89e-2381-4a25-8935-63cbcc67d07c";}
|
||||
{ device = "/dev/disk/by-uuid/17eec89e-2381-4a25-8935-63cbcc67d07c"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{_}: {
|
||||
{ _ }:
|
||||
{
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Toronto";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# Enable sound with pipewire.
|
||||
hardware.pulseaudio.enable = false;
|
||||
# hardware.alsa.enablePersistence = true;
|
||||
|
|
@ -18,7 +19,7 @@
|
|||
"context.properties" = {
|
||||
"default.clock.rate" = 192000;
|
||||
#"defautlt.allowed-rates" = [ 192000 48000 44100 ];
|
||||
"defautlt.allowed-rates" = [192000];
|
||||
"defautlt.allowed-rates" = [ 192000 ];
|
||||
#"default.clock.quantum" = 32;
|
||||
#"default.clock.min-quantum" = 32;
|
||||
#"default.clock.max-quantum" = 32;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
services.sshguard = {
|
||||
enable = true;
|
||||
services = [
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
boot.kernel.sysctl = {
|
||||
# disallow core dumping by SUID/SGID programs
|
||||
"fs.suid_dumpable" = 0;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
boot.kernel.sysctl = {
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
boot.kernel.sysctl = {
|
||||
# enable BBR congestion control
|
||||
"net.ipv4.tcp_congestion_control" = "bbr";
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
boot.kernel.sysctl = {
|
||||
# disallow IPv6 packet forwarding
|
||||
"net.ipv6.conf.default.forwarding" = 0;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
boot.kernel.sysctl = {
|
||||
# do not allow mmap in lower addresses
|
||||
"vm.mmap_min_addr" = 65536;
|
||||
|
|
|
|||
|
|
@ -2,34 +2,37 @@
|
|||
{
|
||||
options.dendritic.features = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({ name, ... }: {
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
lib.types.submodule (
|
||||
{ name, ... }:
|
||||
{
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
|
||||
features = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
};
|
||||
features = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
nixosModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [ ];
|
||||
};
|
||||
nixosModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
homeModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [ ];
|
||||
};
|
||||
homeModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
includeInEmbeddedHomeManager = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
includeInEmbeddedHomeManager = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
);
|
||||
default = { };
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,43 +1,54 @@
|
|||
{lib, ...}: {
|
||||
{ lib, ... }:
|
||||
{
|
||||
options.dendritic.hosts = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({name, ...}: {
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
lib.types.submodule (
|
||||
{ name, ... }:
|
||||
{
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
|
||||
system = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
};
|
||||
system = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
type = lib.mkOption {
|
||||
type = lib.types.enum ["laptop" "desktop" "server"];
|
||||
};
|
||||
type = lib.mkOption {
|
||||
type = lib.types.enum [
|
||||
"laptop"
|
||||
"desktop"
|
||||
"server"
|
||||
];
|
||||
};
|
||||
|
||||
roles = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
};
|
||||
roles = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
primaryUser = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
};
|
||||
primaryUser = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
primaryUserExtraGroups = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = ["wheel" "networkmanager"];
|
||||
};
|
||||
primaryUserExtraGroups = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
];
|
||||
};
|
||||
|
||||
nixosModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [];
|
||||
nixosModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
);
|
||||
default = {};
|
||||
default = { };
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,63 +1,70 @@
|
|||
{lib, ...}: {
|
||||
{ lib, ... }:
|
||||
{
|
||||
options.dendritic.users = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({name, ...}: {
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
lib.types.submodule (
|
||||
{ name, ... }:
|
||||
{
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
|
||||
username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
|
||||
nixosModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
homeModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
homes = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule (
|
||||
{ name, ... }:
|
||||
{
|
||||
options = {
|
||||
host = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
|
||||
system = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
stateVersion = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "25.05";
|
||||
};
|
||||
|
||||
roles = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
extraModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
);
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
|
||||
username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
|
||||
nixosModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [];
|
||||
};
|
||||
|
||||
homeModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [];
|
||||
};
|
||||
|
||||
homes = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({name, ...}: {
|
||||
options = {
|
||||
host = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
|
||||
system = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
stateVersion = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "25.05";
|
||||
};
|
||||
|
||||
roles = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
};
|
||||
|
||||
extraModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [];
|
||||
};
|
||||
};
|
||||
})
|
||||
);
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
);
|
||||
default = {};
|
||||
default = { };
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue