
Я хочу написать один 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» в другом, затем щелкните по окну, параметры геометрии которого вы хотите узнать.