testing nvf
This commit is contained in:
2350
flake.lock
generated
2350
flake.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -87,6 +87,8 @@
|
|||||||
# Miscellaneous
|
# Miscellaneous
|
||||||
helix-flake.url = "github:helix-editor/helix";
|
helix-flake.url = "github:helix-editor/helix";
|
||||||
|
|
||||||
|
nvf.url = "github:notashelf/nvf";
|
||||||
|
|
||||||
nix-gaming = {
|
nix-gaming = {
|
||||||
url = "github:fufexan/nix-gaming";
|
url = "github:fufexan/nix-gaming";
|
||||||
inputs = {
|
inputs = {
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
./home/programs/misc
|
./home/programs/misc
|
||||||
./home/programs/mpv
|
./home/programs/mpv
|
||||||
./home/programs/neovim
|
./home/programs/neovim
|
||||||
|
./home/programs/nvf
|
||||||
./home/programs/nwg-bar
|
./home/programs/nwg-bar
|
||||||
./home/programs/rofi
|
./home/programs/rofi
|
||||||
./home/programs/ssh
|
./home/programs/ssh
|
||||||
|
|||||||
342
modules/home/programs/nvf/default.nix
Normal file
342
modules/home/programs/nvf/default.nix
Normal file
@@ -0,0 +1,342 @@
|
|||||||
|
# Yanked from @Soliprem to try it out
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
cfg = config.home.programs.nvf;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
home.programs.nvf.enable = mkEnableOption "Enables nvf (neovim)";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.nvf = {
|
||||||
|
enable = true;
|
||||||
|
enableManpages = true;
|
||||||
|
settings = {
|
||||||
|
vim = {
|
||||||
|
searchCase = "smart";
|
||||||
|
useSystemClipboard = true;
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
lineNumberMode = "number";
|
||||||
|
undoFile = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
debugMode = {
|
||||||
|
enable = false;
|
||||||
|
level = 16;
|
||||||
|
logFile = "/tmp/nvim.log";
|
||||||
|
};
|
||||||
|
lsp = {
|
||||||
|
formatOnSave = false;
|
||||||
|
lspkind.enable = false;
|
||||||
|
lightbulb.enable = false;
|
||||||
|
lspsaga.enable = false;
|
||||||
|
otter-nvim = {
|
||||||
|
enable = true;
|
||||||
|
setupOpts.buffers.write_to_disk = true;
|
||||||
|
};
|
||||||
|
trouble.enable = true;
|
||||||
|
lspSignature.enable = true;
|
||||||
|
lsplines.enable = false;
|
||||||
|
nvim-docs-view.enable = false; # lags *horribly* whenever l is pressed
|
||||||
|
};
|
||||||
|
|
||||||
|
debugger = {
|
||||||
|
nvim-dap = {
|
||||||
|
enable = true;
|
||||||
|
ui.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
languages = {
|
||||||
|
enableLSP = true;
|
||||||
|
enableFormat = true;
|
||||||
|
enableTreesitter = true;
|
||||||
|
enableExtraDiagnostics = true;
|
||||||
|
nim.enable = false;
|
||||||
|
nix.enable = true;
|
||||||
|
markdown = {
|
||||||
|
enable = true;
|
||||||
|
# format.extraFiletypes = ["quarto" "rmarkdown"];
|
||||||
|
};
|
||||||
|
html.enable = true;
|
||||||
|
css.enable = true;
|
||||||
|
r.enable = false;
|
||||||
|
sql.enable = true;
|
||||||
|
java.enable = false;
|
||||||
|
ts.enable = true;
|
||||||
|
svelte.enable = false;
|
||||||
|
vala.enable = false;
|
||||||
|
go.enable = false;
|
||||||
|
elixir.enable = false;
|
||||||
|
zig.enable = false;
|
||||||
|
ocaml.enable = false;
|
||||||
|
nu.enable = false;
|
||||||
|
python.enable = true;
|
||||||
|
dart.enable = false;
|
||||||
|
lua.enable = true;
|
||||||
|
bash.enable = true;
|
||||||
|
tailwind.enable = false;
|
||||||
|
typst.enable = false;
|
||||||
|
julia.enable = false;
|
||||||
|
clang = {
|
||||||
|
enable = true;
|
||||||
|
lsp.server = "clangd";
|
||||||
|
};
|
||||||
|
|
||||||
|
rust = {
|
||||||
|
enable = true;
|
||||||
|
crates.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
visuals = {
|
||||||
|
nvim-web-devicons.enable = true;
|
||||||
|
cellular-automaton.enable = true;
|
||||||
|
fidget-nvim.enable = true;
|
||||||
|
highlight-undo.enable = true;
|
||||||
|
|
||||||
|
indent-blankline = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nvim-cursorline = {
|
||||||
|
enable = true;
|
||||||
|
setupOpts = {
|
||||||
|
lineTimeout = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
statusline = {
|
||||||
|
lualine = {
|
||||||
|
enable = true;
|
||||||
|
theme = "gruvbox";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# luaConfigRC.basic = ''
|
||||||
|
# -- vim.opt.undofile = true
|
||||||
|
# vim.g.nvim_ghost_use_script = 1
|
||||||
|
# vim.g.nvim_ghost_python_executable = 'python'
|
||||||
|
# '';
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
enable = true;
|
||||||
|
name = "gruvbox";
|
||||||
|
style = "dark";
|
||||||
|
transparent = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
autopairs.nvim-autopairs.enable = true;
|
||||||
|
|
||||||
|
autocomplete.nvim-cmp.enable = true;
|
||||||
|
snippets.luasnip.enable = true;
|
||||||
|
|
||||||
|
filetree = {
|
||||||
|
nvimTree = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tabline = {
|
||||||
|
nvimBufferline.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
treesitter = {
|
||||||
|
context.enable = true;
|
||||||
|
grammars = [
|
||||||
|
pkgs.vimPlugins.nvim-treesitter-parsers.nu
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
binds = {
|
||||||
|
whichKey.enable = true;
|
||||||
|
cheatsheet.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
telescope.enable = true;
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
gitsigns.enable = true;
|
||||||
|
gitsigns.codeActions.enable = false; # throws an annoying debug message
|
||||||
|
};
|
||||||
|
|
||||||
|
minimap = {
|
||||||
|
minimap-vim.enable = false;
|
||||||
|
codewindow.enable = false; # lighter, faster, and uses lua for configuration
|
||||||
|
};
|
||||||
|
|
||||||
|
dashboard = {
|
||||||
|
dashboard-nvim.enable = false;
|
||||||
|
alpha.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
notify = {
|
||||||
|
nvim-notify.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
projects = {
|
||||||
|
project-nvim.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
utility = {
|
||||||
|
ccc.enable = false;
|
||||||
|
icon-picker.enable = true;
|
||||||
|
surround.enable = true;
|
||||||
|
diffview-nvim.enable = true;
|
||||||
|
motion = {
|
||||||
|
hop.enable = false;
|
||||||
|
leap.enable = true;
|
||||||
|
precognition.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
images = {
|
||||||
|
image-nvim.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
notes = {
|
||||||
|
obsidian.enable = false; # FIXME: neovim fails to build if obsidian is enabled
|
||||||
|
orgmode.enable = false;
|
||||||
|
mind-nvim.enable = false;
|
||||||
|
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; # the theme looks terrible with catppuccin
|
||||||
|
illuminate.enable = true;
|
||||||
|
# fastaction.enable = true;
|
||||||
|
breadcrumbs = {
|
||||||
|
enable = true;
|
||||||
|
navbuddy.enable = true;
|
||||||
|
};
|
||||||
|
smartcolumn = {
|
||||||
|
enable = true;
|
||||||
|
setupOpts.custom_colorcolumn = {
|
||||||
|
# this is a freeform module, it's `buftype = int;` for configuring column position
|
||||||
|
nix = "110";
|
||||||
|
ruby = "120";
|
||||||
|
java = "130";
|
||||||
|
# go = ["90 130"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
assistant = {
|
||||||
|
chatgpt.enable = false;
|
||||||
|
copilot = {
|
||||||
|
enable = false;
|
||||||
|
cmp.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
session = {
|
||||||
|
nvim-session-manager.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
gestures = {
|
||||||
|
gesture-nvim.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
comments = {
|
||||||
|
comment-nvim.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
presence = {
|
||||||
|
neocord.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
lazy.plugins = with pkgs.vimPlugins; {
|
||||||
|
# ghost-nvim = {
|
||||||
|
# package = pkgs.vimUtils.buildVimPlugin {
|
||||||
|
# name = "ghost-nvim";
|
||||||
|
# src = pkgs.fetchFromGitHub {
|
||||||
|
# owner = "subnut";
|
||||||
|
# repo = "nvim-ghost.nvim";
|
||||||
|
# rev = "v0.5.4";
|
||||||
|
# hash = "sha256-XldDgPqVeIfUjaRLVUMp88eHBHLzoVgOmT3gupPs+ao=";
|
||||||
|
# };
|
||||||
|
# setup = ''
|
||||||
|
# require('ghost').setup(),
|
||||||
|
# '';
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
${oil-nvim.pname} = {
|
||||||
|
lazy = true;
|
||||||
|
package = oil-nvim;
|
||||||
|
setupModule = "oil";
|
||||||
|
after = ''
|
||||||
|
print('loaded oil')
|
||||||
|
'';
|
||||||
|
cmd = ["Oil"];
|
||||||
|
keys = [
|
||||||
|
{
|
||||||
|
key = "-";
|
||||||
|
action = ":Oil<CR>";
|
||||||
|
mode = "n";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
${zen-mode-nvim.pname} = {
|
||||||
|
lazy = true;
|
||||||
|
package = zen-mode-nvim;
|
||||||
|
setupModule = "zen-mode-nvim";
|
||||||
|
cmd = ["ZenMode"];
|
||||||
|
};
|
||||||
|
${eyeliner-nvim.pname} = {
|
||||||
|
package = eyeliner-nvim;
|
||||||
|
event = ["BufEnter"];
|
||||||
|
after = ''print('hello')'';
|
||||||
|
};
|
||||||
|
${quarto-nvim.pname} = {
|
||||||
|
lazy = true;
|
||||||
|
cmd = "QuartoPreview";
|
||||||
|
package = quarto-nvim;
|
||||||
|
};
|
||||||
|
${typst-preview-nvim.pname} = {
|
||||||
|
lazy = true;
|
||||||
|
cmd = "TypstPreview";
|
||||||
|
package = typst-preview-nvim;
|
||||||
|
setupOpts = {
|
||||||
|
open_cmd = "zen %s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "<esc>";
|
||||||
|
mode = "n";
|
||||||
|
action = ":noh<CR>";
|
||||||
|
silent = true;
|
||||||
|
desc = "removes search highlight when pressing esc";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "<leader><leader>";
|
||||||
|
mode = "n";
|
||||||
|
action = ":Telescope find_files<CR>";
|
||||||
|
silent = true;
|
||||||
|
desc = "removes search highlight when pressing esc";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -71,6 +71,9 @@
|
|||||||
neovim = {
|
neovim = {
|
||||||
enable = false;
|
enable = false;
|
||||||
};
|
};
|
||||||
|
nvf = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
nwg-bar = {
|
nwg-bar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
"cnst@cnix" =
|
"cnst@cnix" =
|
||||||
sharedImports
|
sharedImports
|
||||||
++ [
|
++ [
|
||||||
|
inputs.nvf.homeManagerModules.default
|
||||||
./cnst
|
./cnst
|
||||||
];
|
];
|
||||||
"cnst@cnixpad" =
|
"cnst@cnixpad" =
|
||||||
|
|||||||
Reference in New Issue
Block a user