mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-25 17:52:02 +02:00
Add a new `copy_or_interrupt action that can be mapped to kbd:ctrl+c`. It will copy if there is a selection and interrupt otherwise
Fixes #1286
This commit is contained in:
@@ -17,6 +17,9 @@ Changelog
|
|||||||
`*_with_cwd` actions that open a new window with the current working
|
`*_with_cwd` actions that open a new window with the current working
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
|
- Add a new ``copy_or_interrupt`` action that can be mapped to kbd:`ctrl+c`. It
|
||||||
|
will copy if there is a selection and interrupt otherwise (:iss:`1286`)
|
||||||
|
|
||||||
- Fix setting :opt:`background_opacity` causing window margins/padding to be slightly
|
- Fix setting :opt:`background_opacity` causing window margins/padding to be slightly
|
||||||
different shade from background (:iss:`1221`)
|
different shade from background (:iss:`1221`)
|
||||||
|
|
||||||
|
|||||||
@@ -848,7 +848,10 @@ g('shortcuts.clipboard') # {{{
|
|||||||
if is_macos:
|
if is_macos:
|
||||||
k('copy_to_clipboard', 'cmd+c', 'copy_to_clipboard', _('Copy to clipboard'), add_to_docs=False)
|
k('copy_to_clipboard', 'cmd+c', 'copy_to_clipboard', _('Copy to clipboard'), add_to_docs=False)
|
||||||
k('paste_from_clipboard', 'cmd+v', 'paste_from_clipboard', _('Paste from clipboard'), add_to_docs=False)
|
k('paste_from_clipboard', 'cmd+v', 'paste_from_clipboard', _('Paste from clipboard'), add_to_docs=False)
|
||||||
k('copy_to_clipboard', 'kitty_mod+c', 'copy_to_clipboard', _('Copy to clipboard'))
|
k('copy_to_clipboard', 'kitty_mod+c', 'copy_to_clipboard', _(
|
||||||
|
'Copy to clipboard. There is also a :code:`copy_or_interrupt` action that'
|
||||||
|
' can be optionally mapped to :kbd:`ctrl+c`. It'
|
||||||
|
' will copy only if there is a selection and send an interrupt otherwise. '))
|
||||||
k('paste_from_clipboard', 'kitty_mod+v', 'paste_from_clipboard', _('Paste from clipboard'))
|
k('paste_from_clipboard', 'kitty_mod+v', 'paste_from_clipboard', _('Paste from clipboard'))
|
||||||
k('paste_from_selection', 'kitty_mod+s', 'paste_from_selection', _('Paste from selection'))
|
k('paste_from_selection', 'kitty_mod+s', 'paste_from_selection', _('Paste from selection'))
|
||||||
k('paste_from_selection', 'shift+insert', 'paste_from_selection', _('Paste from selection'))
|
k('paste_from_selection', 'shift+insert', 'paste_from_selection', _('Paste from selection'))
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ from .fast_data_types import (
|
|||||||
set_clipboard_string, set_titlebar_color, set_window_render_data,
|
set_clipboard_string, set_titlebar_color, set_window_render_data,
|
||||||
update_window_title, update_window_visibility, viewport_for_window
|
update_window_title, update_window_visibility, viewport_for_window
|
||||||
)
|
)
|
||||||
from .keys import keyboard_mode_name
|
from .keys import keyboard_mode_name, extended_key_event, defines
|
||||||
from .rgb import to_color
|
from .rgb import to_color
|
||||||
from .terminfo import get_capabilities
|
from .terminfo import get_capabilities
|
||||||
from .utils import (
|
from .utils import (
|
||||||
@@ -524,6 +524,15 @@ class Window:
|
|||||||
if text:
|
if text:
|
||||||
set_clipboard_string(text)
|
set_clipboard_string(text)
|
||||||
|
|
||||||
|
def copy_or_interrupt(self):
|
||||||
|
text = self.text_for_selection()
|
||||||
|
if text:
|
||||||
|
set_clipboard_string(text)
|
||||||
|
else:
|
||||||
|
mode = keyboard_mode_name(self.screen)
|
||||||
|
text = extended_key_event(defines.GLFW_KEY_C, defines.GLFW_MOD_CONTROL, defines.GLFW_PRESS) if mode == 'kitty' else b'\x03'
|
||||||
|
self.write_to_child(text)
|
||||||
|
|
||||||
def pass_selection_to_program(self, *args):
|
def pass_selection_to_program(self, *args):
|
||||||
cwd = self.cwd_of_child
|
cwd = self.cwd_of_child
|
||||||
text = self.text_for_selection()
|
text = self.text_for_selection()
|
||||||
|
|||||||
Reference in New Issue
Block a user