Merge branch 'clipboard_control-no-append' of https://github.com/agriffis/kitty

This commit is contained in:
Kovid Goyal 2019-03-02 11:55:42 +05:30
commit f64ffcac48
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 10 additions and 3 deletions

View File

@ -219,3 +219,7 @@ first, for example::
<ESC>]52;c;!<ESC>\
Here ``!`` is not valid base64 encoded text, so it clears the clipboard.
In case you're using software that can't be easily adapted to this
protocol extension, it can be disabled by specifying ``no-append`` to the
:opt:`clipboard_control` setting.

View File

@ -798,8 +798,10 @@ Environment variables in the path are expanded.
o('clipboard_control', 'write-clipboard write-primary', option_type=lambda x: frozenset(x.lower().split()), long_text=_('''
Allow programs running in kitty to read and write from the clipboard. You can
control exactly which actions are allowed. The set of possible actions is:
write-clipboard read-clipboard write-primary read-primary
The default is to allow writing to the clipboard and primary selection. Note
write-clipboard read-clipboard write-primary read-primary. You can
additionally specify no-append to disable kitty's protocol extension
for clipboard concatenation. The default is to allow writing to the
clipboard and primary selection with concatenation enabled. Note
that enabling the read functionality is a security risk as it means that any
program, even one running on a remote server via SSH can read your clipboard.
'''))

View File

@ -429,7 +429,8 @@ class Window:
def write(key, func):
if text:
if len(self.clipboard_control_buffers[key]) > 1024*1024:
if ('no-append' in self.opts.clipboard_control or
len(self.clipboard_control_buffers[key]) > 1024*1024):
self.clipboard_control_buffers[key] = ''
self.clipboard_control_buffers[key] += text
else: