web-dev-qa-db-ja.com

gnome-shellの新しいワークスペースでアプリケーションを自動起動

たとえば、FirefoxとThunderbirdを自動起動したい。ログイン時の2番目と3番目のワークスペース。それらをgnome-Shellの自動起動に追加すると、どちらも最初のワークスペースで開きます。特定のワークスペース、または少なくとも「次の」ワークスペース(ダッシュの中央クリックと同様)でアプリケーションを自動起動する方法はありますか? auto-move-windows拡張機能の使用を避けたいのですが。

1
on110

以下は、別のアプリケーションを起動して、指定したワークスペースに移動するプログラムです。

これを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となります。

注:指定されたデスクトップが存在しない場合、ウィンドウは元のデスクトップに残ります。

1
Alex L.