Tor浏览器在Unity启动器中显示为Firefox。

我在运行Ubuntu 16.04 64位系统,通过终端从Ubuntu软件仓库安装了Tor浏览器。但是当我运行它时,它却以Firefox的形式运行。尽管在启动器上显示的图标是Tor浏览器的图标,但在切换窗口时,它却显示Firefox的图标。在顶部面板上也显示的是Firefox网页浏览器,而不是Tor浏览器。

enter image description here

这是 /usr/share/applications/torbrowser.desktop 文件的当前内容:
[Desktop Entry]
Name=Tor Browser
GenericName=Tor
Comment=Launch Tor Browser
Exec=torbrowser-launcher %u
Terminal=false
Type=Application
Icon=/usr/share/pixmaps/torbrowser.png
Categories=Network;WebBrowser;

(与图标相关的行是我自己修改的)

如果我打开一个普通的Firefox窗口,Firefox和Tor-Browser都会显示在Firefox图标下面。

在迁移到16.04之前,在15.10中从其网站安装Tor-Browser时,我没有遇到这个问题。

2个回答

问题是由于Tor浏览器Firefox在它们的WM_CLASSS属性中共享一个字符串引起的:
如果你打开一个终端,输入
xprop WM_CLASS

点击Firefox窗口,你会得到:
WM_CLASS(STRING) = "Navigator", "Firefox"

...并且使用Tor浏览器:
WM_CLASS(STRING) = "Navigator", "Tor Browser"

作为结果,firefox.desktop文件(以及Unity/Dash中的图标)假定Tor浏览器窗口是“他的”。
解决方法如下:
运行以下命令:
cp '/usr/share/applications/torbrowser.desktop' ~/.local/share/applications && gedit ~/.local/share/applications/torbrowser.desktop
这将把全局的torbrowser.desktop复制到~/.local/share/applications,并随后用gedit打开它。
现在,在文件的末尾添加以下行:
StartupWMClass=Tor Browser
保存并关闭文件。这样,Tor浏览器的.deskop文件将识别自己的窗口。
注销并重新登录,问题应该就解决了。

enter image description here


谢谢。问题已解决。不仅如此,我还要感谢您的出色解释。我应该向Ubuntu报告这个问题吗? - Mostafa Ahangarha
2我认为应该向Tor浏览器的开发人员报告此问题,他们应该修改他们的WM_CLASS或者至少是随浏览器一起提供的.desktop文件。很高兴它能正常工作! - Jacob Vlijm

在迁移到16.04之前,我在15.10上从Tor-Browser的官网安装时没有遇到这个问题。
你可以尝试从他们的官网下载并安装Tor Browser的版本:https://www.torproject.org/projects/torbrowser.html.en,这可能会解决你的问题。
如果你希望在官方的Ubuntu软件包中修复这个问题,我建议你向torbrowser-launcher软件包提交一个正式的Ubuntu错误报告。