元の投稿は、スクリプトを使用して特定のワークスペースにアプリケーションを表示することに関するものでした。そのため、スタートアップスクリプトで別のスクリプトを使用して、非常に遅い起動アプリケーションを別のワークスペースにロードしながら作業を続行できます。私のスクリプトは、コマンドプロンプトから、特定のワークスペースで任意の1つのアプリケーションを起動するための、かなり面倒なwmctrl構文のフロントエンドとして最適に機能します。したがって、lh 1 thunderbird; lh 2 firefox; lh 3 calculator
.... などのようなものを単純にリストするスクリプトを簡単に作成できます。ただし、タイミングにはいくつかの困難があり、そのため私のスクリプトでの睡眠があります。以下は更新されたバージョンであり、私がメンテナンスしたり、再度投稿したりすることはありません。現状のまま使用します。特定の使用に対する適合性の保証はありません。必要に応じて変更します。私はとして保存することをお勧め/usr/local/bin/lh
という理由だけで、lh
少なくともMint 18では、他の既知のプログラム名ではありません。変数については、引用する必要があると思われる変数を引用しました。
#!/bin/sh
## Author: B.A. Computer Services www.ba-computer.com
## Purpose: Frontend to launch anything on a specific desktop/workspace.
## lh is short for LaunchHere
USAGE="USAGE: $(basename $0) [-r] workspace(1,2,..) command\
LaunchHere launches COMMAND on specific workspace.\
-r option returns to current workspace"
[ -z "$1" ] && echo $USAGE && exit 0
ISRETURN=$(false); [ "$1" = "-r" ] && ISRETURN=true && shift;
WRKSPC=$1;[ -z "$WRKSPC" ] && echo $USAGE && exit 0
WSN=$(expr $WRKSPC - 1) ## wmctrl starts with 0 as first wrkspc
shift; CMD="$*"; [ -z "$CMD" ] && echo $USAGE && exit 0
WM=$(which wmctrl);[ -z "$WM" ] && echo MISSING wmctrl && exit 1
CURRENT=$(wmctrl -d | grep '*' | cut -c1)
# Switch to desired workspace
$WM -s $WSN
$CMD &
PID=$!
echo Executed $CMD on workspace $WRKSPC, PID=$PID
sleep 3
# Return to CURRENT workspace ?
# [ $ISRETURN ] && echo TRUE || echo FALSE
[ $ISRETURN ] && $WM -s $CURRENT