Gnome3

如何覆蓋 Gnome 3 SSH 處理程序?

  • March 23, 2020

我希望能夠點擊看起來像的 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 掛載打開,而且我似乎找不到它的設置位置!

我從這裡去哪裡?

寫一個.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取決於您的作業系統版本。

直到我編輯了以下文件並刪除了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

引用自:https://unix.stackexchange.com/questions/55214