add nvim and config
This commit is contained in:
parent
ecb833b4f9
commit
0764864142
6 changed files with 3226 additions and 12 deletions
3028
flake.lock
3028
flake.lock
File diff suppressed because it is too large
Load diff
|
@ -92,6 +92,9 @@
|
||||||
url = "github:hyprwm/hyprland-plugins";
|
url = "github:hyprwm/hyprland-plugins";
|
||||||
inputs.hyprland.follows = "hyprland";
|
inputs.hyprland.follows = "hyprland";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# nvf - A highly modular, extensible and distro-agnostic Neovim configuration framework for Nix/NixOS.
|
||||||
|
nvf.url = "github:notashelf/nvf";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
@ -106,6 +109,7 @@
|
||||||
lix-module,
|
lix-module,
|
||||||
vscode-server,
|
vscode-server,
|
||||||
krewfile,
|
krewfile,
|
||||||
|
nvf,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
forAllSystems = nixpkgs.lib.genAttrs [
|
forAllSystems = nixpkgs.lib.genAttrs [
|
||||||
|
@ -146,6 +150,7 @@
|
||||||
baseModules ? [
|
baseModules ? [
|
||||||
sops-nix.nixosModules.sops
|
sops-nix.nixosModules.sops
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
|
nvf.nixosModules.default
|
||||||
./nixos/profiles/global.nix # all machines get a global profile
|
./nixos/profiles/global.nix # all machines get a global profile
|
||||||
./nixos/modules/nixos # all machines get nixos modules
|
./nixos/modules/nixos # all machines get nixos modules
|
||||||
./nixos/hosts/${hostname} # load this host's config folder for machine-specific config
|
./nixos/hosts/${hostname} # load this host's config folder for machine-specific config
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./nvim.nix
|
||||||
./vim.nix
|
./vim.nix
|
||||||
./vscode.nix
|
./vscode.nix
|
||||||
];
|
];
|
||||||
|
|
187
nixos/modules/nixos/editor/nvim.nix
Normal file
187
nixos/modules/nixos/editor/nvim.nix
Normal file
|
@ -0,0 +1,187 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.mySystem.editor.nvim;
|
||||||
|
in {
|
||||||
|
options.mySystem.editor.nvim.enable = mkEnableOption "nvim";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
# Enable nvim and configure plugins/settings
|
||||||
|
programs.nvf = {
|
||||||
|
enable = true;
|
||||||
|
settings.vim = {
|
||||||
|
viAlias = false;
|
||||||
|
vimAlias = true;
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
formatOnSave = true;
|
||||||
|
lspsaga.enable = false;
|
||||||
|
trouble.enable = true;
|
||||||
|
lspSignature.enable = true;
|
||||||
|
otter-nvim.enable = true;
|
||||||
|
lsplines.enable = true;
|
||||||
|
nvim-docs-view.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
languages = {
|
||||||
|
enableLSP = true;
|
||||||
|
enableFormat = true;
|
||||||
|
enableTreesitter = true;
|
||||||
|
enableExtraDiagnostics = true;
|
||||||
|
|
||||||
|
nix.enable = true;
|
||||||
|
markdown.enable = true;
|
||||||
|
bash.enable = true;
|
||||||
|
css.enable = true;
|
||||||
|
html.enable = true;
|
||||||
|
sql.enable = true;
|
||||||
|
ts.enable = true;
|
||||||
|
go.enable = true;
|
||||||
|
lua.enable = true;
|
||||||
|
zig.enable = true;
|
||||||
|
python.enable = true;
|
||||||
|
rust = {
|
||||||
|
enable = true;
|
||||||
|
crates.enable = true;
|
||||||
|
};
|
||||||
|
astro.enable = true;
|
||||||
|
nu.enable = true;
|
||||||
|
csharp.enable = true;
|
||||||
|
tailwind.enable = true;
|
||||||
|
};
|
||||||
|
visuals = {
|
||||||
|
nvim-scrollbar.enable = true;
|
||||||
|
nvim-web-devicons.enable = true;
|
||||||
|
nvim-cursorline.enable = true;
|
||||||
|
cinnamon-nvim.enable = true;
|
||||||
|
fidget-nvim.enable = true;
|
||||||
|
highlight-undo.enable = true;
|
||||||
|
indent-blankline.enable = true;
|
||||||
|
cellular-automaton.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
statusline = {
|
||||||
|
lualine = {
|
||||||
|
enable = true;
|
||||||
|
theme = "catppuccin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
enable = true;
|
||||||
|
name = "catppuccin";
|
||||||
|
style = "mocha";
|
||||||
|
transparent = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
autopairs.nvim-autopairs.enable = true;
|
||||||
|
|
||||||
|
autocomplete.nvim-cmp.enable = true;
|
||||||
|
snippets.luasnip.enable = true;
|
||||||
|
|
||||||
|
filetree.neo-tree.enable = true;
|
||||||
|
|
||||||
|
tabline.nvimBufferline.enable = true;
|
||||||
|
|
||||||
|
treesitter.context.enable = true;
|
||||||
|
binds = {
|
||||||
|
whichKey.enable = true;
|
||||||
|
cheatsheet.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
telescope.enable = true;
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
gitsigns = {
|
||||||
|
enable = true;
|
||||||
|
codeActions.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
minimap = {
|
||||||
|
minimap-vim.enable = false;
|
||||||
|
codewindow.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
dashboard = {
|
||||||
|
dashboard-nvim.enable = false;
|
||||||
|
alpha.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
notify = {
|
||||||
|
nvim-notify.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
projects = {
|
||||||
|
project-nvim.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
utility = {
|
||||||
|
vim-wakatime.enable = true;
|
||||||
|
icon-picker.enable = true;
|
||||||
|
surround.enable = true;
|
||||||
|
diffview-nvim.enable = true;
|
||||||
|
yanky-nvim.enable = false;
|
||||||
|
motion = {
|
||||||
|
hop.enable = true;
|
||||||
|
leap.enable = true;
|
||||||
|
precognition.enable = true;
|
||||||
|
};
|
||||||
|
images = {
|
||||||
|
image-nvim.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
notes = {
|
||||||
|
mind-nvim.enable = true;
|
||||||
|
todo-comments.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
terminal = {
|
||||||
|
toggleterm = {
|
||||||
|
enable = true;
|
||||||
|
lazygit.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ui = {
|
||||||
|
borders.enable = true;
|
||||||
|
noice.enable = true;
|
||||||
|
colorizer.enable = true;
|
||||||
|
modes-nvim.enable = false;
|
||||||
|
illuminate.enable = true;
|
||||||
|
breadcrumbs = {
|
||||||
|
enable = true;
|
||||||
|
navbuddy.enable = true;
|
||||||
|
};
|
||||||
|
smartcolumn = {
|
||||||
|
enable = true;
|
||||||
|
setupOpts.custom_colorcolumn = {
|
||||||
|
nix = "110";
|
||||||
|
ruby = "120";
|
||||||
|
java = "130";
|
||||||
|
go = ["90" "130"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
fastaction.enable = true;
|
||||||
|
};
|
||||||
|
assistant = {
|
||||||
|
copilot = {
|
||||||
|
enable = true;
|
||||||
|
cmp.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
session = {
|
||||||
|
nvim-session-manager.enable = false;
|
||||||
|
};
|
||||||
|
comments = {
|
||||||
|
comment-nvim.enable = true;
|
||||||
|
};
|
||||||
|
presence = {
|
||||||
|
neocord.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,12 +2,9 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; {
|
||||||
with lib;
|
|
||||||
{
|
|
||||||
# NOTE
|
# NOTE
|
||||||
# Some 'global' areas have defaults set in their respective modules.
|
# Some 'global' areas have defaults set in their respective modules.
|
||||||
# These will be applied when the modules are loaded
|
# These will be applied when the modules are loaded
|
||||||
|
@ -22,10 +19,13 @@ with lib;
|
||||||
boot.tmp.cleanOnBoot = true;
|
boot.tmp.cleanOnBoot = true;
|
||||||
mySystem = {
|
mySystem = {
|
||||||
# basics for all devices
|
# basics for all devices
|
||||||
editor.vim.enable = true;
|
editor = {
|
||||||
|
nvim.enable = true;
|
||||||
|
vim.enable = true;
|
||||||
|
};
|
||||||
time.timeZone = "America/Chicago";
|
time.timeZone = "America/Chicago";
|
||||||
security.increaseWheelLoginLimits = true;
|
security.increaseWheelLoginLimits = true;
|
||||||
system.packages = [ pkgs.bat ];
|
system.packages = [pkgs.bat];
|
||||||
domain = "hsn.dev";
|
domain = "hsn.dev";
|
||||||
shell.fish.enable = true;
|
shell.fish.enable = true;
|
||||||
};
|
};
|
||||||
|
@ -43,5 +43,4 @@ with lib;
|
||||||
|
|
||||||
networking.domain = config.mySystem.domain;
|
networking.domain = config.mySystem.domain;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,7 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
# Role for dev stations
|
# Role for dev stations
|
||||||
# Could be a workstatio or a headless server.
|
# Could be a workstation or a headless server.
|
||||||
|
|
||||||
{
|
{
|
||||||
config = {
|
config = {
|
||||||
# git & vim are in global
|
# git & vim are in global
|
||||||
|
@ -40,6 +39,7 @@
|
||||||
shfmt
|
shfmt
|
||||||
statix
|
statix
|
||||||
tmux
|
tmux
|
||||||
|
#unstable.aider-chat
|
||||||
unstable.bottom
|
unstable.bottom
|
||||||
unstable.cyme
|
unstable.cyme
|
||||||
unstable.go-task
|
unstable.go-task
|
||||||
|
|
Loading…
Reference in a new issue