feat(bar): add custom bar and remove lualine
This commit is contained in:
parent
d417baec56
commit
072c9771a5
@ -1,109 +1,109 @@
|
|||||||
return {
|
return {
|
||||||
"nvim-lualine/lualine.nvim",
|
-- "nvim-lualine/lualine.nvim",
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
-- dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
config = function()
|
-- config = function()
|
||||||
local lualine = require("lualine")
|
-- local lualine = require("lualine")
|
||||||
|
--
|
||||||
local colors = {
|
-- local colors = {
|
||||||
blue = "#268bd2",
|
-- blue = "#268bd2",
|
||||||
green = "#859900",
|
-- green = "#859900",
|
||||||
violet = "#6c71c4",
|
-- violet = "#6c71c4",
|
||||||
yellow = "#b58900",
|
-- yellow = "#b58900",
|
||||||
red = "#dc332f",
|
-- red = "#dc332f",
|
||||||
cream = "#fdf6e3",
|
-- cream = "#fdf6e3",
|
||||||
black = "#002b36",
|
-- black = "#002b36",
|
||||||
grey = "#073642",
|
-- grey = "#073642",
|
||||||
dark = "#002b36",
|
-- dark = "#002b36",
|
||||||
}
|
-- }
|
||||||
|
--
|
||||||
local solarized = {
|
-- local solarized = {
|
||||||
normal = {
|
-- normal = {
|
||||||
a = { bg = colors.dark, fg = colors.cream, gui = "bold" },
|
-- a = { bg = colors.dark, fg = colors.cream, gui = "bold" },
|
||||||
c = { bg = colors.grey, fg = colors.cream, gui = "bold" },
|
-- c = { bg = colors.grey, fg = colors.cream, gui = "bold" },
|
||||||
},
|
|
||||||
insert = {
|
|
||||||
a = { bg = colors.grey, fg = colors.cream, gui = "bold" },
|
|
||||||
c = { bg = colors.black, fg = colors.cream, gui = "bold" },
|
|
||||||
},
|
|
||||||
visual = {
|
|
||||||
a = { bg = colors.violet, fg = colors.black, gui = "bold" },
|
|
||||||
c = { bg = colors.dark, fg = colors.cream, gui = "bold" },
|
|
||||||
},
|
|
||||||
command = {
|
|
||||||
a = { bg = colors.green, fg = colors.black, gui = "bold" },
|
|
||||||
c = { bg = colors.black, fg = colors.cream, gui = "bold" },
|
|
||||||
},
|
|
||||||
replace = {
|
|
||||||
a = { bg = colors.blue, fg = colors.black, gui = "bold" },
|
|
||||||
c = { bg = colors.black, fg = colors.cream, gui = "bold" },
|
|
||||||
},
|
|
||||||
inactive = {
|
|
||||||
a = { bg = colors.green, fg = colors.black, gui = "bold" },
|
|
||||||
c = { bg = colors.black, fg = colors.cream, gui = "bold" },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- configure lualine with modified theme
|
|
||||||
lualine.setup({
|
|
||||||
options = {
|
|
||||||
theme = solarized,
|
|
||||||
component_separators = { left = "", right = "|" },
|
|
||||||
section_separators = { left = "", right = "" },
|
|
||||||
},
|
|
||||||
sections = {
|
|
||||||
lualine_a = {
|
|
||||||
"mode",
|
|
||||||
"branch",
|
|
||||||
"diff",
|
|
||||||
"diagnostics",
|
|
||||||
{
|
|
||||||
-- "buffers",
|
|
||||||
-- buffers_color = {
|
|
||||||
-- active = { bg = colors.yellow, fg = colors.black, gui = "bold" },
|
|
||||||
-- inactive = { bg = colors.grey, fg = colors.cream, gui = "italic" },
|
|
||||||
-- },
|
-- },
|
||||||
symbols = {
|
-- insert = {
|
||||||
modified = " ●",
|
-- a = { bg = colors.grey, fg = colors.cream, gui = "bold" },
|
||||||
alternate_file = " ",
|
-- c = { bg = colors.black, fg = colors.cream, gui = "bold" },
|
||||||
directory = "",
|
-- },
|
||||||
},
|
-- visual = {
|
||||||
mode = 2,
|
-- a = { bg = colors.violet, fg = colors.black, gui = "bold" },
|
||||||
},
|
-- c = { bg = colors.dark, fg = colors.cream, gui = "bold" },
|
||||||
},
|
-- },
|
||||||
lualine_b = {},
|
-- command = {
|
||||||
lualine_c = {
|
-- a = { bg = colors.green, fg = colors.black, gui = "bold" },
|
||||||
{
|
-- c = { bg = colors.black, fg = colors.cream, gui = "bold" },
|
||||||
"filename",
|
-- },
|
||||||
file_status = true,
|
-- replace = {
|
||||||
path = 3,
|
-- a = { bg = colors.blue, fg = colors.black, gui = "bold" },
|
||||||
},
|
-- c = { bg = colors.black, fg = colors.cream, gui = "bold" },
|
||||||
},
|
-- },
|
||||||
lualine_x = {},
|
-- inactive = {
|
||||||
lualine_y = {},
|
-- a = { bg = colors.green, fg = colors.black, gui = "bold" },
|
||||||
lualine_z = {
|
-- c = { bg = colors.black, fg = colors.cream, gui = "bold" },
|
||||||
"searchcount",
|
-- },
|
||||||
"selectioncount",
|
-- }
|
||||||
"encoding",
|
--
|
||||||
"fileformat",
|
-- -- configure lualine with modified theme
|
||||||
"filetype",
|
-- lualine.setup({
|
||||||
"progress",
|
-- options = {
|
||||||
"location",
|
-- theme = solarized,
|
||||||
},
|
-- component_separators = { left = "", right = "|" },
|
||||||
},
|
-- section_separators = { left = "", right = "" },
|
||||||
inactive_sections = {
|
-- },
|
||||||
lualine_a = {},
|
-- sections = {
|
||||||
lualine_b = {},
|
-- lualine_a = {
|
||||||
lualine_c = { "filename" },
|
-- "mode",
|
||||||
lualine_x = { "location" },
|
-- "branch",
|
||||||
lualine_y = {},
|
-- "diff",
|
||||||
lualine_z = {},
|
-- "diagnostics",
|
||||||
},
|
-- {
|
||||||
tabline = {},
|
-- -- "buffers",
|
||||||
winbar = {},
|
-- -- buffers_color = {
|
||||||
inactive_winbar = {},
|
-- -- active = { bg = colors.yellow, fg = colors.black, gui = "bold" },
|
||||||
extensions = {},
|
-- -- inactive = { bg = colors.grey, fg = colors.cream, gui = "italic" },
|
||||||
})
|
-- -- },
|
||||||
end,
|
-- symbols = {
|
||||||
|
-- modified = " ●",
|
||||||
|
-- alternate_file = " ",
|
||||||
|
-- directory = "",
|
||||||
|
-- },
|
||||||
|
-- mode = 2,
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- lualine_b = {},
|
||||||
|
-- lualine_c = {
|
||||||
|
-- {
|
||||||
|
-- "filename",
|
||||||
|
-- file_status = true,
|
||||||
|
-- path = 3,
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- lualine_x = {},
|
||||||
|
-- lualine_y = {},
|
||||||
|
-- lualine_z = {
|
||||||
|
-- "searchcount",
|
||||||
|
-- "selectioncount",
|
||||||
|
-- "encoding",
|
||||||
|
-- "fileformat",
|
||||||
|
-- "filetype",
|
||||||
|
-- "progress",
|
||||||
|
-- "location",
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- inactive_sections = {
|
||||||
|
-- lualine_a = {},
|
||||||
|
-- lualine_b = {},
|
||||||
|
-- lualine_c = { "filename" },
|
||||||
|
-- lualine_x = { "location" },
|
||||||
|
-- lualine_y = {},
|
||||||
|
-- lualine_z = {},
|
||||||
|
-- },
|
||||||
|
-- tabline = {},
|
||||||
|
-- winbar = {},
|
||||||
|
-- inactive_winbar = {},
|
||||||
|
-- extensions = {},
|
||||||
|
-- })
|
||||||
|
-- end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
101
lua/jabuxas/bar.lua
Normal file
101
lua/jabuxas/bar.lua
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
local Mode = {}
|
||||||
|
|
||||||
|
Mode.map = {
|
||||||
|
['n'] = 'NORMAL',
|
||||||
|
['no'] = 'O-PENDING',
|
||||||
|
['nov'] = 'O-PENDING',
|
||||||
|
['noV'] = 'O-PENDING',
|
||||||
|
['no\22'] = 'O-PENDING',
|
||||||
|
['niI'] = 'NORMAL',
|
||||||
|
['niR'] = 'NORMAL',
|
||||||
|
['niV'] = 'NORMAL',
|
||||||
|
['nt'] = 'NORMAL',
|
||||||
|
['ntT'] = 'NORMAL',
|
||||||
|
['v'] = 'VISUAL',
|
||||||
|
['vs'] = 'VISUAL',
|
||||||
|
['V'] = 'V-LINE',
|
||||||
|
['Vs'] = 'V-LINE',
|
||||||
|
['\22'] = 'V-BLOCK',
|
||||||
|
['\22s'] = 'V-BLOCK',
|
||||||
|
['s'] = 'SELECT',
|
||||||
|
['S'] = 'S-LINE',
|
||||||
|
['\19'] = 'S-BLOCK',
|
||||||
|
['i'] = 'INSERT',
|
||||||
|
['ic'] = 'INSERT',
|
||||||
|
['ix'] = 'INSERT',
|
||||||
|
['R'] = 'REPLACE',
|
||||||
|
['Rc'] = 'REPLACE',
|
||||||
|
['Rx'] = 'REPLACE',
|
||||||
|
['Rv'] = 'V-REPLACE',
|
||||||
|
['Rvc'] = 'V-REPLACE',
|
||||||
|
['Rvx'] = 'V-REPLACE',
|
||||||
|
['c'] = 'COMMAND',
|
||||||
|
['cv'] = 'EX',
|
||||||
|
['ce'] = 'EX',
|
||||||
|
['r'] = 'REPLACE',
|
||||||
|
['rm'] = 'MORE',
|
||||||
|
['r?'] = 'CONFIRM',
|
||||||
|
['!'] = 'SHELL',
|
||||||
|
['t'] = 'TERMINAL',
|
||||||
|
}
|
||||||
|
|
||||||
|
function Mode.get_mode()
|
||||||
|
local mode_code = vim.api.nvim_get_mode().mode
|
||||||
|
if Mode.map[mode_code] == nil then
|
||||||
|
return mode_code
|
||||||
|
end
|
||||||
|
return Mode.map[mode_code]
|
||||||
|
end
|
||||||
|
|
||||||
|
local function filename3()
|
||||||
|
return vim.fn.expand("%:t")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function location()
|
||||||
|
return vim.fn.line('.') .. ":" .. vim.fn.charcol('.')
|
||||||
|
end
|
||||||
|
|
||||||
|
local function progress()
|
||||||
|
local total_lines = vim.fn.line('$')
|
||||||
|
local current_line = vim.fn.line('.')
|
||||||
|
return math.floor((current_line / total_lines) * 100) .. "%%"
|
||||||
|
end
|
||||||
|
|
||||||
|
local function stats()
|
||||||
|
return location() .. " " .. progress()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function statusline_render()
|
||||||
|
local components = { Mode.get_mode(), filename3(), stats() }
|
||||||
|
local total_length = 0
|
||||||
|
for _, component in ipairs(components) do
|
||||||
|
total_length = total_length + vim.fn.strwidth(component)
|
||||||
|
end
|
||||||
|
|
||||||
|
local statusline_width = vim.fn.winwidth(0)
|
||||||
|
local available_space = statusline_width - total_length
|
||||||
|
local spaces_between = math.floor(available_space / (#components - 1))
|
||||||
|
|
||||||
|
local statusline = ""
|
||||||
|
for i, component in ipairs(components) do
|
||||||
|
statusline = statusline .. component
|
||||||
|
if i < #components then
|
||||||
|
statusline = statusline .. string.rep(" ", spaces_between)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return statusline
|
||||||
|
end
|
||||||
|
|
||||||
|
local autocmd = vim.api.nvim_create_autocmd
|
||||||
|
autocmd(
|
||||||
|
{
|
||||||
|
"WinEnter", "BufEnter", "BufWritePost", "SessionLoadPost", "FileChangedShellPost", "VimResized", "Filetype",
|
||||||
|
"CursorMoved", "CursorMovedI", "ModeChanged" },
|
||||||
|
{
|
||||||
|
pattern = "*",
|
||||||
|
callback = function()
|
||||||
|
vim.opt.statusline = "%{%v:lua.statusline_render()%}"
|
||||||
|
end,
|
||||||
|
})
|
@ -1,2 +1,3 @@
|
|||||||
require("jabuxas.remap")
|
require("jabuxas.remap")
|
||||||
require("jabuxas.set")
|
require("jabuxas.set")
|
||||||
|
require("jabuxas.bar")
|
||||||
|
Loading…
Reference in New Issue
Block a user