他のプログラムで作業中にスクリプトを実行する

他のプログラムで作業中にスクリプトを実行する

別のワークスペースで作業している間に別のワークスペースでスクリプトを開く方法を知りたいです。スクリプトは2秒ごとに別のWebページを開き、すべてのWebページを2分間開きます。すべてのプロセスが完了するのを待たなければならないのは迷惑です。プロセスの実行中は、2秒ごとに別のWebページが開き、画面が新しいWebページに集中するため、何もできません。

以下はスクリプトの例です。

#!/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タブを2番目のワークスペースに送信しようとしました。

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. 

これはうまくいきません。ワークスペース間の変化を発見しました。

したがって、アイデアは、スクリプトが別のワークスペースで実行されている間に1つのプログラムで作業することです。

私はXubuntu 14.04を使用しています。デスクトップ環境Xfce。ウィンドウマネージャXfwm4。

どんなアイデアがありますか?

ベストアンサー1

仮想Xサーバーを起動し、スクリプト環境の$ DISPLAY変数がそのサーバーを指すようにすることができます(おそらくXサーバーへのアクセスを構成した後)。

おすすめ記事