在 Gnome 中,为什么启动喜爱的沙盒应用程序会在仪表板上创建一个新图标?

在 Gnome 中,为什么启动喜爱的沙盒应用程序会在仪表板上创建一个新图标?

我认为这是展示比讲述更容易的事情。

新图标

因此,您可以在我的破折号图像中看到,我单击了具有渐变背景的 Tor 图标,但它实际上使用破折号上的新图标打开了应用程序。有点烦人。

当更改应用程序上的 .desktop 文件以使用 Firejail、Bubblewrap 或其他沙盒应用程序打开它时,会发生这种情况,如下所示:

Exec=/usr/bin/firejail /usr/lib/firefox/firefox

那么为什么会发生这种情况以及如何预防呢?

答案1

发现这个有点晦涩的问题,但我在网上找不到解决方案。所以我想我会把它发布在这里。

造成这种情况的原因似乎是$HOSTNAME沙箱应用程序中常见的变化。如果$HOSTNAME与打开应用程序的用户不同,它将为应用程序创建一个新图标。

虽然为了简单起见,我给出了一个使用 Firejail 的示例、 我实际上使用的是 Bubblewrap。我确信 Firejail 中的解决方案将是类似的。如果有人能够为了完成而提供答案,我会很高兴。

因此,在 Bubblewrap 中,您基本上只需删除这些行:

--unshare-uts \
--hostname FIREFOX \

或者,只要保持$HOSTNAME不变,您实际上仍然可以取消共享。 (不过我不确定这是否会提供任何额外的保护。)例如:

--unshare-uts \
--hostname "${HOSTNAME}" \

另一种选择是您可以$HOSTNAME在启动程序之前实际更改您的设置。export HOSTNAME=FIREFOX不适合我。但hostnamectl hostname FIREFOX确实如此。这样做的问题是,$HOSTNAME只要程序运行,您的意志就保持不变。这可能会破坏其他程序或导致其他问题

hostnamectl hostname FIREFOX

bwrap \
[...]
--unshare-uts \
--hostname FIREFOX \
[...]
/usr/lib/firefox/firefox

hostnamectl hostname "${HOSTNAME}"

我还没有对此进行测试,但理论上,您应该能够在后台运行一个脚本,该脚本将休眠大约 5 秒,等待应用程序启动,然后设置后台$HOSTNAME。但不确定这可能会导致任何问题。

显然,这完全取决于您,这种轻微不便的解决方案是否对您和您的情况/“威胁模型”有意义。

相关内容