diff --git a/home/file/default.nix b/home/file/default.nix index feaa69fa..51c36228 100644 --- a/home/file/default.nix +++ b/home/file/default.nix @@ -33,7 +33,7 @@ in ".config/fuzzel/fuzzel.ini".source = fuzzel.file; ".config/keyd/app.conf".text = keyd.text; ".config/mako/config".source = mako.file; - ".config/nvim/init.vim".text = nvim.text; + ".config/nvim/init.vim".source = nvim.init; ".config/swappy/config".source = swappy.config; ".config/sway/config".text = sway.text; ".config/tmux/tmux.conf".source = tmux.config; diff --git a/home/file/nvim/default.nix b/home/file/nvim/default.nix index cb1c1143..f576525c 100644 --- a/home/file/nvim/default.nix +++ b/home/file/nvim/default.nix @@ -6,104 +6,104 @@ ... }: let - nvimRc = - { runtimes, configs }: - let - accent = config.module.style.color.accent; - bg = config.module.style.color.bg.regular; - fg = config.module.style.color.fg.dark; - ollamaModel = config.module.ollama.primaryModel; - selection = config.module.style.color.selection; + # Directories for nvim to use. + runtimes = [ + "~/.cache/nvim" + "~/.cache/nvim/treesitter" + "${inputs.nvimAlign}" + "${inputs.nvimAutoclose}" + "${inputs.nvimBufferline}" + "${inputs.nvimCloseBuffers}" + "${inputs.nvimColorizer}" + "${inputs.nvimDevicons}" + "${inputs.nvimDressing}" + "${inputs.nvimGen}" + "${inputs.nvimGitsigns}" + "${inputs.nvimGruvboxMaterial}" + "${inputs.nvimIndentoMatic}" + "${inputs.nvimLspconfig}" + "${inputs.nvimPlenary}" + "${inputs.nvimTelescope}" + "${inputs.nvimTodo}" + "${inputs.nvimTreesitter}" + "${inputs.nvimTree}" + "${inputs.nvimTrouble}" + ]; - # Plugin paths to install. - runtimeRc = builtins.foldl' (acc: r: acc + "set runtimepath+=${r}\n") "" runtimes; + # Order of files to load. + configs = [ + ./module/key/Rekey.lua + ./module/key/Leader.lua + ./module/config/Autoread.lua + ./module/config/Etc.lua + ./module/config/Search.lua + ./module/config/Tab.lua + ./module/config/Highlight.lua + ./module/plugin/Filetree.lua + ./module/plugin/Gruvbox.lua + ./module/plugin/Bufferline.lua + ./module/plugin/Autoclose.lua + ./module/plugin/Gitsigns.lua + ./module/plugin/Trouble.lua + ./module/plugin/Closebuffers.lua + ./module/plugin/Telescope.lua + ./module/plugin/Todo.lua + ./module/plugin/Indent.lua + ./module/plugin/Align.lua + ./module/plugin/Treesitter.lua + ./module/plugin/Fold.lua + ./module/plugin/Gen.lua + ./module/plugin/Colorizer.lua + ./module/plugin/Dressing.lua + ./module/plugin/lsp/Go.lua + ./module/plugin/lsp/Haskell.lua + ./module/plugin/lsp/Lua.lua + ./module/plugin/lsp/Nix.lua + ./module/plugin/lsp/Rust.lua + ./module/plugin/lsp/Tex.lua + ./module/key/Autocomplete.lua + ./module/key/Buffer.lua + ./module/key/Cmd.lua + ./module/key/Colorscheme.lua + ./module/key/Filetree.lua + ./module/key/Gitsigns.lua + ./module/key/Navigation.lua + ./module/key/Prompt.lua + ./module/key/Save.lua + ./module/key/Sort.lua + ./module/key/TabWidth.lua + ./module/key/Telescope.lua + ./module/key/Terminal.lua + ./module/key/Trouble.lua + ]; - # My configuration files combined into one big file. - cfgRaw = pkgs.writeText "nvim-rc-raw" (util.readFiles configs); - cfg = pkgs.replaceVars cfgRaw { - inherit - accent - bg - fg - ollamaModel - selection - ; - }; + # Configuration. + accent = config.module.style.color.accent; + bg = config.module.style.color.bg.regular; + fg = config.module.style.color.fg.dark; + ollamaModel = config.module.ollama.primaryModel; + selection = config.module.style.color.selection; - # Tell Neovim to load this file. - configRc = "lua dofile(\"${cfg}\")"; - in - runtimeRc + configRc; + # Plugin paths to install. + runtimeRc = builtins.foldl' (acc: r: acc + "set runtimepath+=${r}\n") "" runtimes; + + # My configuration files combined into one big file. + cfgRaw = pkgs.writeText "nvim-rc-raw" (util.readFiles configs); + cfg = pkgs.replaceVars cfgRaw { + inherit + accent + bg + fg + ollamaModel + selection + ; + }; + + # Tell Neovim to load this file. + configRc = "lua dofile(\"${cfg}\")"; + + init = pkgs.writeText "nvim-init" (runtimeRc + configRc); in { - text = nvimRc { - runtimes = [ - "~/.cache/nvim" - "~/.cache/nvim/treesitter" - "${inputs.nvimAlign}" - "${inputs.nvimAutoclose}" - "${inputs.nvimBufferline}" - "${inputs.nvimCloseBuffers}" - "${inputs.nvimColorizer}" - "${inputs.nvimDevicons}" - "${inputs.nvimDressing}" - "${inputs.nvimGen}" - "${inputs.nvimGitsigns}" - "${inputs.nvimGruvboxMaterial}" - "${inputs.nvimIndentoMatic}" - "${inputs.nvimLspconfig}" - "${inputs.nvimPlenary}" - "${inputs.nvimTelescope}" - "${inputs.nvimTodo}" - "${inputs.nvimTreesitter}" - "${inputs.nvimTree}" - "${inputs.nvimTrouble}" - ]; - - configs = [ - ./module/key/Rekey.lua - ./module/key/Leader.lua - ./module/config/Autoread.lua - ./module/config/Etc.lua - ./module/config/Search.lua - ./module/config/Tab.lua - ./module/config/Highlight.lua - ./module/plugin/Filetree.lua - ./module/plugin/Gruvbox.lua - ./module/plugin/Bufferline.lua - ./module/plugin/Autoclose.lua - ./module/plugin/Gitsigns.lua - ./module/plugin/Trouble.lua - ./module/plugin/Closebuffers.lua - ./module/plugin/Telescope.lua - ./module/plugin/Todo.lua - ./module/plugin/Indent.lua - ./module/plugin/Align.lua - ./module/plugin/Treesitter.lua - ./module/plugin/Fold.lua - ./module/plugin/Gen.lua - ./module/plugin/Colorizer.lua - ./module/plugin/Dressing.lua - ./module/plugin/lsp/Go.lua - ./module/plugin/lsp/Haskell.lua - ./module/plugin/lsp/Lua.lua - ./module/plugin/lsp/Nix.lua - ./module/plugin/lsp/Rust.lua - ./module/plugin/lsp/Tex.lua - ./module/key/Autocomplete.lua - ./module/key/Buffer.lua - ./module/key/Cmd.lua - ./module/key/Colorscheme.lua - ./module/key/Filetree.lua - ./module/key/Gitsigns.lua - ./module/key/Navigation.lua - ./module/key/Prompt.lua - ./module/key/Save.lua - ./module/key/Sort.lua - ./module/key/TabWidth.lua - ./module/key/Telescope.lua - ./module/key/Terminal.lua - ./module/key/Trouble.lua - ]; - }; + inherit init; }