如何使用单个命令以预定义的排列打开多个窗口

如何使用单个命令以预定义的排列打开多个窗口

我想编写一个 bash 脚本/配置/其他内容,通过执行单个命令来打开具有预定义排列的多个窗口。

例如,当我收到有关邮件服务器问题的通知时,我想执行connect_mailserver.sh打开一个包含以下内容的窗口容器

  • 一个窗口显示tail -f /var/log/mail.log
  • 一个窗口显示htop
  • 显示 Nagios 中所有与邮件相关的检查的浏览器窗口
  • 用于在该服务器上执行操作的 shell
  • ...

所有窗口都应该在预定义的位置启动,但我也应该能够移动它们并调整它们的大小。

我相信有很多优雅的解决方案,也许使用screenemacs。也许有更好的工具?你有类似的解决方案吗?

答案1

可能不像你希望的那么优雅,但我会用wmctrl它。

xterm -T mail.log -e tail -f /var/log/mail.log &
until wmctrl -F -r mail.log -e0,<posx>,<posy>,<width>,<height>
do sleep .1s
done

当然,您可以使用 xterm 之外的其他应用程序。wmctrl只能匹配窗口标题或窗口 ID。如果您无法设置窗口标题,则必须通过-ing相关 PIDgrep的输出来查找其 ID。wmctrl -lp

答案2

使用

xterm -geometry 120x50+100+100 -e 'command'

几何参数如下所示:LINESxCOLUMNS+XSTART+YSTART

如果您想了解几何参数,请打开几个xterm,并在另一个xterm中启动“xwininfo”,然后单击您想了解其几何参数的窗口。

相关内容