return {
	'ibhagwan/fzf-lua',
	dependencies = {
		'nvim-tree/nvim-web-devicons',
	},
	config = function()
		local key = vim.keymap
		local fzf = require('fzf-lua')

		fzf.setup {
			'telescope',
			winopts = {
				preview = {
					layout = 'vertical',
					vertical = 'down:60%'
				},
				width = 0.95
			}
		}

		local search_nvim_conf = function()
			fzf.files {
				cwd = vim.fn.stdpath 'config'
			}
		end

		key.set('n', '<leader><leader>', fzf.buffers, { desc = 'search buffers' })

		-- key.set('n', '<leader>sf', fzf.files, { desc = '[s]earch [f]iles' })
		key.set('n', '<leader>sl', fzf.blines, { desc = '[s]earch buffer [l]ines' })
		key.set('n', '<leader>sh', fzf.helptags, { desc = '[s]earch [h]elp' })
		key.set('n', '<leader>sk', fzf.keymaps, { desc = '[s]earch [k]eymaps' })
		key.set('n', '<leader>sn', search_nvim_conf, { desc = '[s]earch [n]vim config files' })
		key.set('n', '<leader>ss', fzf.builtin, { desc = '[s]earch [s]earchables' })

		key.set('n', '<leader>sf', fzf.files, { desc = '[s]earch [f]iles' })
		key.set('n', '<leader>pf', fzf.files, { desc = '[p]roject [f]iles' })
		key.set('n', '<leader>pg', fzf.live_grep_native, { desc = '[p]roject [g]rep' })

		key.set('n', '<leader>gc', fzf.git_commits, { desc = '[g]it [c]ommits' })
		key.set('n', '<leader>gb', fzf.git_branches, { desc = '[g]it [b]ranches' })
		key.set('n', '<leader>gt', fzf.git_status, { desc = '[g]it [s]tatus' })

		key.set('n', '<leader>ld', fzf.lsp_workspace_diagnostics, { desc = '[L]SP [d]iagnostics' })
		key.set('n', '<leader>ls', fzf.lsp_document_symbols, { desc = '[L]SP [s]ymbols' })
	end
}
