Gnome3
如何覆蓋 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://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