Gnome 3 SSHハンドラーをオーバーライドする方法は?


11

次のようなSSHリンクをクリックしssh://user@servernameて、その内部でSSHを実行するgnome-terminalを開いてみたいと思います。

XDGについて読んだ後、私は次のことを行いました。

$ HOME / bin / ssh-terminalに次のシェルスクリプトを作成しました。

#!/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マウントとして開きたくありませ、そしてそれが設定されている場所を見つけることができないようです!

ここからどこへ行くのですか?

回答:


7

.desktopファイルを書き込むだけでは不十分です。また、MIMEタイプのデフォルト設定を変更する必要もあります。

あなたは現在のデフォルト値を得ることができます

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

とそれを変更することができます

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

対応する構成ファイルは$HOME/.local/share/applications/mimeapps.listです。


遅く受け入れて申し訳ありません。これは私が質問した時点では機能しませんでしたが、最近試してみましたが、現在は機能しています。ありがとう。
Zan Lynx

この優れた回答を時間的に適切に保つために、Ubuntu 18.04 LTSでは、対応する構成ファイルがにあり$HOME/.config/mimeapps.listます。少なくとも私にとって、ここにリストされているの~/.local/share/applicationsは0バイトです。
マイケルキャンベル

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.