mirror of
https://github.com/rwinkhart/sshyp.git
synced 2026-08-29 05:16:27 -04:00
Improved detection of and errors relating to clipboard support in raw ttys
Former-commit-id: 7b13af57872ff2bd2bf8285608b5d9a206c84fe8 Former-commit-id: 4406cd49234ff58cf568a55d07757f373830fe91
This commit is contained in:
+5
-2
@@ -669,10 +669,13 @@ def copy_data():
|
||||
run(('termux-clipboard-set', _copy_line[_index]))
|
||||
Popen("sleep 30; termux-clipboard-set ''", shell=True)
|
||||
# X11 clipboard detection
|
||||
else:
|
||||
elif 'DISPLAY' in environ:
|
||||
run(('xclip', '-sel', 'c'), stdin=Popen(('printf', _copy_line[_index].replace('\\', '\\\\')
|
||||
.replace('%', '%%')), stdout=PIPE).stdout)
|
||||
Popen("sleep 30; printf '' | xclip -sel c", shell=True)
|
||||
else:
|
||||
print('\n\u001b[38;5;9merror: clipboard tool could not be determined\n\nnote that the clipboard does not '
|
||||
'function in a raw tty\u001b[0m\n')
|
||||
# PORT END CLIPBOARD
|
||||
rmtree(f"{tmp_dir}{_shm_folder}")
|
||||
|
||||
@@ -779,7 +782,7 @@ if __name__ == "__main__":
|
||||
success_flag = 1
|
||||
copy_data()
|
||||
except IndexError:
|
||||
print(f"\n\u001b[38;5;9merror: field does not exist in entry\u001b[0m\n")
|
||||
print('\n\u001b[38;5;9merror: field does not exist in entry\u001b[0m\n')
|
||||
s_exit(2)
|
||||
elif arguments[1] == 'add':
|
||||
if arguments[2] in ('note', '-n', 'password', '-p'):
|
||||
|
||||
+3
-2
@@ -345,11 +345,12 @@ def initial_setup():
|
||||
# PORT START CLIPTOOL
|
||||
# check for clipboard tool and display warning if missing
|
||||
if uname()[0] in ('Linux', 'FreeBSD'):
|
||||
_display_server = None
|
||||
if 'WAYLAND_DISPLAY' in environ:
|
||||
_display_server, _clipboard_tool, _clipboard_package = 'Wayland', 'wl-copy', 'wl-clipboard'
|
||||
else:
|
||||
elif 'DISPLAY' in environ:
|
||||
_display_server, _clipboard_tool, _clipboard_package = 'X11', 'xclip', 'xclip'
|
||||
if which(_clipboard_tool) is None:
|
||||
if _display_server is not None and which(_clipboard_tool) is None:
|
||||
print(f'\n\u001b[38;5;9mwarning: you are using {_display_server} and "{_clipboard_tool}" is not '
|
||||
f'present - \ncopying entry fields will not function until '
|
||||
f'"{_clipboard_package}" is installed\u001b[0m')
|
||||
|
||||
@@ -13,11 +13,12 @@ string2 = '# PORT END CLIPTOOL'
|
||||
if len(arguments) > 0:
|
||||
regex = re.compile(f"{string1}.*?{string2}", re.DOTALL)
|
||||
replacement = """# check for clipboard tool and display warning if missing
|
||||
_display_server = None
|
||||
if 'WAYLAND_DISPLAY' in environ:
|
||||
_display_server, _clipboard_tool, _clipboard_package = 'Wayland', 'wl-copy', 'wl-clipboard'
|
||||
else:
|
||||
elif 'DISPLAY' in environ:
|
||||
_display_server, _clipboard_tool, _clipboard_package = 'X11', 'xclip', 'xclip'
|
||||
if which(_clipboard_tool) is None:
|
||||
if _display_server is not None and which(_clipboard_tool) is None:
|
||||
print(f'''\n\u001b[38;5;9mwarning: you are using {_display_server} and "{_clipboard_tool}" is not present -
|
||||
copying entry fields will not function until "{_clipboard_package}" is installed\u001b[0m
|
||||
''')"""
|
||||
|
||||
Reference in New Issue
Block a user