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


11

我希望能够单击看起来像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://buildbot@10.16.50.74
gvfs-open: sftp://buildbot@10.16.50.74/: error opening location: The specified location is not mounted

不想将其作为sftp挂载打开,我似乎找不到设置的位置!

我从这里去哪里?

Answers:


7

编写.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取决于您的操作系统版本。


对不起,迟到了。当我问这个问题时,这没有用,但我最近才尝试过,现在就可以了。谢谢。
Zan Lynx 2014年

为了使这个出色的答案与时间相关,在Ubuntu 18.04 LTS中,相应的配置文件位于中$HOME/.config/mimeapps.list。至少对我来说,这里列出的~/.local/share/applications是0字节。
Michael Campbell

@MichaelCampbell谢谢,我更新了答案。
jofel

1

直到我编辑以下文件并删除了该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

对于遇到此问题的任何人(我确实如此),您必须重新启动Gnome / Unity / Cinnamon才能使其生效。如果您不知道如何操作,则重新启动计算机应该可以解决问题。
ocket8888 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.