Ir al contenido principal
Versión: 1.2

Barra de Estado

LunarVim usa lualine como barra de estado predeterminada.

La configuración esta barra de estado, es identica a le de lualine. Para mas información visita Lualine.

Adicionalmente, LunarVim te ofrece multiples diseños y componentes para tu barra.

Diseños

Hay tres opciones de diseño que puedes establecer en tu LunarVim.

  • lvim

    El diseño por defecto de LunarVim.

  • default

    El diseño por defecto de lualine.

  • none

    Es un diseño vacio.

Para cambiar el diseño, basta con agregar la siguiente linea a la configuración.

lvim.builtin.lualine.style = "default" -- o "none"

Componentes

Puedes usar cualquier componente proporcionado por lualine o LunarVim .

Componentes de LunarVim

mode, branch, filename, diff, python_env, diagnostics, treesitter, lsp, location, progress, spaces, encoding, filetype, scrollbar

Puedes cambiar y combinar estos componentes a tu gusto, a continuación se muestran ejemplos de algunas de las combinaciones que se pueden hacer.

  • Para establecer el componente "diff" de lualine a la sección c del diseño "default".
lvim.builtin.lualine.style = "default"
lvim.builtin.lualine.sections.lualine_c = { "diff" }
  • Para establecer los componentes de "spaces" y "location" de LunarVim a la sección y y el componentes de "mode" de lualine a la sección a con el diseño "lvim".
-- No es necesario establecer el diseño = "lvim"
local components = require("lvim.core.lualine.components")

lvim.builtin.lualine.sections.lualine_a = { "mode" }
lvim.builtin.lualine.sections.lualine_y = {
components.spaces,
components.location
}

Tema

LunarVim detecta automaticamente el esquema de colores que tienes activado y lo establece como el tema de la barra de estado.

Para cambiar el esquema de colores, puedes revisar Esquemas de Colores.

Si no tienes un tema compatible con lualine, el sistema te mostrará automaticamente el tema por defecto de lualine.

Si quieres usar un tema diferente a tu esquema de colores en tu barra de estado, puedes seleccionarlo manualmente de esta forma.

lvim.builtin.lualine.options.theme = "gruvbox"

También puedes personalizar un tema ya existente.

local custom_gruvbox = require "lualine.themes.gruvbox_dark"
custom_gruvbox.insert.b = { fg = custom_gruvbox.insert.a.bg, gui = "bold" }
custom_gruvbox.visual.b = { fg = custom_gruvbox.visual.a.bg, gui = "bold" }
custom_gruvbox.replace.b = { fg = custom_gruvbox.replace.a.bg, gui = "bold" }
custom_gruvbox.command.b = { fg = custom_gruvbox.command.a.bg, gui = "bold" }

lvim.builtin.lualine.options.theme = custom_gruvbox

Puedes crear tu propio tema, debes seguir el siguiente esquema para que funcione.

local colors = {
color2 = "#0f1419",
color3 = "#ffee99",
color4 = "#e6e1cf",
color5 = "#14191f",
color13 = "#b8cc52",
color10 = "#36a3d9",
color8 = "#f07178",
color9 = "#3e4b59",
}

lvim.builtin.lualine.options.theme = {
normal = {
c = { fg = colors.color9, bg = colors.color2 },
a = { fg = colors.color2, bg = colors.color10, gui = "bold" },
b = { fg = colors.color4, bg = colors.color5 },
},
insert = {
a = { fg = colors.color2, bg = colors.color13, gui = "bold" },
b = { fg = colors.color4, bg = colors.color5 },
},
visual = {
a = { fg = colors.color2, bg = colors.color3, gui = "bold" },
b = { fg = colors.color4, bg = colors.color5 },
},
replace = {
a = { fg = colors.color2, bg = colors.color8, gui = "bold" },
b = { fg = colors.color4, bg = colors.color5 },
},
inactive = {
c = { fg = colors.color4, bg = colors.color2 },
a = { fg = colors.color4, bg = colors.color5, gui = "bold" },
b = { fg = colors.color4, bg = colors.color5 },
},
}

Callback

La función de callback está disponible para darle mas flexibilidad a la configuración.

Va a ejecutarse automaticamente cuando la configuración allá sido aplicada, a continuación encuentras un ejemplo de esta función.

lvim.builtin.lualine.on_config_done = function(lualine)
local config = lualine.get_config()
local components = require "core.lualine.components"

config.sections.lualine_x[3].color.bg = "#2c2c2c"
table.remove(config.sections.lualine_x, 2) -- Elimina el icono de treesitter
table.insert(config.sections.lualine_x, components.location)
lualine.setup(config)
end

Si quieres profundizar más en esta configuración, puedes tomar la configuración de jimcornmell como referencia.