如何覆盖 Gnome 3 SSH 处理程序?

如何覆盖 Gnome 3 SSH 处理程序?

我希望能够单击 SSH 链接,该链接看起来像ssh://user@servername并且打开了一个在其中运行 SSH 的 gnome 终端。

在阅读了 XDG 的内容后,我做了以下事情:

我在 $HOME/bin/ssh-terminal 中创建了一个 shell 脚本,内容如下:

#!/bin/sh
dest=${1#ssh://}
gnome-terminal -e "ssh $dest" &

这可以通过命令行进行。

我使用以下命令创建了 $HOME/.local/share/applications/ssh-terminal.desktop:

[Desktop Entry]
Type=Application
Name=SSH Terminal
Exec=ssh-terminal %u
Icon=utilities-terminal
StartupNotify=false
MimeType=x-scheme-handler/ssh;

我跑了update-desktop-database ~/.local/share/applications/

现在,当我尝试运行时,xdg-open ssh://user@hostname出现以下错误:

$ xdg-open ssh://[email protected]
gvfs-open: sftp://[email protected]/: error opening location: The specified location is not mounted

我不将其作为 sftp 安装打开,但我似乎找不到它的设置位置!

我该去哪里?

答案1

写一个.desktop文件是不够的。您还需要更改 mime 类型的默认设置。

您可以使用以下命令获取当前默认值

 xdg-mime query default x-scheme-handler/ssh

并可以改变它

 xdg-mime default ssh-terminal.desktop x-scheme-handler/ssh

相应的配置文件可能$HOME/.config/mimeapps.list取决于 $HOME/.local/share/applications/mimeapps.list您的操作系统版本。

答案2

SchemeAlias在我编辑以下文件并删除上面的行之前,这一切都不适合我/usr/share/gvfs/mounts/sftp.mount

[Mount]
Type=sftp
Exec=/usr/lib/gvfs/gvfsd-sftp
AutoMount=false
Scheme=sftp
# SchemeAliases=ssh
DefaultPort=22
HostnameIsInetAddress=true

相关内容