Я хотел бы автоматически запустить Firefox и Thunderbird, например. 2 и 3-е рабочие пространства при входе. Если я добавлю их в автозапуск в gnome-shell, они оба откроются в первом рабочем пространстве. Есть ли способ автоматического запуска приложения в определенной рабочей области или хотя бы в «следующей» рабочей области (аналогично щелчку средней кнопкой мыши). Я бы не хотел использовать расширение auto-move-windows.
Ниже приведена программа, которая запускает другое приложение и перемещает его в указанное рабочее пространство.
Вы должны скопировать это в файл с именем 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 и т. Д.
Примечания. Если указанный рабочий стол не существует, окно останется на исходном рабочем столе.