return {
  'nvim-tree/nvim-tree.lua',
  dependencies = {
    'nvim-tree/nvim-web-devicons',
  },
  config = function()
    vim.g.nvim_tree_refresh_wait = 1000

    -- following options are the default
    -- each of these are documented in `:help nvim-tree.OPTION_NAME`
    require'nvim-tree'.setup {
      disable_netrw = false,
      hijack_netrw = true,
      open_on_tab = false,
      hijack_cursor = true,
      update_cwd = false,
      create_in_closed_folder = false,
      hijack_unnamed_buffer_when_opening = true,
      sync_root_with_cwd  = true,
      reload_on_bufenter = true,
      respect_buf_cwd = false,
      hijack_directories = {
        enable = true,
        auto_open = true,
      },
      diagnostics = {
        enable = false,
        icons = {
          hint = "",
          info = "",
          warning = "",
          error = "",
        }
      },
      update_focused_file = {
        enable      = true,
        update_cwd  = false,
        ignore_list = {}
      },
      system_open = {
        cmd  = nil,
        args = {}
      },
      filters = {
        dotfiles = false,
        custom = {}
      },
      git = {
        enable = true,
        ignore = false,
        timeout = 500,
      },
      view = {
        centralize_selection = false,
        cursorline = true,
        debounce_delay = 15,
        width = 35,
        side = "left",
        preserve_window_proportions = false,
        number = false,
        relativenumber = false,
        signcolumn = "no",
        float = {
          enable = false,
          quit_on_focus_loss = true,
          open_win_config = {
            relative = "editor",
            border = "rounded",
            width = 30,
            height = 30,
            row = 1,
            col = 1,
          },
        },
      },
      trash = {
        cmd = "trash",
        require_confirm = true
      },
      actions = {
        open_file = {
          quit_on_open = false,
          window_picker = {
            exclude = {
              filetype = { "notify", "packer", "qf" },
              buftype = { "terminal" },
            },
          },
        },
        change_dir = {
          global = true,
        },
      },
      renderer = {
        root_folder_label = false,
        indent_markers = {
          enable = true -- this option shows indent markers when folders are open
        },
        icons = {
          show = {
            git = true,
            folder = true,
            file = true,
            folder_arrow = false,
          },
          glyphs = {
            default = '',
            symlink = '',
            git = {
              unstaged = "✗",
              staged = "✓",
              unmerged = "",
              renamed = "➜",
              untracked = "★",
              deleted = "",
              ignored = "◌"
            },
            folder = {
              arrow_open = "",
              arrow_closed = "",
              default = "",
              open = "",
              empty = "",
              empty_open = "",
              symlink = "",
              symlink_open = "",
            }
          },
          padding = ' ',
          symlink_arrow = ' -> ',
        },
        group_empty = true,
        add_trailing = true,
        highlight_git = true,
        highlight_opened_files = 'icon',
        root_folder_modifier = ':~',
        special_files = {
          'README.md',
          'Makefile',
          'MAKEFILE'
        },
      },
    }
    vim.keymap.set('n', '<leader>tt', '<cmd>NvimTreeToggle<cr>', { noremap = true, silent = true})
    vim.keymap.set('n', '<leader>tf', '<cmd>NvimTreeFindFile<cr>', { noremap = true, silent = true})
  end,
  enabled = false
}
