diff --git a/doc/help/commands.asciidoc b/doc/help/commands.asciidoc index 16473c547..5ce4daf4d 100644 --- a/doc/help/commands.asciidoc +++ b/doc/help/commands.asciidoc @@ -1404,7 +1404,7 @@ How many steps to zoom out. |<>|Accept the current prompt. |<>|Shift the focus of the prompt file completion menu to another item. |<>|Immediately open a download. -|<>|Yank URL. +|<>|Yank URL to clipboard or primary selection. |<>|Move back a character. |<>|Delete the character before the cursor. |<>|Remove chars from the cursor to the beginning of the word. @@ -1612,7 +1612,12 @@ If no specific command is given, this will use the system's default application [[prompt-yank]] === prompt-yank -Yank URL. +Syntax: +:prompt-yank [*--sel*]+ + +Yank URL to clipboard or primary selection. + +==== optional arguments +* +*-s*+, +*--sel*+: Use the primary selection instead of the clipboard. [[rl-backward-char]] === rl-backward-char diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc index b648a65c4..0455040a2 100644 --- a/doc/help/settings.asciidoc +++ b/doc/help/settings.asciidoc @@ -623,11 +623,11 @@ Default: * +pass:[<Ctrl-F>]+: +pass:[rl-forward-char]+ * +pass:[<Ctrl-H>]+: +pass:[rl-backward-delete-char]+ * +pass:[<Ctrl-K>]+: +pass:[rl-kill-line]+ +* +pass:[<Ctrl-Shift-Y>]+: +pass:[prompt-yank --sel]+ * +pass:[<Ctrl-U>]+: +pass:[rl-unix-line-discard]+ * +pass:[<Ctrl-W>]+: +pass:[rl-unix-word-rubout]+ * +pass:[<Ctrl-X>]+: +pass:[prompt-open-download]+ -* +pass:[<Ctrl-Y>]+: +pass:[rl-yank]+ -* +pass:[<Ctrl-y>]+: +pass:[prompt-yank]+ +* +pass:[<Ctrl-Y>]+: +pass:[prompt-yank]+ * +pass:[<Down>]+: +pass:[prompt-item-focus next]+ * +pass:[<Escape>]+: +pass:[leave-mode]+ * +pass:[<Return>]+: +pass:[prompt-accept]+ diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index 8e7f9d8a8..d044291ad 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -2349,8 +2349,8 @@ bindings.default: : rl-kill-word : rl-unix-word-rubout : rl-backward-kill-word - : rl-yank - : prompt-yank + : prompt-yank + : prompt-yank --sel : rl-delete-char : rl-backward-delete-char : leave-mode diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 29afc62a4..aff6701fc 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -425,15 +425,23 @@ class PromptContainer(QWidget): @cmdutils.register( instance='prompt-container', scope='window', modes=[usertypes.KeyMode.prompt, usertypes.KeyMode.yesno]) - def prompt_yank(self): - """Yank URL.""" + def prompt_yank(self, sel=False): + """Yank URL to clipboard or primary selection. + + Args: + sel: Use the primary selection instead of the clipboard. + """ question = self._prompt.question if not question.url: message.error('No URL found.') return s = question.url - utils.set_clipboard(s) - message.info("Yanked to clipboard: {}".format(s)) + target = 'primary selection' + if not (sel and utils.supports_selection()): + target = 'clipboard' + sel = False + utils.set_clipboard(s, sel) + message.info("Yanked to {}: {}".format(target, s)) class LineEdit(QLineEdit):