我希望 Zoom 在桌面环境加载后立即在后台启动(即,它的图标显示在系统托盘中,但其窗口不出现)。
在 Windows 上,只需勾选“常规”中的“启动 Windows 时启动 Zoom”复选框即可让 Zoom 在计算机启动时启动,但 Linux 上没有此选项。
如果我添加zoom
到自动启动,它可以工作,但 Zoom 窗口会出现在屏幕上,我必须自己关闭它。
我知道要使用 Telegram 实现类似的行为,我只需执行:/opt/telegram/Telegram -startintray
。但我找不到用于 Zoom 的类似命令,尽管我找到了如何从终端开始/进入会议等等。
PS:我使用的是Linux Fedora 33 KDE。
答案1
据我所知,Zoom 仍然没有任何在托盘中启动的选项。
要理解该脚本,需要了解 Zoom 如何启动其 UI:
首先,Zoom 会启动一个登录窗口。如果它记住了您的凭据,它会为您登录,关闭登录窗口,然后启动主窗口。
如果脚本关闭登录窗口,Zoom 将退出。因此,脚本会等待主窗口出现后再尝试关闭它。
我添加了一行来最小化未登录时的登录窗口(因为不退出 Zoom 就无法关闭它),但随后将其注释掉,因为如果没有自动发生这种情况,人们可能希望保持它最大化以便登录。
该脚本检查主窗口 10 次,每次检查之间有半秒的延迟,如果未登录,则总共运行 5 秒。您可以根据您的系统通过修改来调整检查时间-lt 10
。在我的系统上,它需要尝试 5 次才能检测到主 Zoom 窗口。要确定需要尝试多少次,请在第一次退出之前取消注释 echo 语句,然后将循环变量设置为该值加上 1 或 2。
#!/bin/sh
# Launch zoom in the background
zoom "$@" &
# Check for zoom main window (10 tries with 0.5 secs between)
HOSTNAME=`hostname`
i=0
FWID=
while [ $i -lt 10 ]; do
i=$((i+1))
sleep 0.5
wid=`wmctrl -l | grep -E " $HOSTNAME Zoom(\s|$)" | cut -d' ' -f1 | head -1`
test -n "$wid" && { # we got a window-id
test "$wid" = "$FWID" || { # that is not already found
if [ -n "$FWID" ]; then # and is not the first (login) window
wmctrl -ic $wid # close main window
#echo Took $i tries
exit 0
else
FWID=$wid # this is the first window found
fi
}
}
done
# If we reach this point the main window did not come up so if there is a
# window found, we can elect to minimize it by uncommenting the next line:
#wmctrl -ir $wid -b add hidden
# (but I guess one would want to log in and then close it manually instead).
exit 0
因此,将此脚本复制到您的 PATH 中,例如/usr/local/bin/zoom-start-in-tray
,并使其可执行:
chmod 0755 /usr/local/bin/zoom-start-in-tray
您可以使用它在后台启动 Zoom,然后关闭窗口。
我在我的后台启动了上述脚本.xsession
,但如果您想将其用作桌面环境自动启动,您还需要为其创建一个应用程序文件,例如~/.local/share/applications/zoom-start-in-tray.desktop
[Desktop Entry]
Name=Zoom
Comment=Zoom Video Conference
Exec=/usr/local/bin/zoom-start-in-tray %U
Icon=Zoom
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
StartupWMClass=zoom
MimeType=x-scheme-handler/zoommtg;x-scheme-handler/zoomus;x-scheme-handler/tel;x-scheme-handler/callto;x-scheme-handler/zoomphonecall;application/x-zoom
X-KDE-Protocols=zoommtg;zoomus;tel;callto;zoomphonecall;
Name[en_US]=Zoom
如果您想使用系统范围的桌面文件(可能位于)/usr/share/applications/Zoom.desktop
,只需更改Exec
参数以匹配上述内容。