Skip to main content

⚙ Configuration

📂 File Structure​

The files under config will be automatically loaded at the appropriate time, so you don't need to require those files manually. For more information, see general settings.

You can add your custom plugin specs under lua/plugins/. All files there will be automatically loaded by lazy.nvim. For more information, see configuring plugins.

~/.config/nvim
├── lua
│   ├── config
│   │   ├── autocmds.lua
│   │   ├── keymaps.lua
│   │   ├── lazy.lua
│   │   └── options.lua
│   └── plugins
│   ├── spec1.lua
│   ├── **
│   └── spec2.lua
└── init.toml

Icons & Colorscheme​

Icons & colorscheme can be configured as options for the LazyVim plugin.

For example in lua/plugins/core.lua

return {
{
"LazyVim/LazyVim",
opts = {
colorscheme = "catppuccin",
}
}
}

Default Settings​

{
-- colorscheme can be a string like `catppuccin` or a function that will load the colorscheme
---@type string|fun()
colorscheme = function()
require("tokyonight").load()
end,
-- load the default settings
defaults = {
autocmds = true, -- lazyvim.config.autocmds
keymaps = true, -- lazyvim.config.keymaps
-- lazyvim.config.options can't be configured here since that's loaded before lazyvim setup
-- if you want to disable loading options, add `package.loaded["lazyvim.config.options"] = true` to the top of your init.lua
},
news = {
-- When enabled, NEWS.md will be shown when changed.
-- This only contains big new features and breaking changes.
lazyvim = true,
-- Same but for Neovim's news.txt
neovim = false,
},
-- icons used by other plugins
-- stylua: ignore
icons = {
misc = {
dots = "󰇘",
},
ft = {
octo = "",
},
dap = {
Stopped = { "󰁕 ", "DiagnosticWarn", "DapStoppedLine" },
Breakpoint = " ",
BreakpointCondition = " ",
BreakpointRejected = { "ïȘ ", "DiagnosticError" },
LogPoint = ".>",
},
diagnostics = {
Error = " ",
Warn = " ",
Hint = " ",
Info = " ",
},
git = {
added = " ",
modified = " ",
removed = " ",
},
kinds = {
Array = "îȘŠ ",
Boolean = "󰹙 ",
Class = " ",
Codeium = "󰘊 ",
Color = " ",
Control = "î©š ",
Collapsed = " ",
Constant = "󰏿 ",
Constructor = "ïŁ ",
Copilot = "ï’ž ",
Enum = " ",
EnumMember = " ",
Event = "îȘ† ",
Field = " ",
File = "î©» ",
Folder = " ",
Function = "󰊕 ",
Interface = " ",
Key = "îȘ“ ",
Keyword = "î­ą ",
Method = "󰊕 ",
Module = " ",
Namespace = "ó°Šź ",
Null = " ",
Number = "󰎠 ",
Object = "îȘ‹ ",
Operator = "î­€ ",
Package = " ",
Property = " ",
Reference = " ",
Snippet = "î­Š ",
String = "îȘ± ",
Struct = "󰆌 ",
TabNine = "󰏚 ",
Text = "îȘ“ ",
TypeParameter = "îȘ’ ",
Unit = "îȘ– ",
Value = "îȘ“ ",
Variable = "󰀫 ",
},
},
---@type table<string, string[]|boolean>?
kind_filter = {
default = {
"Class",
"Constructor",
"Enum",
"Field",
"Function",
"Interface",
"Method",
"Module",
"Namespace",
"Package",
"Property",
"Struct",
"Trait",
},
markdown = false,
help = false,
-- you can specify a different filter for each filetype
lua = {
"Class",
"Constructor",
"Enum",
"Field",
"Function",
"Interface",
"Method",
"Module",
"Namespace",
-- "Package", -- remove package since luals uses it for control flow structures
"Property",
"Struct",
"Trait",
},
},
}