format: formatting all files

This commit is contained in:
gwg313 2026-04-20 00:29:33 -04:00
parent ee565ff88f
commit fa791cd360
Signed by: gwg313
GPG key ID: 60FF63B4826B7400
35 changed files with 333 additions and 263 deletions

View file

@ -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)

View file

@ -1,8 +1,11 @@
{ ... }:
{
config.dendritic.features.editor-neovim.homeModules = [
({ pkgs, ... }: {
home.packages = with pkgs; [ neovim ];
})
(
{ pkgs, ... }:
{
home.packages = with pkgs; [ neovim ];
}
)
];
}

View file

@ -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
'';
}
];
};
})
}
)
];
}

View file

@ -11,6 +11,7 @@
home.packages = with pkgs; [
vhs
libqalculate
];
}
)

View file

@ -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" = { };
}
)
];
};
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
home.packages = with pkgs; [
cachix
devenv

View file

@ -1,5 +1,6 @@
# ✨ Magical shell history
{...}: {
{ ... }:
{
programs.atuin = {
enable = true;
flags = [

View file

@ -1,5 +1,6 @@
# A cat clone with syntax highlighting and Git integration.
{...}: {
{ ... }:
{
programs.bat = {
enable = true;
};

View file

@ -1,5 +1,6 @@
# An interactive treeview directory navigator
{...}: {
{ ... }:
{
programs.broot = {
enable = true;
enableZshIntegration = true;

View file

@ -1,4 +1,5 @@
{...}: {
{ ... }:
{
programs.btop = {
enable = true;
};

View file

@ -1,5 +1,6 @@
# A modern replacement for 'ls'.
{...}: {
{ ... }:
{
programs.eza = {
enable = true;
enableZshIntegration = true;

View file

@ -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;

View file

@ -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;

View file

@ -1,5 +1,6 @@
# A terminal-based Kubernetes CLI.
{...}: {
{ ... }:
{
programs.k9s = {
enable = true;
};

View file

@ -1,4 +1,5 @@
{pkgs}: {
{ pkgs }:
{
browser = "${pkgs.firefox}/bin/firefox";
terminal = "${pkgs.ghostty}/bin/ghostty";
fileManager = "${pkgs.thunar}/bin/thunar";

View file

@ -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";

View file

@ -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; [

View file

@ -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;

View file

@ -2,7 +2,8 @@
lib,
config,
...
}: {
}:
{
config = lib.mkIf config.bluetooth.enable {
services.blueman.enable = true;
hardware.bluetooth = {

View file

@ -1,4 +1,5 @@
{_}: {
{ _ }:
{
# Disable so comma can be installed
programs.command-not-found.enable = false;
programs.nix-index-database.comma.enable = true;

View file

@ -2,10 +2,11 @@
config,
pkgs,
...
}: {
}:
{
services.dbus = {
enable = true;
packages = [pkgs.dconf];
packages = [ pkgs.dconf ];
};
programs.dconf = {

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
wlr-randr
wl-clipboard

View file

@ -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

View file

@ -1,4 +1,5 @@
{_}: {
{ _ }:
{
# Set your time zone.
time.timeZone = "America/Toronto";

View file

@ -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;

View file

@ -2,7 +2,8 @@
config,
lib,
...
}: {
}:
{
services.sshguard = {
enable = true;
services = [

View file

@ -2,7 +2,8 @@
config,
pkgs,
...
}: {
}:
{
boot.kernel.sysctl = {
# disallow core dumping by SUID/SGID programs
"fs.suid_dumpable" = 0;

View file

@ -2,7 +2,8 @@
config,
pkgs,
...
}: {
}:
{
boot.kernel.sysctl = {
};
}

View file

@ -2,7 +2,8 @@
config,
pkgs,
...
}: {
}:
{
boot.kernel.sysctl = {
# enable BBR congestion control
"net.ipv4.tcp_congestion_control" = "bbr";

View file

@ -2,7 +2,8 @@
config,
pkgs,
...
}: {
}:
{
boot.kernel.sysctl = {
# disallow IPv6 packet forwarding
"net.ipv6.conf.default.forwarding" = 0;

View file

@ -2,7 +2,8 @@
config,
pkgs,
...
}: {
}:
{
boot.kernel.sysctl = {
# do not allow mmap in lower addresses
"vm.mmap_min_addr" = 65536;

View file

@ -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 = { };
};

View file

@ -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 = { };
};
}

View file

@ -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 = { };
};
}