0

我有一个看似简单的问题,我不知道如何解决。

我有一个 bash 脚本,它在循环中在后台启动一个程序。但是,每次程序打开时,它都会启动一个窗口并专注于它。有没有办法启动一个进程并将它启动的所有窗口最小化或完全抑制?

这是我的代码:

#!/bin/bash
while true; do
process1 & P=$!; #I need to hide all of the windows in this process
process2;
kill $P;
wait;
sleep 0.1; done

感谢您的帮助。

4

2 回答 2

1

这取决于窗口管理器。尝试在 wm 文档中查找如何防止焦点窃取。

对于更通用的方法,您可以启动第二个 X 服务器(startx -- :1然后Ctrl-Alt-F8切换到它),运行一个实例Xnest以获取一个 X-server-in-a-window,其中子窗口不会窃取焦点,或者运行一个 vncserver /nxserver Windows 可以发送垃圾邮件,如果需要,您可以偶尔连接并查看。通过在例如 display 上设置任何这些:1,您可以使用 重定向您的进程窗口DISPLAY=:1 process1

于 2013-01-22T22:34:17.807 回答
1

使用 xdotool,将 name_in_titlebar 替换为标题栏中的名称:D

xdotool search --name name_in_titlebar windowactivate
xdotool key ctrl+super+Up
于 2013-01-23T03:35:05.840 回答