local status_ok, telescope = pcall(require, "telescope") if not status_ok then return end local actions = require('telescope.actions') local action_layout = require("telescope.actions.layout") local function telescopew() if vim.o.columns <= 80 then return vim.o.columns else return 0.8 end end telescope.setup { defaults = { borderchars = { prompt = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, results = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, preview = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, }, winblend = 0, layout_strategy = 'horizontal', sorting_strategy = 'descending', scroll_strategy = 'limit', layout_config = { horizontal = { width = telescopew(), height = 20, prompt_position = 'bottom', anchor = 'N', } }, preview = { -- add image previews via chafa mime_hook = function(filepath, bufnr, opts) local function is_image(filepath) local image_extensions = { -- supported image formats 'png', 'jpg', 'jpe', 'jpeg', 'webp', 'gif' } local split_path = vim.split(filepath:lower(), '.', { plain=true }) local extension = split_path[#split_path] return vim.tbl_contains(image_extensions, extension) end if is_image(filepath) and vim.fn.executable('chafa') == 1 then local term = vim.api.nvim_open_term(bufnr, {}) local function send_output(_, data, _) for _, d in ipairs(data) do vim.api.nvim_chan_send(term, d..'\r\n') end end vim.fn.jobstart({ 'chafa', '-C', 'on', '--animate', 'off', '-s', '23x18', '--clear', filepath }, { on_stdout = send_output, stdout_buffered = true, pty = true }) a.nvim_set_option_value("number", false, { buf = bufnr }) else require("telescope.previewers.utils").set_preview_message(bufnr, opts.winid, "File cannot be previewed") end end }, mappings = { i = { [""] = actions.close, [''] = 'which_key', [''] = actions.move_selection_next, [''] = actions.move_selection_previous, [''] = actions.select_default, [''] = actions.preview_scrolling_up, [''] = actions.preview_scrolling_down, [""] = action_layout.toggle_preview }, n = { ["gg"] = actions.move_to_top, ["G"] = actions.move_to_bottom, }, }, } } telescope.load_extension('file_browser') telescope.load_extension('projects') telescope.load_extension('fzf') telescope.load_extension('harpoon') a.nvim_create_autocmd('User', { pattern = 'TelescopePreviewerLoaded', callback = function() vim.opt.winblend = 0 end, })