{
  pkgs,
  config,
  lib,
  ...
}:
with lib; {
  config = {
    vim.statusline.lualine = {
      enable = mkDefault false;

      icons = mkDefault true;
      theme = mkDefault "auto";
      sectionSeparator = {
        left = mkDefault "";
        right = mkDefault "";
      };

      componentSeparator = {
        left = mkDefault "";
        right = mkDefault "";
      };

      activeSection = {
        # left side of the statusline 4
        a = mkDefault "{'mode'}";
        b = mkDefault ''
          {
            {
              "filename",
              color = {bg='none'},
              symbols = {modified = '', readonly = ''},
            },
          }
        '';
        c = mkDefault ''
          {
            {
              "branch",
              icon = ' •',
              separator = { left = '(', right = ')'},
            },
          }
        '';
        # right side of the statusline (x, y, z)
        x = mkDefault ''
          {
            {
              "diagnostics",
              sources = {'nvim_lsp', 'nvim_diagnostic'},
              symbols = {error = '', warn = '', info = '', hint = ''}
            },
          }
        '';
        y = mkDefault ''
          {
            {
              "fileformat",
              color = {bg='none'}
            },
          }
        '';
        z = mkDefault ''
          {
            {
              "progress",
              color = {
                bg='none',
                fg='lavender'
              }
            },
            {
              "location",
              color = {bg='none', fg='lavender'},
            },
            {
              "filetype",
              color = {bg='none', fg='lavender'},
            },
          }
        '';
      };

      inactiveSection = {
        a = mkDefault "{}";
        b = mkDefault "{}";
        c = mkDefault "{'filename'}";
        x = mkDefault "{'location'}";
        y = mkDefault "{}";
        z = mkDefault "{}";
      };
    };
  };
}