在 gnome-shell 的新工作区中自动启动应用程序

在 gnome-shell 的新工作区中自动启动应用程序

我想在登录时自动启动第 2 和第 3 个工作区上的 Firefox 和 Thunderbird。如果我将它们添加到 gnome-shell 中的自动启动中,它们都会在第一个工作区中打开。有没有办法在特定工作区上自动启动应用程序,或者至少在“下一个”工作区上自动启动应用程序(类似于 dash 中键单击)。我想避免使用 auto-move-windows 扩展。

答案1

以下是将启动另一个应用程序并将其移动到指定工作空间的程序。

您应该将其复制到名为 move-at-start.sh 的文件中,将其标记为可执行文件,然后将其放在您的主目录中的某个位置(我建议将其放在文件夹中~/.local,但如果您愿意,您可以将其放在您的~/bin或其他地方,只要记住您将它放在哪里以及您给它起了什么名字)。(pastebin 链接

#!/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/autostartshell 或 Nautilus。

在此文件夹中,您将找到一些文件,其名称类似于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,等等。

注意:如果指定的桌面不存在,窗口将保留在原始桌面上。

相关内容