为了处理多个项目,我可能会在不同的工作区中打开多个应用程序。
当我正在处理一件事时,另一组应用程序可能已打开但未在使用中。我不想关闭它们(例如,我不想关闭一个 IDE,其中我有某种状态,比如我在某个行号上,或者我打开了一些窗格),但我经常可以通过 SIGSTOP 暂停它们并稍后通过 SIGCONT 恢复它们。
这样做的好处是它会暂停应用程序的所有后台 CPU 活动,同时仍将其保留在内存/交换中。
我可以自动化这个吗?比如说(从白名单中)如果我在过去 N 分钟内没有与 GUI 应用程序交互,则向其发送 SIGSTOP 信号,如果我尝试聚焦其 GUI,则向其发送 SIGCONT 信号?
我可以自己写脚本,但我不知道:
- 如何观察/监视与某些应用程序的某些交互(鼠标单击、打字)的事件?
- 如何观察我尝试单击 SIGSTOP'D 冻结的 GUI 应用程序时的信息?