Firefox 下载的 PDF 文件会在 LibreOffice 中打开。

我无法弄清楚为什么Firefox会在LibreOffice中打开PDF文件。当我在下载视图中打开文件时(工具栏上的小下箭头区域),就会出现这种情况。
当我第一次点击PDF文件时,它会正确地要求我保存文件 - 我已经在首选项中设置了这个选项。但是当我点击打开下载的文件时,它会使用LibreOffice。
如果我使用Dolphin(KDE文件浏览器)并点击文件,它会正确地用Okular打开文件。
我不知道Firefox从哪里获取下载文件的PDF -> LibreOffice关联。
我尝试了Firefox应用程序关联在“下载”窗口中不起作用中列出的解决方案,但对我来说没有起作用。

运行 xdg-mime default okular.desktop application/pdf,如果成功了请告诉我。 - Ravexina
@Ravexina 不,它似乎没有改变。我重新启动了Firefox以确保。 - edA-qa mort-ora-y
@edA-qamort-ora-y 你找到解决方案了吗? - bonanza
1@bonanza 我没有找到原因。最后我删除了我的Firefox配置文件、缓存和数据目录。使用全新的配置文件后,问题解决了。 - edA-qa mort-ora-y
2个回答

我用KDE系统设置成功修复了它。进入“文件关联”,找到PDF应用程序首选顺序。它的顶部是Okular,所以我先将其下移,使得LibreOffice处于顶部,并点击应用。然后我再将Okular放回顶部并再次应用。现在Firefox可以识别它了。

1这就是我最初尝试的,注意我说Dolphi正确地打开了文件:系统设置是正确的。不确定Firefox从哪里获取它的关联。 - edA-qa mort-ora-y
@edA-qamort-ora-y - 你所描述的是一个bug,即Firefox没有遵循默认设置,因为有些应用程序会对/usr/share/applications/mimeinfo.cache进行更改,而不考虑系统设置。 - cipricus
所以,正如原帖所说,这并不是一个解决方案。 - cipricus

一些最近安装的应用程序会将自己设置为某种文件类型在/usr/share/applications/defaults.list中的首选项。
(根据我的经验,即使我的默认查看器是Okular并且Firefox对pdf的设置是“使用系统默认应用程序”,Google Chrome仍然会通过Firefox下载列表打开pdf文件。在某些系统上,可能是其他应用程序(例如Audacious)试图在Firefox下载列表中作为文件管理器操作时,我正在尝试打开下载位置文件夹。)
这是一个旧的反复出现的Linux问题,我在所有系统中都见过它超过10年了。Firefox似乎忽略了系统的文件关联。

enter image description here

对我来说,最简单的解决办法就是快速打开该文件,并查找特定文件类型的第一个应用程序,并编辑该行。
为了快速打开它,可以在桌面上创建一个指向"/usr/share/applications/defaults.list"的链接,并且可以添加一个菜单项来在文本编辑器中打开该链接,在Kubuntu中会创建一个名为"~/.local/share/applications/Mimetype settings.desktop"的文件。
[Desktop Entry]
Comment=mime type settings file
Exec=kate /home/cip/Applications/defaults.list
Icon=preferences-desktop-filetype-association
Name=Mimetype settings
NoDisplay=false
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=

(在这个例子中,/home/cip/Applications/defaults.list 是一个指向/usr/share/applications/defaults.list的链接,因为在这种情况下kate /usr/share/applications/defaults.list无法工作。但是sh -c "kate /usr/share/applications/defaults.list"也可以工作。)
例如,在打开/usr/share/applications/defaults.list并搜索pdf后,我们会找到一行以application/pdf=开头的内容。移动或删除您不想要的应用程序,以便将您想要的应用程序设置为第一个。对于Kubuntu 22.04中的Okular:application/pdf=okularApplication_pdf.desktop;
注意:在最近的Plasma/Kubuntu中,Kate文件编辑器只有在保存文件时才能打开系统文件并要求密码。在其他系统中,可能需要在打开文件之前输入密码才能保存文件。