автозапуск приложения в новой рабочей области в gnome-shell

Я хотел бы автоматически запустить Firefox и Thunderbird, например. 2 и 3-е рабочие пространства при входе. Если я добавлю их в автозапуск в gnome-shell, они оба откроются в первом рабочем пространстве. Есть ли способ автоматического запуска приложения в определенной рабочей области или хотя бы в «следующей» рабочей области (аналогично щелчку средней кнопкой мыши). Я бы не хотел использовать расширение auto-move-windows.

1
задан 7 August 2012 в 09:22

1 ответ

Ниже приведена программа, которая запускает другое приложение и перемещает его в указанное рабочее пространство.

Вы должны скопировать это в файл с именем move-at-start.sh, пометить его как исполняемый и поместить его где-нибудь в вашем домашнем каталоге (я бы предложил поместить его в папку ~/.local, но вы можете поместить его в ваш ~/bin или какое-то другое место, если вы предпочитаете, просто помните, где вы положили его и как вы его назвали). ( pastebin link )

#!/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

Как только вы это сделаете, перейдите к ~/.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, третий - 2 и т. Д.

Примечания. Если указанный рабочий стол не существует, окно останется на исходном рабочем столе.

0
ответ дан 7 August 2012 в 09:22

Другие вопросы по тегам:

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