как открыть несколько окон в предопределенном порядке с помощью одной команды

как открыть несколько окон в предопределенном порядке с помощью одной команды

Я хочу написать один bash-скрипт/конфигурацию/что угодно, чтобы открывать несколько окон в предопределенном порядке путем выполнения одной команды.

Например, когда я получаю уведомление о проблемах с почтовым сервером, я хочу выполнить команду, connect_mailserver.shкоторая открывает окно-контейнер, содержащее

  • окно, показывающееtail -f /var/log/mail.log
  • окно, показывающееhtop
  • окно браузера, отображающее все проверки, связанные с почтой в Nagios
  • оболочка для выполнения различных действий на этом сервере
  • ...

Все окна должны открываться в предопределенных позициях, но я также должен иметь возможность перемещать их и изменять их размер.

Я считаю, что для этого есть много элегантных решений, возможно, с помощью screenили emacs. Может быть, есть лучший инструмент для этого? У вас есть похожее решение?

решение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может сопоставлять только заголовки окон или идентификаторы окон. Если вы не можете задать заголовок окна, вам придется найти его идентификатор, выполнив grep-ing вывод wmctrl -lpдля соответствующего PID.

решение2

Использовать

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

Параметр геометрии выглядит так: LINESxCOLUMNS+XSTART+YSTART

Если вы хотите узнать параметры геометрии, откройте несколько xterm и запустите «xwininfo» в другом, затем щелкните по окну, параметры геометрии которого вы хотите узнать.

Связанный контент