Запустить сценарий во время работы над другой программой

Я хотел бы знать, как открыть скрипт в другом рабочем пространстве, работая в другом рабочем пространстве. Скрипт открывает разные веб-страницы каждые 2 секунды, и ему требуется 2 минуты, чтобы открыть все веб-страницы. Дождаться завершения всего процесса раздражает. Пока процесс работает, я ничего не могу сделать, потому что каждые две секунды открывается другая веб-страница, и экран фокусируется на этой новой веб-странице.

Это пример сценария:

#!/bin/bash

# Defining the screen size
a="$(xrandr | fgrep '*' | awk -F ' ' '{print $1}' | awk -F 'x' '{print $1}')"
b="$(xrandr | fgrep '*' | awk -F ' ' '{print $1}' | awk -F 'x' '{print $2}')"

# First tab
opera --new-window
sleep 1;
wmctrl -r :ACTIVE: -e 1,$((0)),$((0)),$((a)),$((b)) ; 
sleep 2;

# Second tab
opera --new-window
sleep 2;

# Third tab
opera --new-window
sleep 2;

...

# n tab
opera --new-window

Я пытался использовать команду wmctrl, отправляя каждую новую вкладку Opera во вторую рабочую область ...

wmctrl -s 1 #Switches to workspace 1
opera --new-window &
sleep 2;

... но экран помещал фокус в эту рабочую область, и я могу Не работаю в первом рабочем пространстве.

Другое неэффективное решение - оставить мое рабочее пространство в рабочем пространстве 1 и открыть новую вкладку в рабочем пространстве 2 за очень короткий период времени. Я имею в виду:

wmctrl -s 0; # The workspace I am working in.
wmctrl -s 1; opera --new-window & sleep 0.01; #Change to workspace 2 and open the new tab in a short time.
wmctrl -s 0; # Change to workspace 1.
sleep 2; 
wmctrl -s 1; opera --new-window & sleep 0.01; 
wmctrl -s 0 #... and so on. 

Это не эффективно. Я замечаю смену рабочих пространств.

Итак, идея состоит в том, чтобы работать в одной программе, пока сценарий выполняется в другой рабочей области.

Я использую: Xubuntu 14.04. Окружение рабочего стола Xfce. Оконный менеджер Xfwm4.

Есть идеи?

0
05.08.2017, 22:31
3 ответа

Вы можете запустить виртуальный X-сервер и указать переменную $DISPLAY вашей среды сценариев на этот (, возможно, после настройки доступа к этому X-серверу ).

0
28.01.2020, 04:41

Вы можете принудительно запустить команду в фоновом режиме, запустив ее с n & после нее.

Когда вы делаете это, иногда выходные данные все еще печатаются в вашем сеансе. Если вы хотите, чтобы скрипт работал скрыто в фоновом режиме, вы можете использовать nohup. Кроме того, nohup продолжит работу, если вы отключитесь. Вывод в этом случае будет напечатан в nohup.out

0
28.01.2020, 04:41

Я обнаружил, что команда "экран" полезна при отдельном запуске терминальных программ..

Как использовать экран Linux | рэкейд

0
28.01.2020, 04:41

Теги

Похожие вопросы