Compare commits
3 commits
ee565ff88f
...
28e9fba686
| Author | SHA1 | Date | |
|---|---|---|---|
| 28e9fba686 | |||
| b9bf16ba55 | |||
| fa791cd360 |
40 changed files with 449 additions and 265 deletions
|
|
@ -45,6 +45,11 @@
|
|||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
perSystem =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
formatter = pkgs.nixfmt-tree;
|
||||
};
|
||||
imports = [
|
||||
(inputs.import-tree ./modules/top)
|
||||
(inputs.import-tree ./modules/hosts)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
{ ... }:
|
||||
{
|
||||
config.dendritic.features.editor-neovim.homeModules = [
|
||||
({ pkgs, ... }: {
|
||||
(
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ neovim ];
|
||||
})
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
{ inputs, ... }:
|
||||
{
|
||||
config.dendritic.features.editor-neovim.homeModules = [
|
||||
({ pkgs, lib, ... }: {
|
||||
(
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nvf.homeManagerModules.default
|
||||
../home/programs/neovim/options.nix
|
||||
|
|
@ -90,6 +92,7 @@
|
|||
}
|
||||
];
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
home.packages = with pkgs; [
|
||||
vhs
|
||||
libqalculate
|
||||
];
|
||||
}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@
|
|||
bind -N "⌘+^+t join pane" J join-pane -t 1
|
||||
bind -N "⌘+e editor" E new-window -S -n '📝' 'nvim +GoToFile'
|
||||
|
||||
bind -N "⌘+g lazyjj" g new-window -S -n '🌳' 'lazyjj'
|
||||
bind -N "⌘+g jjui" g new-window -S -n '🌳' 'jjui'
|
||||
|
||||
bind -N "⌘+⇧+Q kill current session" Q kill-session
|
||||
bind -N "⌘+⇧+T break pane" B break-pane
|
||||
|
|
@ -116,7 +116,7 @@
|
|||
fzf
|
||||
fd
|
||||
zoxide
|
||||
lazyjj
|
||||
jjui
|
||||
];
|
||||
|
||||
programs.zsh = {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
{
|
||||
config.dendritic.features = {
|
||||
secrets-home-sops.homeModules = [
|
||||
({ inputs, config, ... }: {
|
||||
(
|
||||
{ inputs, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.sops-nix.homeModules.sops
|
||||
];
|
||||
|
|
@ -14,11 +16,14 @@
|
|||
sops.secrets."user/test" = {
|
||||
path = ".config/secrets/test";
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
secrets-system-sops.nixosModules = [
|
||||
({ inputs, config, ... }: {
|
||||
(
|
||||
{ inputs, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
|
|
@ -28,7 +33,8 @@
|
|||
sops.age.keyFile = "/home/${config.dendritic.current.primaryUser}/.config/sops/age/keys.txt";
|
||||
|
||||
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;
|
||||
|
|
|
|||
22
modules/hosts/grymforge.nix
Normal file
22
modules/hosts/grymforge.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
config.dendritic.hosts.grymforge = {
|
||||
system = "x86_64-linux";
|
||||
type = "desktop";
|
||||
roles = [
|
||||
"workstation"
|
||||
];
|
||||
primaryUser = "gwg313";
|
||||
primaryUserExtraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
"audio"
|
||||
];
|
||||
|
||||
nixosModules = [
|
||||
../nixos/hardware/grymforge.nix
|
||||
../nixos/hosts/candlekeep/ssh.nix
|
||||
../nixos/hosts/candlekeep/nfs.nix
|
||||
../nixos/hosts/candlekeep/networking.nix
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
68
modules/nixos/hardware/grymforge.nix
Normal file
68
modules/nixos/hardware/grymforge.nix
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
initrd.luks.devices."luks-ab8d2b18-14de-44ff-a7b5-91d5f5d0e937".device =
|
||||
"/dev/disk/by-uuid/ab8d2b18-14de-44ff-a7b5-91d5f5d0e937";
|
||||
};
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/95565731-9a95-4fcc-857d-1f066f4e4acf";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-c140b0df-2cce-4710-a2fa-94dd3016a7e6".device =
|
||||
"/dev/disk/by-uuid/c140b0df-2cce-4710-a2fa-94dd3016a7e6";
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/34C4-ECCE";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/2fea88dc-b9a8-40d6-a87d-f7383548e60d"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
@ -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,7 +2,9 @@
|
|||
{
|
||||
options.dendritic.features = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({ name, ... }: {
|
||||
lib.types.submodule (
|
||||
{ name, ... }:
|
||||
{
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
|
|
@ -29,7 +31,8 @@
|
|||
default = true;
|
||||
};
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
);
|
||||
default = { };
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
{lib, ...}: {
|
||||
{ lib, ... }:
|
||||
{
|
||||
options.dendritic.hosts = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({name, ...}: {
|
||||
lib.types.submodule (
|
||||
{ name, ... }:
|
||||
{
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
|
|
@ -13,12 +16,16 @@
|
|||
};
|
||||
|
||||
type = lib.mkOption {
|
||||
type = lib.types.enum ["laptop" "desktop" "server"];
|
||||
type = lib.types.enum [
|
||||
"laptop"
|
||||
"desktop"
|
||||
"server"
|
||||
];
|
||||
};
|
||||
|
||||
roles = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
primaryUser = lib.mkOption {
|
||||
|
|
@ -28,16 +35,20 @@
|
|||
|
||||
primaryUserExtraGroups = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = ["wheel" "networkmanager"];
|
||||
default = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
];
|
||||
};
|
||||
|
||||
nixosModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [];
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
);
|
||||
default = {};
|
||||
default = { };
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
{lib, ...}: {
|
||||
{ lib, ... }:
|
||||
{
|
||||
options.dendritic.users = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({name, ...}: {
|
||||
lib.types.submodule (
|
||||
{ name, ... }:
|
||||
{
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
|
|
@ -15,17 +18,19 @@
|
|||
|
||||
nixosModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [];
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
homeModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [];
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
homes = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({name, ...}: {
|
||||
lib.types.submodule (
|
||||
{ name, ... }:
|
||||
{
|
||||
options = {
|
||||
host = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
|
|
@ -43,21 +48,23 @@
|
|||
|
||||
roles = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
extraModules = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.deferredModule;
|
||||
default = [];
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
);
|
||||
default = {};
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
);
|
||||
default = {};
|
||||
default = { };
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,5 +17,12 @@
|
|||
roles = [ "workstation" ];
|
||||
extraModules = [ ];
|
||||
};
|
||||
|
||||
homes.grymforge = {
|
||||
system = "x86_64-linux";
|
||||
stateVersion = "25.11";
|
||||
roles = [ "workstation" ];
|
||||
extraModules = [ ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
17
secrets/hosts/grymforge.yaml
Normal file
17
secrets/hosts/grymforge.yaml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
system:
|
||||
example: ENC[AES256_GCM,data:HGduc8uq6YhzDBM=,iv:IDdNjIjWAhTEzHiGrsuSpHSjidpeFnGdzkiBCjBv5H4=,tag:pm2IGSy3siDAhn2E7lMUhA==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1k3hs0gyzrmsdyqh9lpret46q3xaayxxntruzc4euy6h3slqn4u6q36h7rg
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0R1VYMmEvdWk5UzBQLzds
|
||||
Q2JzSC9zZFJVWldHbTlkdTIrSXNFLzZqdjBFClJqZmxTSCtjeGwxNjA3VFVscEtP
|
||||
NEhOcU9la2MzNWNEK1NwU0dNTHlPNFUKLS0tIHVWVlRkRHlwb21IemRFS3FTT1kz
|
||||
U21XTEVjNWgzVHVYQ2dDQmIrV21EdGMKw14LaWlK9WbBXxnNvKfNgg44K9/Y7p5H
|
||||
+3QeahQRu8OYn/tFyaMiRxIzLWOhBhtdqAH8k2GN2X5TxzGA1vxGXg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-04-14T00:22:17Z"
|
||||
mac: ENC[AES256_GCM,data:bPSDTqcfnnUcj80y+9qUfWkX9NcBWdQETMC3qyZYB3FWrJryepWn4bMUEb5IBfwcZXiKWmvyOTXjFYEkx4F4YGZA0qz3usuq6EjeZDSFrpf9Itr9wdc400mc7cf5YFtNOkf+BuE3nsYQDj1KViBKReEgMjZe9bHjvmi1f+utvjM=,iv:DcvjgVAUTily7Xm1+3NCA7/P3+qE05WlQkkqKggm27g=,tag:47TIh6ybU4Cu8QybMxuz/g==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.12.2
|
||||
Loading…
Add table
Add a link
Reference in a new issue