重点关注 X 应用程序的优先级

重点关注 X 应用程序的优先级

有没有一种方法可以重点关注 X 应用程序的优先级,最好是在 CPU 和 I/O 方面?

像所有 X 应用程序一样,它们的优先级都会降低,但当它们获得焦点时,它们会恢复到正常水平。

我不想重新发明轮子,所以我希望有人已经开发了一个可以执行此操作的应用程序。

答案1

我用 perl 编写了一个小脚本来完成您的要求: http://pastie.org/3460943

它的工作原理是使用“xlsclients -l”命令获取所有当前的 X11 窗口 ID,然后使用 xprop 获取窗口的 PID。然后,它使用 xprop -root 获取当前聚焦的窗口,然后循环遍历所有 PID,将其nice值更改为 5(将当前聚焦的窗口保持为 0。)

然后它进入无限循环,每两秒重新检查一次聚焦窗口。如果窗口焦点发生变化,它会将旧窗口的好值更改为 5,将新窗口的好值更改为 0。此外,每 40 秒它会重做第一段中所做的操作,以便对新进程进行优先级排序。

这个脚本有几个缺陷,其中最明显的是 xprop 有时无法找到当前聚焦的窗口(这似乎只有当您在窗口之间切换非常快时才会发生。)此外,如果您正在运行一个窗口从网络位置来看,PID 可能与系统上的实际 PID 不相关。也就是说,平均而言该脚本可以工作(perl 可以处理一些错误并且仍然可以运行)

我也认为如果我用c写这个会更快,但我没有使用X11库的技巧,所以它是bash填充的perl!

相关内容