{ config, lib, ... }: let colors = import ../../colors/${config.theme}.nix {}; in { programs.nixvim = { plugins = { bufferline = { enable = true; separatorStyle = "slant"; # “slant”, “padded_slant”, “slope”, “padded_slope”, “thick”, “thin” highlights = { fill = { fg = colors.base00; bg = colors.base00; }; background = { fg = colors.base03; bg = colors.base00; }; bufferSelected = { fg = colors.base05; bg = colors.base00; italic = false; }; bufferVisible = { fg = colors.base03; bg = colors.base00; }; closeButton = { fg = colors.base03; bg = colors.base00; }; closeButtonVisible = { fg = colors.base03; bg = colors.base00; }; closeButtonSelected = { fg = colors.base08; bg = colors.base00; }; indicatorSelected = { fg = colors.base00; bg = colors.base00; }; modified = { fg = colors.base03; bg = colors.base00; }; modifiedVisible = { fg = colors.base00; bg = colors.base00; }; modifiedSelected = { fg = colors.base0B; bg = colors.base00; }; tabClose = { fg = colors.base00; bg = colors.base00; }; }; }; }; keymaps = [ { mode = "n"; key = ""; action = "BufferLineCycleNext"; options = { desc = "Cycle to next buffer"; }; } { mode = "n"; key = ""; action = "BufferLineCyclePrev"; options = { desc = "Cycle to previous buffer"; }; } { mode = "n"; key = ""; action = "BufferLineCycleNext"; options = { desc = "Cycle to next buffer"; }; } { mode = "n"; key = ""; action = "BufferLineCyclePrev"; options = { desc = "Cycle to previous buffer"; }; } { mode = "n"; key = "bd"; action = "bdelete"; options = { desc = "Delete buffer"; }; } { mode = "n"; key = "bb"; action = "e #"; options = { desc = "Switch to Other Buffer"; }; } # { # mode = "n"; # key = "`"; # action = "e #"; # options = { # desc = "Switch to Other Buffer"; # }; # } { mode = "n"; key = "br"; action = "BufferLineCloseRight"; options = { desc = "Delete buffers to the right"; }; } { mode = "n"; key = "bl"; action = "BufferLineCloseLeft"; options = { desc = "Delete buffers to the left"; }; } { mode = "n"; key = "bo"; action = "BufferLineCloseOthers"; options = { desc = "Delete other buffers"; }; } { mode = "n"; key = "bp"; action = "BufferLineTogglePin"; options = { desc = "Toggle pin"; }; } { mode = "n"; key = "bP"; action = "BufferLineGroupClose ungrouped"; options = { desc = "Delete non-pinned buffers"; }; } ]; }; }