--- Ensure plugin is avaiable local ok, bufferline = pcall(require, "bufferline") if not ok then return end --- Plugin options local frappe = require("catppuccin.palettes").get_palette("frappe") local opts = { options = { -- mode = "tabs", separator_style = "slant", }, highlights = require("catppuccin.groups.integrations.bufferline").get({ styles = { "italic", "bold" }, custom = { all = { fill = { -- bg before buffer fg = frappe.text, bg = frappe.crust, }, background = { -- buffer bg fg = frappe.text, bg = frappe.base, }, buffer_visible = { -- buffer displayed when in another tab fg = frappe.text, bg = frappe.surface0, }, buffer_selected = { -- bufferline displayed when in tab fg = frappe.text, bg = frappe.overlay0, }, close_button = { fg = frappe.text, bg = frappe.base, }, close_button_visible = { fg = frappe.text, bg = frappe.surface0, }, close_button_selected = { fg = frappe.text, bg = frappe.overlay0, }, modified = { fg = frappe.green, bg = frappe.base, }, modified_visible = { fg = frappe.green, bg = frappe.surface0, }, modified_selected = { fg = frappe.green, bg = frappe.overlay0, }, separator = { fg = frappe.crust, bg = frappe.base, }, separator_visible = { fg = frappe.crust, bg = frappe.surface0, }, separator_selected = { fg = frappe.crust, bg = frappe.overlay0, }, }, }, }), } --- Load plugin bufferline.setup(opts) --- Override keymaps local km = vim.keymap.set km("n", "", ":BufferLineCycleNext") km("n", "", ":BufferLineCyclePrev") km("n", "bn", ":BufferLineMoveNext") km("n", "bp", ":BufferLineMovePrev") km("n", "bc", ":BufferLinePickClose")