我正在使用 kdocker(虽然我使用的是 GNOME)来运行 thunderbird,效果很好。现在我找到了一款非常不错的 whatsapp 桌面客户端,想在启动时启动它。但是有两个问题:它是一个 snap 应用程序,因此需要很长时间才能加载,因此与 kdocker 配合不好(kdocker 给出超时错误,之后 whatsdesk 会在托盘中打开而不会最小化)。第二个问题是它在系统托盘中已经有自己的图标,因此 kdocker 无论如何都会添加一个重复的图标。
作为一种解决方法,我现在在启动时运行此脚本:
#!/bin/bash
snap run whatsdesk &
sleep 10
wmctrl -c "Whatsdesk"
不过,我想知道是否有更好的方法来做到这一点,而不是打开窗口然后终止应用程序(即使这样被终止后,它也会最小化在托盘中)。
答案1
是的,有更好的方法可以做到这一点,虽然仍然有点肮脏,但至少它有效。只需将下面的代码放在没有扩展名的文件中,然后选择要在系统启动/登录时运行的脚本。您还必须将 Whatsdesk 设置为在启动时启动。然后它应该可以正常工作。:)
我实际上受到了你的剧本的启发,所以它只是对你剧本的一种延伸:
#!/bin/bash
i=0 #set "counting var" to 0
while true; do #do as long as I say
i=$(echo $i + 1) #add 1 to i
wmctrl -F -c "WhatsDesk" #close window with exact title "WhatsDesk"
if [ $? -eq 0 ]; then #if close window command was successful, do:
break #end "while"
else
if (( $i == 40 )) #if "counting var" = x, do:
then
break #end "while"
else
sleep 0.25 #pause "while" for x seconds
fi
fi
done
-F 选项强制 wmctrl 区分大小写,并且必须是窗口标题的全名。所以...只要您没有另一个名称完全相同的窗口,就没问题。每 0.25 秒将搜索匹配的窗口。要更改这一点,只需将“0.25”更改为其他内容(以秒为单位)。此外,10 秒后,如果找不到匹配的窗口,此脚本会自动结束。要更改这一点,请将“40”更改为其他内容(所需秒数 x (1 / 0.25))<- 替换为您想要的值。
我希望这对你有帮助。(至少对我有用 ;D):)
答案2
- 安装Firefox 的 gnome 扩展
- 打开托盘图标扩展对于 Gnome
之后,您可以在任务栏上看到 whatsdesk 托盘图标