add config wrappers to everything in home manager

This commit is contained in:
2025-11-01 17:47:19 -05:00
parent 84b7477cff
commit 4a995d51c3
12 changed files with 1156 additions and 1022 deletions

View File

@@ -11,7 +11,7 @@
./waybar ./waybar
./hypr ./hypr
./neovim ./nvf
./lf ./lf
./zsh ./zsh
./ssh ./ssh

View File

@@ -4,9 +4,22 @@
lib, lib,
inputs, inputs,
... ...
}: { }:
let
program = "git";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
# configure git # configure git
programs.git = { programs.${program} = {
enable = true; enable = true;
userName = "blake"; userName = "blake";
userEmail = "me@blakedheld.xyz"; userEmail = "me@blakedheld.xyz";
@@ -17,4 +30,5 @@
push.autoSetupRemote = true; push.autoSetupRemote = true;
}; };
}; };
};
} }

View File

@@ -3,8 +3,20 @@
lib, lib,
config, config,
... ...
}: { }:
programs.gpg = { let
program = "gpg";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
programs.${program} = {
enable = true; enable = true;
}; };
services.gpg-agent = { services.gpg-agent = {
@@ -17,4 +29,5 @@
home.packages = home.packages =
lib.optional pkgs.stdenv.isDarwin pkgs.pinentry_mac lib.optional pkgs.stdenv.isDarwin pkgs.pinentry_mac
++ lib.optional pkgs.stdenv.isLinux pkgs.pinentry-qt; ++ lib.optional pkgs.stdenv.isLinux pkgs.pinentry-qt;
};
} }

View File

@@ -1,8 +1,22 @@
{ {
pkgs, pkgs,
lib,
config, config,
... ...
}: { }:
let
program = "hypr";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
nwg-displays nwg-displays
posy-cursors posy-cursors
@@ -375,4 +389,5 @@
#xdg.configFile."hypr/hyprland.conf" = { #xdg.configFile."hypr/hyprland.conf" = {
# source = config.lib.file.mkOutOfStoreSymlink "/home/blake/.nix/users/blake/dots/hypr/hyprland.conf"; # source = config.lib.file.mkOutOfStoreSymlink "/home/blake/.nix/users/blake/dots/hypr/hyprland.conf";
#}; #};
};
} }

View File

@@ -1,188 +0,0 @@
{
pkgs,
config,
lib,
inputs,
...
}:
{
imports = [
inputs.nvf.homeManagerModules.default
];
programs.nvf = {
enable = true;
settings = {
vim = {
globals = {
mapleader = " ";
maplocalleader = " ";
};
vimAlias = true;
lsp.enable = true;
statusline.lualine.enable = true;
telescope.enable = true;
autocomplete.nvim-cmp.enable = true;
autopairs.nvim-autopairs.enable = true;
keymaps = [
# visual line movement (insert mode)
{
key = "<Up>";
mode = [ "i" ];
action = "<C-o>gk";
desc = "Visual Line Up (Insert)";
}
{
key = "<Down>";
mode = [ "i" ];
action = "<C-o>gj";
desc = "Visual Line Down (Insert)";
}
# visual line movement (normal/visual)
{
key = "<Up>";
mode = [
"n"
"v"
];
action = "g<Up>";
desc = "Visual Line Up";
}
{
key = "<Down>";
mode = [
"n"
"v"
];
action = "g<Down>";
desc = "Visual Line Down";
}
# lsp
#{ key = "gd"; mode = [ "n" ]; action = "<cmd>lua vim.lsp.buf.definition()<CR>"; desc = "Go to definition"; }
#{ key = "K"; mode = [ "n" ]; action = "<cmd>lua vim.lsp.buf.hover()<CR>"; desc = "Hover info"; }
#{ key = "<leader>f"; mode = [ "n" ]; action = "<cmd>lua vim.lsp.buf.format({ async = true })<CR>"; desc = "Format buffer"; }
{
key = "gd";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.definition()<CR>";
desc = "Go to definition";
}
# Hover info
{
key = "K";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.hover()<CR>";
desc = "Hover info";
}
# Format buffer (Alejandra for Nix)
{
key = "<leader>F";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.format({ async = true })<CR>";
desc = "Format buffer";
}
# Code actions / quickfix
{
key = "<leader>a";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.code_action()<CR>";
desc = "Code action";
}
# Rename symbol
{
key = "<leader>r";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.rename()<CR>";
desc = "Rename symbol";
}
# Diagnostics
{
key = "<leader>e";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.diagnostic.open_float()<CR>";
desc = "Show diagnostic";
}
{
key = "[d";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.diagnostic.goto_prev()<CR>";
desc = "Previous diagnostic";
}
{
key = "]d";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.diagnostic.goto_next()<CR>";
desc = "Next diagnostic";
}
];
options = {
clipboard = "unnamedplus";
# line numbers
number = true;
numberwidth = 2;
relativenumber = true;
# tabs and indentation
tabstop = 2;
shiftwidth = 2;
softtabstop = -1;
expandtab = true;
smarttab = true;
autoindent = true;
# search
ignorecase = true;
smartcase = true;
# files and backups
backup = false;
writebackup = false;
undofile = true;
swapfile = true;
# wrapping
wrap = true;
linebreak = true;
breakindent = true;
termguicolors = true;
autoread = true;
};
languages = {
enableTreesitter = true;
nix = {
enable = true;
format = {
enable = true;
type = "alejandra";
#type = "nixfmt";
};
};
markdown.enable = true;
rust.enable = true;
lua.enable = true;
};
};
};
};
}

View File

@@ -0,0 +1,201 @@
{
pkgs,
config,
lib,
inputs,
...
}:
let
program = "nvf";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
imports = [
inputs.nvf.homeManagerModules.default
];
programs.${program} = {
enable = true;
settings = {
vim = {
globals = {
mapleader = " ";
maplocalleader = " ";
};
vimAlias = true;
lsp.enable = true;
statusline.lualine.enable = true;
telescope.enable = true;
autocomplete.nvim-cmp.enable = true;
autopairs.nvim-autopairs.enable = true;
keymaps = [
# visual line movement (insert mode)
{
key = "<Up>";
mode = [ "i" ];
action = "<C-o>gk";
desc = "Visual Line Up (Insert)";
}
{
key = "<Down>";
mode = [ "i" ];
action = "<C-o>gj";
desc = "Visual Line Down (Insert)";
}
# visual line movement (normal/visual)
{
key = "<Up>";
mode = [
"n"
"v"
];
action = "g<Up>";
desc = "Visual Line Up";
}
{
key = "<Down>";
mode = [
"n"
"v"
];
action = "g<Down>";
desc = "Visual Line Down";
}
# lsp
#{ key = "gd"; mode = [ "n" ]; action = "<cmd>lua vim.lsp.buf.definition()<CR>"; desc = "Go to definition"; }
#{ key = "K"; mode = [ "n" ]; action = "<cmd>lua vim.lsp.buf.hover()<CR>"; desc = "Hover info"; }
#{ key = "<leader>f"; mode = [ "n" ]; action = "<cmd>lua vim.lsp.buf.format({ async = true })<CR>"; desc = "Format buffer"; }
{
key = "gd";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.definition()<CR>";
desc = "Go to definition";
}
# Hover info
{
key = "K";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.hover()<CR>";
desc = "Hover info";
}
# Format buffer (Alejandra for Nix)
{
key = "<leader>F";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.format({ async = true })<CR>";
desc = "Format buffer";
}
# Code actions / quickfix
{
key = "<leader>a";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.code_action()<CR>";
desc = "Code action";
}
# Rename symbol
{
key = "<leader>r";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.lsp.buf.rename()<CR>";
desc = "Rename symbol";
}
# Diagnostics
{
key = "<leader>e";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.diagnostic.open_float()<CR>";
desc = "Show diagnostic";
}
{
key = "[d";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.diagnostic.goto_prev()<CR>";
desc = "Previous diagnostic";
}
{
key = "]d";
mode = [ "n" ];
silent = true;
action = "<cmd>lua vim.diagnostic.goto_next()<CR>";
desc = "Next diagnostic";
}
];
options = {
clipboard = "unnamedplus";
# line numbers
number = true;
numberwidth = 2;
relativenumber = true;
# tabs and indentation
tabstop = 2;
shiftwidth = 2;
softtabstop = -1;
expandtab = true;
smarttab = true;
autoindent = true;
# search
ignorecase = true;
smartcase = true;
# files and backups
backup = false;
writebackup = false;
undofile = true;
swapfile = true;
# wrapping
wrap = true;
linebreak = true;
breakindent = true;
termguicolors = true;
autoread = true;
};
languages = {
enableTreesitter = true;
nix = {
enable = true;
format = {
enable = true;
type = "alejandra";
#type = "nixfmt";
};
};
markdown.enable = true;
rust.enable = true;
lua.enable = true;
};
};
};
};
};
}

View File

@@ -1,8 +1,22 @@
{ {
pkgs, pkgs,
lib,
config, config,
... ...
}: { }:
let
program = "ssh";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
programs.ssh = { programs.ssh = {
enable = true; enable = true;
enableDefaultConfig = false; enableDefaultConfig = false;
@@ -39,5 +53,5 @@
path = "/home/blake/.ssh/id_snowbelle.pub"; path = "/home/blake/.ssh/id_snowbelle.pub";
}; };
}; };
};
} }

View File

@@ -5,7 +5,20 @@
inputs, inputs,
... ...
}: }:
{
let
program = "stylix";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
imports = [inputs.stylix.homeManagerModules.default]; imports = [inputs.stylix.homeManagerModules.default];
};
} }

View File

@@ -1,10 +1,24 @@
{ {
pkgs, pkgs,
lib,
config, config,
... ...
}: { }:
let
program = "waybar";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
# just using the normal lfrc # just using the normal lfrc
programs.waybar = { programs.${program} = {
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
@@ -290,4 +304,5 @@
nerd-fonts.ubuntu nerd-fonts.ubuntu
nerd-fonts.ubuntu-mono nerd-fonts.ubuntu-mono
]; ];
};
} }

View File

@@ -1,8 +1,21 @@
{ {
pkgs, pkgs,
lib,
config, config,
... ...
}: { }:
let
program = "xdg";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [xdg-ninja]; home.packages = with pkgs; [xdg-ninja];
xdg = if pkgs.system == "x86_64-darwin" then {} else { xdg = if pkgs.system == "x86_64-darwin" then {} else {
@@ -32,4 +45,5 @@
_JAVA_OPTIONS=''-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java''; _JAVA_OPTIONS=''-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java'';
}; };
};
} }

View File

@@ -1,15 +1,28 @@
{ {
pkgs, pkgs,
lib,
config, config,
... ...
}: { }:
let
program = "zsh";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
# export some defaults # export some defaults
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
PAGER = "less"; PAGER = "less";
}; };
programs.zsh = { programs.${program} = {
enable = true; enable = true;
dotDir = ".config/zsh"; dotDir = ".config/zsh";
autocd = true; autocd = true;
@@ -142,4 +155,5 @@
}; };
# rid the world of ~/.zshenv # rid the world of ~/.zshenv
#home.file.".zshenv".enable = false; #home.file.".zshenv".enable = false;
};
} }

View File

@@ -15,6 +15,15 @@
lf.enable = true; lf.enable = true;
kitty.enable = true; kitty.enable = true;
librewolf.enable = true; librewolf.enable = true;
waybar.enable = true;
hypr.enable = true;
nvf.enable = true;
zsh.enable = true;
ssh.enable = true;
gpg.enable = true;
git.enable = true;
xdg.enable = true;
}; };