我在 KDE(Arch Linux 上)中运行 Riot.im(一个 Electron 桌面应用程序)。对于许多文件类型,当我在 Riot 中单击链接下载文件时,文件会按预期下载。我看到 KDE 的文件保存对话框。
但是,对于.pub
文件(以及可能的其他一些 mime 类型),它们是由应用程序打开而不是下载。对于.pub
文件来说,不幸的是,该应用程序是 Okular,这是完全不合适的。
Riot 的支持人员否认 Riot 中的任何内容正在控制这种行为。他们把矛头指向我的操作系统。我想了解 KDE 如何决定在应用程序中打开链接还是下载它,并且我想强制.pub
下载这些链接。
Riot 中的下载链接如下所示:
当我单击该链接时,现在会出现此对话框(这是我提到的新行为):
请注意,文件名实际上是,id_ed25519.pub
但 KIO 对话框中的文件名是一串随机字符(如 QRRdfN...Mm)。
另请注意,此对话框不提供保存文件关联的选项(就像 KDE 中此类对话框的典型情况一样)。
右键单击下载链接会显示以下信息:
如果我在 Firefox 中打开该链接,则会显示一个文件保存对话框,我可以按预期下载该文件。 Riot 的行为是不同的(并且是不可取的)。
我的目标是让 KDE 为.pub
Riot.im 中的链接提供一个文件保存对话框。我怎样才能做到这一点?
编辑:这是一些故障排除的新信息。
我用这个命令检查了所有包是否损坏。没有损坏的软件包。
paccheck --md5sum --quiet
接下来我重新安装了 KDE 和 kde 应用程序。我从存储库核心中选择了 cronie(默认):
pacman -Syu plasma-meta kde-applications-meta
There are 2 providers available for cron:
Repository core: cronie
重新安装 KDE 确实改变了上述行为,但不是以期望的方式。 (这让事情变得更糟,因为我现在无法正确保存公钥。)当我在 Riot.im 中单击相同的下载链接时,KDE 使用 Okular 打开该文件。这既不是公钥的正确应用程序,也不是所需的操作(下载并保存文件)。但是,我相信这是正常/默认行为。 (这是我在开始尝试解决这个问题之前最初的行为。)
下一步,我打开 KDE 系统设置 > 应用程序 > 文件关联并搜索pub
.唯一完全匹配的是 application/vnd.ms-publisher。 Okular、Gwenview 和 Libre Office Draw 以及 Kate 都被列为应用程序。我删除了 Okular、Gwenview 和 Libre Office Draw,只留下 Kate。我保存了设置。我检查它们是否被保存(是)并且在 Dolphin 中显示了相同的关联(它们是)。
接下来我再次测试了Riot.im,它仍然打开了与Okular的公钥链接。
我重新安装了kdegraphics-meta
(包含 Okular 的元包),重新安装后再次检查 mime 类型文件关联,然后尝试了 Riot.im 中的下载链接。再次,KDE 在 Okular 中打开链接。 Okular.pub
不再列在文件应用程序中。
这个关联从何而来?我没有通过 xdg-mime 查询找到它(作为 root 或用户):
# xdg-mime query filetype id_rsa_test.pub
text/plain
# xdg-mime query default text/plain
atom.desktop
$ xdg-mime query filetype id_rsa_test.pub
text/plain
$ xdg-mime query default text/plain
org.kde.kate.desktop
编辑2:我再次能够使用这个问题中的步骤更改Riot的mime类型行为:
如何将新的(自定义)mime 类型与文件关联(基于文件扩展名)?
然而,正如那里所述,“在上面显示的 xdg-mime 默认命令之后,Okular 关联消失了,但没有任何东西可以取代它。”这比被迫在 Okular 中打开公钥文件要好,但它也让我回到了第一步。它确实表明 Riot 对系统的哑剧类型做出了响应。它强化了我的信念(以及防暴支持的响应),即这种行为来自系统的哑剧类型配置。我的系统没有损坏或损坏,需要重新安装。我只是缺少.pub
Riot 正在查找的地方的文件的正确 mime 配置。 (我不知道解决方案,但我相信证据表明它可以通过进一步的 mime 类型配置来解决。)
这是支持我观点的另一个证据。 Riot.im 将.csv
正确下载文件。这表明有可能实现我想要的行为,并且该行为取决于哑剧类型。
使用新的故障排除信息,此问题的目标与上述相同:
我的目标是让 KDE 为下载链接(尤其是公钥文件)提供一个文件保存对话框。 (我绝对不希望那些在奥库拉开业。)
答案1
正如我在本文中指出的回答,我相信您已经成功更改了系统默认设置。在新系统中尝试,如果有效,只需重新安装 报告的软件包即可paccheck
。
我安装riot-desktop
并发送了 .pub 文件,系统提示我打开或者保存存档通过一个猎鹰(我的默认浏览器)对话框。一旦我选择了另存为,我得到了 KDE 另存为对话框。这是一个屏幕截图
我的猜测是这个问题与您认为的基于电子的应用程序无关。为了证明这一点,请将您的 .pub 文件上传到本地 apache 安装或任何 Web 服务器,然后使用默认浏览器打开链接并返回报告。