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";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
|
||||
# nvf - A highly modular, extensible and distro-agnostic Neovim configuration framework for Nix/NixOS.
|
||||
nvf.url = "github:notashelf/nvf";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
|
@ -106,6 +109,7 @@
|
|||
lix-module,
|
||||
vscode-server,
|
||||
krewfile,
|
||||
nvf,
|
||||
...
|
||||
} @ inputs: let
|
||||
forAllSystems = nixpkgs.lib.genAttrs [
|
||||
|
@ -146,6 +150,7 @@
|
|||
baseModules ? [
|
||||
sops-nix.nixosModules.sops
|
||||
home-manager.nixosModules.home-manager
|
||||
nvf.nixosModules.default
|
||||
./nixos/profiles/global.nix # all machines get a global profile
|
||||
./nixos/modules/nixos # all machines get nixos modules
|
||||
./nixos/hosts/${hostname} # load this host's config folder for machine-specific config
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./nvim.nix
|
||||
./vim.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,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
{
|
||||
with lib; {
|
||||
# NOTE
|
||||
# Some 'global' areas have defaults set in their respective modules.
|
||||
# These will be applied when the modules are loaded
|
||||
|
@ -22,7 +19,10 @@ with lib;
|
|||
boot.tmp.cleanOnBoot = true;
|
||||
mySystem = {
|
||||
# basics for all devices
|
||||
editor.vim.enable = true;
|
||||
editor = {
|
||||
nvim.enable = true;
|
||||
vim.enable = true;
|
||||
};
|
||||
time.timeZone = "America/Chicago";
|
||||
security.increaseWheelLoginLimits = true;
|
||||
system.packages = [pkgs.bat];
|
||||
|
@ -43,5 +43,4 @@ with lib;
|
|||
|
||||
networking.domain = config.mySystem.domain;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -4,8 +4,7 @@
|
|||
...
|
||||
}:
|
||||
# Role for dev stations
|
||||
# Could be a workstatio or a headless server.
|
||||
|
||||
# Could be a workstation or a headless server.
|
||||
{
|
||||
config = {
|
||||
# git & vim are in global
|
||||
|
@ -40,6 +39,7 @@
|
|||
shfmt
|
||||
statix
|
||||
tmux
|
||||
#unstable.aider-chat
|
||||
unstable.bottom
|
||||
unstable.cyme
|
||||
unstable.go-task
|
||||
|
|
Loading…
Reference in a new issue