mirror of
https://github.com/rwinkhart/sshyp.git
synced 2026-09-05 08:37:14 -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]))
|
run(('termux-clipboard-set', _copy_line[_index]))
|
||||||
Popen("sleep 30; termux-clipboard-set ''", shell=True)
|
Popen("sleep 30; termux-clipboard-set ''", shell=True)
|
||||||
# X11 clipboard detection
|
# X11 clipboard detection
|
||||||
else:
|
elif 'DISPLAY' in environ:
|
||||||
run(('xclip', '-sel', 'c'), stdin=Popen(('printf', _copy_line[_index].replace('\\', '\\\\')
|
run(('xclip', '-sel', 'c'), stdin=Popen(('printf', _copy_line[_index].replace('\\', '\\\\')
|
||||||
.replace('%', '%%')), stdout=PIPE).stdout)
|
.replace('%', '%%')), stdout=PIPE).stdout)
|
||||||
Popen("sleep 30; printf '' | xclip -sel c", shell=True)
|
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
|
# PORT END CLIPBOARD
|
||||||
rmtree(f"{tmp_dir}{_shm_folder}")
|
rmtree(f"{tmp_dir}{_shm_folder}")
|
||||||
|
|
||||||
@@ -779,7 +782,7 @@ if __name__ == "__main__":
|
|||||||
success_flag = 1
|
success_flag = 1
|
||||||
copy_data()
|
copy_data()
|
||||||
except IndexError:
|
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)
|
s_exit(2)
|
||||||
elif arguments[1] == 'add':
|
elif arguments[1] == 'add':
|
||||||
if arguments[2] in ('note', '-n', 'password', '-p'):
|
if arguments[2] in ('note', '-n', 'password', '-p'):
|
||||||
|
|||||||
+3
-2
@@ -345,11 +345,12 @@ def initial_setup():
|
|||||||
# PORT START CLIPTOOL
|
# PORT START CLIPTOOL
|
||||||
# check for clipboard tool and display warning if missing
|
# check for clipboard tool and display warning if missing
|
||||||
if uname()[0] in ('Linux', 'FreeBSD'):
|
if uname()[0] in ('Linux', 'FreeBSD'):
|
||||||
|
_display_server = None
|
||||||
if 'WAYLAND_DISPLAY' in environ:
|
if 'WAYLAND_DISPLAY' in environ:
|
||||||
_display_server, _clipboard_tool, _clipboard_package = 'Wayland', 'wl-copy', 'wl-clipboard'
|
_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'
|
_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 '
|
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'present - \ncopying entry fields will not function until '
|
||||||
f'"{_clipboard_package}" is installed\u001b[0m')
|
f'"{_clipboard_package}" is installed\u001b[0m')
|
||||||
|
|||||||
@@ -13,11 +13,12 @@ string2 = '# PORT END CLIPTOOL'
|
|||||||
if len(arguments) > 0:
|
if len(arguments) > 0:
|
||||||
regex = re.compile(f"{string1}.*?{string2}", re.DOTALL)
|
regex = re.compile(f"{string1}.*?{string2}", re.DOTALL)
|
||||||
replacement = """# check for clipboard tool and display warning if missing
|
replacement = """# check for clipboard tool and display warning if missing
|
||||||
|
_display_server = None
|
||||||
if 'WAYLAND_DISPLAY' in environ:
|
if 'WAYLAND_DISPLAY' in environ:
|
||||||
_display_server, _clipboard_tool, _clipboard_package = 'Wayland', 'wl-copy', 'wl-clipboard'
|
_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'
|
_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 -
|
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
|
copying entry fields will not function until "{_clipboard_package}" is installed\u001b[0m
|
||||||
''')"""
|
''')"""
|
||||||
|
|||||||
Reference in New Issue
Block a user