add config wrappers to everything in home manager
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
./waybar
|
||||
|
||||
./hypr
|
||||
./neovim
|
||||
./nvf
|
||||
./lf
|
||||
./zsh
|
||||
./ssh
|
||||
|
||||
@@ -4,9 +4,22 @@
|
||||
lib,
|
||||
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
|
||||
programs.git = {
|
||||
programs.${program} = {
|
||||
enable = true;
|
||||
userName = "blake";
|
||||
userEmail = "me@blakedheld.xyz";
|
||||
@@ -17,4 +30,5 @@
|
||||
push.autoSetupRemote = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,8 +3,20 @@
|
||||
lib,
|
||||
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;
|
||||
};
|
||||
services.gpg-agent = {
|
||||
@@ -17,4 +29,5 @@
|
||||
home.packages =
|
||||
lib.optional pkgs.stdenv.isDarwin pkgs.pinentry_mac
|
||||
++ lib.optional pkgs.stdenv.isLinux pkgs.pinentry-qt;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,22 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
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; [
|
||||
nwg-displays
|
||||
posy-cursors
|
||||
@@ -375,4 +389,5 @@
|
||||
#xdg.configFile."hypr/hyprland.conf" = {
|
||||
# source = config.lib.file.mkOutOfStoreSymlink "/home/blake/.nix/users/blake/dots/hypr/hyprland.conf";
|
||||
#};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
201
users/blake/dots/nvf/default.nix
Normal file
201
users/blake/dots/nvf/default.nix
Normal 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;
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +1,22 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
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 = {
|
||||
enable = true;
|
||||
enableDefaultConfig = false;
|
||||
@@ -39,5 +53,5 @@
|
||||
path = "/home/blake/.ssh/id_snowbelle.pub";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,7 +5,20 @@
|
||||
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];
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,10 +1,24 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
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
|
||||
programs.waybar = {
|
||||
programs.${program} = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
|
||||
@@ -290,4 +304,5 @@
|
||||
nerd-fonts.ubuntu
|
||||
nerd-fonts.ubuntu-mono
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,21 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
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];
|
||||
|
||||
xdg = if pkgs.system == "x86_64-darwin" then {} else {
|
||||
@@ -32,4 +45,5 @@
|
||||
_JAVA_OPTIONS=''-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java'';
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,15 +1,28 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
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
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
PAGER = "less";
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
programs.${program} = {
|
||||
enable = true;
|
||||
dotDir = ".config/zsh";
|
||||
autocd = true;
|
||||
@@ -142,4 +155,5 @@
|
||||
};
|
||||
# rid the world of ~/.zshenv
|
||||
#home.file.".zshenv".enable = false;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -15,6 +15,15 @@
|
||||
lf.enable = true;
|
||||
kitty.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;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user