diff --git a/flake.nix b/flake.nix index 95f6633..64c0fc7 100644 --- a/flake.nix +++ b/flake.nix @@ -9,7 +9,7 @@ packages."x86_64-linux".default = (nvf.lib.neovimConfiguration { pkgs = nixpkgs.legacyPackages."x86_64-linux"; - modules = [ ./nvf-configuration.nix ]; + modules = [ ./secondconfig.nix ]; }).neovim; nixosConfiguration.nixos = nixpkgs.lib.nixosSystem { diff --git a/nvf-configuration.nix b/nvf-configuration.nix index 923aa9d..de48013 100644 --- a/nvf-configuration.nix +++ b/nvf-configuration.nix @@ -9,21 +9,21 @@ base16-colors = { base00 = "#000000"; - base01 = "#ff0000"; - base02 = "#33ff00"; - base03 = "#ff0099"; - base04 = "#0066ff"; - base05 = "#cc00ff"; + base01 = "#ff0000"; + base02 = "#33ff00"; + base03 = "#ff0099"; + base04 = "#0066ff"; + base05 = "#cc00ff"; base06 = "#00ffff"; - base07 = "#d0d0d0"; - base08 = "#808080"; - base09 = "#ff9900"; - base0A = "#404040"; - base0B = "#606060"; - base0C = "#c0c0c0"; - base0D = "#e0e0e0"; - base0E = "#3300ff"; - base0F = "#ffffff"; + base07 = "#d0d0d0"; + base08 = "#808080"; + base09 = "#ff9900"; + base0A = "#404040"; + base0B = "#606060"; + base0C = "#c0c0c0"; + base0D = "#e0e0e0"; + base0E = "#3300ff"; + base0F = "#ffffff"; }; }; diff --git a/secondconfig.nix b/secondconfig.nix new file mode 100644 index 0000000..5b0f7c6 --- /dev/null +++ b/secondconfig.nix @@ -0,0 +1,268 @@ +{ pkgs, lib, ...}: + +{ + config.vim = { + viAlias = true; + vimAlias = true; + debugMode = { + enable = false; + level = 16; + logFile = "/tmp/nvim.log"; + }; + + spellcheck = { + enable = true; + }; + + lsp = { + formatOnSave = true; + lspkind.enable = false; + lightbulb.enable = true; + lspsaga.enable = false; + trouble.enable = true; + lspSignature.enable = true; + otter-nvim.enable = true; + lsplines.enable = true; + nvim-docs-view.enable = true; + }; + + debugger = { + nvim-dap = { + enable = true; + ui.enable = true; + }; + }; + + # This section does not include a comprehensive list of available language modules. + # To list all available language module options, please visit the nvf manual. + languages = { + enableLSP = true; + enableFormat = true; + enableTreesitter = true; + enableExtraDiagnostics = true; + + # Languages that will be supported in default and maximal configurations. + nix.enable = true; + markdown.enable = true; + + # Languages that are enabled in the maximal configuration. + bash.enable = true; + clang.enable = true; + css.enable = true; + html.enable = true; + sql.enable = true; + java.enable = true; + kotlin.enable = true; + ts.enable = true; + go.enable = true; + lua.enable = true; + zig.enable = true; + python.enable = true; + typst.enable = true; + rust = { + enable = true; + crates.enable = true; + }; + + # Language modules that are not as common. + assembly.enable = false; + astro.enable = false; + nu.enable = false; + csharp.enable = false; + julia.enable = false; + vala.enable = false; + scala.enable = false; + r.enable = false; + gleam.enable = false; + dart.enable = false; + ocaml.enable = false; + elixir.enable = false; + haskell.enable = false; + ruby.enable = false; + + tailwind.enable = false; + svelte.enable = false; + + # Nim LSP is broken on Darwin and therefore + # should be disabled by default. Users may still enable + # `vim.languages.vim` to enable it, this does not restrict + # that. + # See: + nim.enable = false; + }; + + 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; + + # Fun + cellular-automaton.enable = false; + }; + + statusline = { + lualine = { + enable = true; + theme = "16color"; + }; + }; + + theme = { + enable = true; + name = "base16"; + style = "dark"; + transparent = false; + + base16-colors = { + base00 = "#000000"; + base01 = "#ff0000"; + base02 = "#33ff00"; + base03 = "#ff0099"; + base04 = "#0066ff"; + base05 = "#cc00ff"; + base06 = "#00ffff"; + base07 = "#d0d0d0"; + base08 = "#808080"; + base09 = "#ff9900"; + base0A = "#404040"; + base0B = "#606060"; + base0C = "#c0c0c0"; + base0D = "#e0e0e0"; + base0E = "#3300ff"; + base0F = "#ffffff"; + }; + }; + + 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; + gitsigns.codeActions.enable = false; # throws an annoying debug message + }; + + minimap = { + minimap-vim.enable = false; + codewindow.enable = true; # lighter, faster, and uses lua for configuration + }; + + dashboard = { + dashboard-nvim.enable = false; + alpha.enable = true; + }; + + notify = { + nvim-notify.enable = true; + }; + + projects = { + project-nvim.enable = true; + }; + + utility = { + ccc.enable = false; + vim-wakatime.enable = false; + icon-picker.enable = true; + surround.enable = true; + diffview-nvim.enable = true; + motion = { + hop.enable = true; + leap.enable = true; + precognition.enable = true; + }; + + images = { + image-nvim.enable = false; + }; + }; + + notes = { + obsidian.enable = false; # FIXME: neovim fails to build if obsidian is enabled + neorg.enable = false; + orgmode.enable = false; + 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; # the theme looks terrible with catppuccin + illuminate.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"]; + }; + }; + fastaction.enable = true; + }; + + 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; + }; + }; +}