diff --git a/homes/floppydisk/default.nix b/homes/floppydisk/default.nix index d3fb2da..716e446 100644 --- a/homes/floppydisk/default.nix +++ b/homes/floppydisk/default.nix @@ -14,7 +14,7 @@ # inputs.nix-colors.homeManagerModules.default # You can also split up your configuration and import pieces of it here: - # ./nvim.nix + ./neovim-flake.nix ]; home = { diff --git a/homes/floppydisk/neovim-flake.nix b/homes/floppydisk/neovim-flake.nix new file mode 100644 index 0000000..e8b1473 --- /dev/null +++ b/homes/floppydisk/neovim-flake.nix @@ -0,0 +1,193 @@ +{inputs, ...}: { + imports = [ + inputs.neovim-flake.homeManagerModules.default + ]; + + programs.neovim-flake = { + enable = true; + settings = { + vim = { + viAlias = true; + vimAlias = true; + debugMode = { + enable = false; + level = 20; + logFile = "/tmp/nvim.log"; + }; + }; + + vim.lsp = { + formatOnSave = true; + lspkind.enable = false; + lightbulb.enable = true; + lspsaga.enable = false; + nvimCodeActionMenu.enable = true; + trouble.enable = true; + lspSignature.enable = true; + }; + + vim.languages = { + enableLSP = true; + enableFormat = true; + enableTreesitter = true; + enableExtraDiagnostics = true; + + nix.enable = true; + html.enable = true; + clang.enable = false; + sql.enable = false; + rust = { + enable = false; + crates.enable = false; + }; + ts.enable = true; + go.enable = true; + zig.enable = false; + python.enable = false; + dart.enable = false; + elixir.enable = false; + }; + + vim.visuals = { + enable = true; + nvimWebDevicons.enable = true; + scrollBar.enable = true; + smoothScroll.enable = true; + cellularAutomaton.enable = true; + fidget-nvim.enable = true; + indentBlankline = { + enable = true; + fillChar = null; + eolChar = null; + showCurrContext = true; + }; + cursorWordline = { + enable = true; + lineTimeout = 0; + }; + }; + + vim.statusline = { + lualine = { + enable = true; + theme = "onedark"; + }; + }; + + vim.theme = { + enable = true; + name = "onedark"; + style = "dark"; + transparent = false; + }; + vim.autopairs.enable = true; + + vim.autocomplete = { + enable = true; + type = "nvim-cmp"; + }; + + vim.filetree = { + nvimTreeLua = { + enable = true; + renderer = { + rootFolderLabel = null; + }; + view = { + width = 25; + }; + }; + }; + + vim.tabline = { + nvimBufferline.enable = true; + }; + + vim.treesitter.context.enable = true; + + vim.binds = { + whichKey.enable = true; + cheatsheet.enable = true; + }; + + vim.telescope.enable = true; + + vim.git = { + enable = true; + gitsigns.enable = true; + gitsigns.codeActions = false; + }; + + vim.minimap = { + minimap-vim.enable = false; + codewindow.enable = true; # lighter, faster, and uses lua for configuration + }; + + vim.dashboard = { + dashboard-nvim.enable = false; + alpha.enable = true; + }; + + vim.notify = { + nvim-notify.enable = true; + }; + + vim.projects = { + project-nvim.enable = true; + }; + + vim.utility = { + colorizer.enable = true; + icon-picker.enable = true; + diffview-nvim.enable = true; + motion = { + hop.enable = true; + leap.enable = false; + }; + }; + + vim.notes = { + mind-nvim.enable = true; + todo-comments.enable = true; + }; + + vim.terminal = { + toggleterm.enable = true; + }; + + vim.ui = { + noice.enable = true; + smartcolumn.enable = true; + }; + + vim.assistant = { + copilot.enable = true; + }; + + vim.session = { + nvim-session-manager.enable = true; + }; + + vim.gestures = { + gesture-nvim.enable = false; + }; + + vim.comments = { + comment-nvim.enable = true; + }; + + vim.presence = { + presence-nvim = { + enable = true; + auto_update = true; + image_text = "The Superior Text Editor"; + client_id = "793271441293967371"; + main_image = "neovim"; + rich_presence = { + editing_text = "Editing %s"; + }; + }; + }; + }; + }; +}