return {
    "nvim-lualine/lualine.nvim",
    dependencies = { "nvim-tree/nvim-web-devicons", "SmiteshP/nvim-navic", "folke/noice.nvim" },
    event = { "BufReadPre", "BufNewFile" },
    config = true,
    opts = {
        options = {
            theme = "catppuccin",
            component_separators = "|",
            section_separators = { left = "", right = "" },
            globalstatus = true,
        },
        sections = {
            lualine_a = { { "mode", separator = { left = "" }, right_padding = 2 } },
            lualine_b = { "filename", { "branch", icon = "󰊢" }, "diff" },
            lualine_c = { "diagnostics", "require('noice').api.status.lsp.get_hl()" },
            lualine_x = { "filetype", "fileformat", "encoding" },
            lualine_y = { "progress" },
            lualine_z = { "selectioncount", { "location", separator = { right = "" }, left_padding = 2 } },
        },
        tabline = {
            lualine_a = {},
            lualine_b = {},
            lualine_c = { "require('nvim-navic').get_location()" },
            lualine_x = { "windows" },
            lualine_y = {},
            lualine_z = {},
        },
        winbar = {},
        extensions = { "aerial", "fzf", "lazy", "neo-tree", "toggleterm", "trouble" },
    },
}