语境
我使用密码管理器,所有登录密码都是随机生成的。这些密码非常长,包含各种字符/符号/数字,以增加强度。这使得它们非常难以输入/乏味,我总是粘贴它们。
问题
Ubuntu 桌面应用程序(例如下面显示的 Google 日历)不允许我粘贴密码。有什么方法可以启用这些应用程序中的文本粘贴功能吗?
与此同时,我一直只是使用浏览器。
答案1
无法粘贴密码可能是为了安全起见。不过我可以想象,如果你想使用更复杂的密码,这会适得其反。
欺骗系统
但是,通过下面的选项,我们可以稍微欺骗系统,让它相信您自己输入了密码,但实际上您将其粘贴在了中间窗口中。
实际运作方式:
- 首先,单击桌面应用程序窗口的输入框(密码输入)。
然后按下您选择的组合键(在系统设置中设置,见下文)来调出一个小窗口,您可以在其中粘贴复杂的密码:
单击“确定”,您的密码将被“输入”在桌面应用程序的输入框中。
如何使用
该脚本使用
xdotool
sudo apt-get install xdotool
将以下脚本粘贴到空文件中,并将其另存为
paste_password.py
将其添加到您选择的快捷键:选择:系统设置>“键盘”>“快捷键”>“自定义快捷键”。单击“+”并添加命令:
python3 /path/to/paste_password.py
剧本
#!/usr/bin/env python3
import subprocess
import time
try:
command = 'zenity --entry --text "Password" --title "Password paste"'.strip()
passwd = subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip()
except subprocess.CalledProcessError:
pass
else:
time.sleep(0.5)
subprocess.Popen(["/bin/bash", "-c", "xdotool type '"+passwd+"'"])