From 9f5268b4a726f6e2c38dcf24f1bd6a834fa171be Mon Sep 17 00:00:00 2001 From: Yaksh Bariya Date: Thu, 21 Mar 2024 17:35:16 +0530 Subject: [PATCH] [enh] add keybindings for copying URLs 'y': for in Vim-mode (yank) 'c': for SearXNG-mode (copy) This should help keyboard heavy users --- .../themes/simple/src/js/main/keyboard.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/searx/static/themes/simple/src/js/main/keyboard.js b/searx/static/themes/simple/src/js/main/keyboard.js index d29518358..1fb12cae1 100644 --- a/searx/static/themes/simple/src/js/main/keyboard.js +++ b/searx/static/themes/simple/src/js/main/keyboard.js @@ -63,6 +63,12 @@ searxng.ready(function () { des: 'remove focus from the focused input', cat: 'Control' }, + 'c': { + key: 'c', + fun: copyURLToClipboard, + des: 'copy url of the selected result to the clipboard', + cat: 'Results' + }, 'h': { key: 'h', fun: toggleHelp, @@ -174,6 +180,12 @@ searxng.ready(function () { des: 'select next search result', cat: 'Results' }, + 'y': { + key: 'y', + fun: copyURLToClipboard, + des: 'copy url of the selected result to the clipboard', + cat: 'Results' + }, }, baseKeyBinding) } @@ -435,6 +447,14 @@ searxng.ready(function () { } } + function copyURLToClipboard () { + var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a'); + if (currentUrlElement === null) return; + + const url = currentUrlElement.getAttribute('href'); + navigator.clipboard.writeText(url); + } + searxng.scrollPageToSelected = scrollPageToSelected; searxng.selectNext = highlightResult('down'); searxng.selectPrevious = highlightResult('up');