たとえば、FirefoxとThunderbirdを自動起動したい。ログイン時の2番目と3番目のワークスペース。それらをgnome-Shellの自動起動に追加すると、どちらも最初のワークスペースで開きます。特定のワークスペース、または少なくとも「次の」ワークスペース(ダッシュの中央クリックと同様)でアプリケーションを自動起動する方法はありますか? auto-move-windows拡張機能の使用を避けたいのですが。
以下は、別のアプリケーションを起動して、指定したワークスペースに移動するプログラムです。
これをmove-at-start.shという名前のファイルにコピーして実行可能としてマークし、ホームディレクトリのどこかに配置する必要があります(~/.local
フォルダーに配置することをお勧めしますが、 ~/bin
または、必要に応じて他の場所に配置します。場所と名前を覚えておいてください)。 ( ペーストビンリンク )
#!/bin/bash
# invocation
# move-at-start.sh <desktop> <prog> <prog args>
if [ $# -lt 2 ]; then
echo "invocation: move-at-start.sh <desktop> <prog> <prog args>"
exit 1
fi
desk=$1
prog=$2
args=""
shift
shift
while (( "$#" )); do
args="$args ""$1"
shift
done
$prog $args
windows=$(wmctrl -lp | grep -E "($(echo $(ps -C "$prog" -o pid,user | grep "`whoami`" | sed -E "s/^\ *//" | cut -d\ -f 1) | sed "s/\ /|/g"))" | cut -d\ -f 1)
for w in $windows; do
wmctrl -i -r $w -t $desk
done
exit 0
それが終わったら、ShellまたはNautilusの~/.config/autostart
に移動します。
このフォルダには、app-name.desktop
のような名前のファイルがいくつかあり、起動するアプリケーションに対応するファイル(ほとんどの場合は<name>.desktop
)を見つけて、お気に入りのテキストエディタで開きます。
各ファイルについて、exec=<some command and args>
で始まる行を見つけ、exec=</path/to/above/script>/move-at-start.sh <desktop number> <some command and args>
に変更します。
次にログインしたときに、アプリが起動し、指定したデスクトップに移動します。
注:デスクトップには0から始まる番号が付けられているため、最初のデスクトップは0、3番目は2となります。
注:指定されたデスクトップが存在しない場合、ウィンドウは元のデスクトップに残ります。