return { { 'nvimdev/galaxyline.nvim', branch = 'main', dependencies = { { 'nvim-tree/nvim-web-devicons', }, { 'arzg/vim-colors-xcode', lazy = false, priority = 1000, config = function () local colorscheme_rules_augroup = vim.api.nvim_create_augroup('Colors', {}) vim.api.nvim_create_autocmd( { 'ColorScheme' }, { pattern = { '*' }, group = colorscheme_rules_augroup, callback = function() vim.api.nvim_set_hl(0, 'WinSeparator', { link='VertSplit', force=1, default=1 }) end, }) end, dependencies = { { 'f-person/auto-dark-mode.nvim', opts = { update_interval = 1000, set_dark_mode = function () vim.api.nvim_set_option('background', 'dark') end, set_light_mode = function () vim.api.nvim_set_option('background', 'light') end } } }, }, }, event = 'VimEnter', config = function() local gl = require('galaxyline') local colors = { yellow = vim.g.terminal_color_11, cyan = vim.g.terminal_color_14, darkblue = vim.g.terminal_color_4, green = vim.g.terminal_color_10, orange = vim.g.terminal_color_3, violet = vim.g.terminal_color_5, magenta = vim.g.terminal_color_13, blue = vim.g.terminal_color_12, red = vim.g.terminal_color_9, } local condition = require('galaxyline.condition') local gls = gl.section local lsp = require('galaxyline.provider_lsp') gl.short_line_list = { 'nerdtree', 'NeogitStatus', 'vim-plug', 'lspsagaoutline', 'neo-tree' } gls.left[1] = { RainbowBlue = { provider = function() return '▊ ' end, highlight = { colors.blue, 'StatusLine' } }, } gls.left[2] = { ViMode = { provider = function() -- auto change color according the vim mode local mode_color = { n = colors.red, i = colors.green, v = colors.blue, ['^V'] = colors.blue, V = colors.blue, c = colors.magenta, no = colors.red, s = colors.orange, S = colors.orange, ['^S'] = colors.orange, ic = colors.yellow, R = colors.violet, Rv = colors.violet, cv = colors.red, ce = colors.red, r = colors.cyan, rm = colors.cyan, ['r?'] = colors.cyan, ['!'] = colors.red, t = colors.red } vim.api.nvim_command('hi GalaxyViMode guifg=' .. mode_color[vim.fn.mode()]) return ' ' end, highlight = { colors.red, 'StatusLine', 'bold' }, }, } gls.left[3] = { FileSize = { provider = 'FileSize', condition = condition.buffer_not_empty, highlight = { 'StatusLine', 'StatusLine' }, } } gls.left[4] = { FileIcon = { provider = 'FileIcon', condition = function() if vim.g.GtkGuiLoaded ~= nil and condition.buffer_not_empty() then return true end return false end, highlight = { require('galaxyline.provider_fileinfo').get_file_icon_color, 'StatusLine' }, }, } gls.left[5] = { FileName = { provider = 'FileName', condition = condition.buffer_not_empty, highlight = { colors.magenta, 'StatusLine', 'bold' } } } gls.left[6] = { LineInfo = { provider = 'LineColumn', separator = ' ', separator_highlight = { 'NONE', 'StatusLine' }, highlight = { 'NONE', 'StatusLine' }, }, } gls.left[7] = { PerCent = { provider = 'LinePercent', separator = ' ', separator_highlight = { 'NONE', 'StatusLine' }, highlight = { 'NONE', 'StatusLine', 'bold' }, } } gls.left[8] = { DiagnosticError = { provider = 'DiagnosticError', icon = '  ', highlight = { colors.red, 'StatusLine' } } } gls.left[9] = { DiagnosticWarn = { provider = 'DiagnosticWarn', icon = '  ', highlight = { colors.yellow, 'StatusLine' }, } } gls.left[10] = { DiagnosticHint = { provider = 'DiagnosticHint', icon = '  ', highlight = { colors.cyan, 'StatusLine' }, } } gls.left[11] = { DiagnosticInfo = { provider = 'DiagnosticInfo', icon = '  ', highlight = { colors.blue, 'StatusLine' }, } } gls.mid[1] = { ShowLspClient = { provider = 'GetLspClient', condition = function() local tbl = { ['dashboard'] = true, [''] = true } if tbl[vim.bo.filetype] then return false elseif lsp.get_lsp_client() == 'No Active Lsp' then return false end return true end, icon = '⚙ LSP:', highlight = { colors.cyan, 'StatusLine', 'bold' } } } gls.right[1] = { GitIcon = { provider = function() return '  ' end, condition = condition.check_git_workspace, separator = ' ', separator_highlight = { 'NONE', 'StatusLine' }, highlight = { colors.violet, 'StatusLine', 'bold' }, } } gls.right[2] = { GitBranch = { provider = 'GitBranch', condition = condition.check_git_workspace, highlight = { colors.violet, 'StatusLine', 'bold' }, } } gls.right[3] = { DiffAdd = { provider = 'DiffAdd', condition = condition.hide_in_width, icon = ' +', highlight = { colors.green, 'StatusLine' }, } } gls.right[4] = { DiffModified = { provider = 'DiffModified', condition = condition.hide_in_width, icon = ' ±', highlight = { colors.orange, 'StatusLine' }, } } gls.right[5] = { DiffRemove = { provider = 'DiffRemove', condition = condition.hide_in_width, icon = ' -', highlight = { colors.red, 'StatusLine' }, } } gls.right[6] = { RainbowBlue = { provider = function() return ' ▊' end, highlight = { colors.blue, 'StatusLine' } }, } gls.short_line_left[1] = { BufferType = { provider = 'FileTypeName', separator = ' ', separator_highlight = { 'NONE', 'StatusLine' }, highlight = { colors.blue, 'StatusLine', 'bold' } } } gls.short_line_left[2] = { SFileName = { provider = 'SFileName', condition = condition.buffer_not_empty, highlight = { 'StatusLine', 'StatusLine', 'bold' } } } gls.short_line_right[1] = { BufferIcon = { provider = 'BufferIcon', highlight = { 'StatusLine', 'StatusLine' }, } } end, }, }