![新的截图工具是否应该在按下 PrtSc 键时自动运行?](https://linux22.com/image/956200/%E6%96%B0%E7%9A%84%E6%88%AA%E5%9B%BE%E5%B7%A5%E5%85%B7%E6%98%AF%E5%90%A6%E5%BA%94%E8%AF%A5%E5%9C%A8%E6%8C%89%E4%B8%8B%20PrtSc%20%E9%94%AE%E6%97%B6%E8%87%AA%E5%8A%A8%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我刚刚编写了一个完美的截图工具,一直在尝试弄清楚如何设置它以供其他人使用。截图传统上是通过按 PrtSc 键来截取的。因此,我可以做以下事情:
应用程序安装完成后,按 PrtSc 即可调用该应用程序
优点:
- 开箱即用,正如预期。用户安装应用程序后,点击 PrtSc,即可获得刚刚安装的应用程序。太棒了。
缺点:
- 无条件覆盖 PrtSc 的任何现有设置,这可能会很烦人
- 如果你卸载该应用程序,它不会将 PrtSc 重置为之前的状态,这也很烦人
- 对于多个用户来说,这很成问题,因为应用程序的安装在 sudo 下运行,那么它如何知道要覆盖哪个用户的 PrtSc 设置?当然可以在安装过程中添加 gconf 键,但如果两个不同的屏幕截图应用程序都尝试这样做,这可能会有问题?
首次运行应用程序时,获取 PrtSc 密钥
优点:
- 避免上述错误夺取其他用户的 PrtSc 密钥的问题
缺点:
- 您必须先手动运行一次该应用程序,这很烦人(您怎么知道如何做到这一点?)
- 如果应用程序被卸载,仍然不会恢复旧设置
在应用程序中有一个配置对话框,您可以在其中配置它以捕获 PrtSc
优点:
- 只为真正想要的人夺取 PrtSc
缺点:
- 您必须先手动运行一次该应用程序,这很烦人(您怎么知道如何做到这一点?)
- 你必须进入一个配置对话框让应用程序真正按照预期执行操作;按下 PrtSc 时截取屏幕截图。Ubuntu 已经超越了这一点配置一切现在就上舞台了,不是吗?真让人恼火。不这样做!
还有我还没想过的事情
我还没想到一个更好、更聪明的方法。
欢迎提出建议!
答案1
您或许可以为应用设置键盘快捷键,但记录之前绑定到该快捷键的内容。然后在第一次运行时(可能是当用户按下 时)prt sc,您可以弹出一个对话框,询问他们类似以下内容的问题:
此应用程序已被设置为默认屏幕截图应用程序,只要您按下“打印屏幕”键,它就会运行。您希望保留此行为还是恢复到以前的设置?
如果他们愿意的话,他们可以很容易地恢复到以前的设置。
答案2
我认为方案 A 和 C 是可行的方法。
你可以插入替代系统并将相关条目添加到系统 → 首选项 → 默认应用程序屏幕,如下所示:
不过,我认为在安装时将自己设置为默认设置是可以的。在第一次运行时显示一条通知,询问每个用户是否要改用以前的默认设置,这将是不错的选择。
(是否可以在该对话框中添加新条目?)
答案3
我将在应用程序中使用配置对话框以及命令行脚本。
两者都应该读取以前的键盘快捷键值,存储它并在用户询问时恢复它(如果没有人存在则删除该值)。
对话框应允许最终用户调整行为。命令行脚本可供打包者根据分发指南设置默认行为,并使其完全卸载(恢复其抓取的键盘快捷键)。
答案4
无条件覆盖 PrtSc 的任何现有设置,这可能会很烦人
会的。正如其他人所说,我会在偏好设置中将其作为显眼的选项,或许也会作为首次选择对话。
但重要的是,我会让它记住它所更改的设置,并将其存储在某个地方。卸载时,我会让它遍历所有用户,如果启用,则将他们的截屏键绑定重置为之前的设置。
复杂之处在于,post-rm 脚本将以 root 身份运行,而您需要以所有桌面用户的身份运行命令。我相信这是可行的,而且这是迄今为止最好的解决方案。