Bagaimana cara mengganti handler Gnome 3 SSH?

11

Saya ingin dapat mengklik tautan SSH yang terlihat seperti ssh://user@servernamedan memiliki gnome-terminal terbuka yang menjalankan SSH di dalamnya.

Setelah membaca tentang hal-hal XDG saya melakukan hal berikut:

Saya membuat skrip shell di $ HOME / bin / ssh-terminal dengan yang berikut:

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

Ini bekerja dari baris perintah.

Saya membuat $ HOME / .local / share / application / ssh-terminal.desktop dengan:

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

Saya berlari update-desktop-database ~/.local/share/applications/

Sekarang ketika saya mencoba menjalankan xdg-open ssh://user@hostnamesaya mendapatkan kesalahan berikut:

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

Saya tidak ingin membukanya sebagai mount sftp dan sepertinya saya tidak dapat menemukan di mana itu diatur!

Kemana saya harus pergi dari sini?

Zan Lynx
sumber

Jawaban:

7

Menulis .desktopfile tidak cukup. Anda juga perlu mengubah pengaturan default untuk tipe mime.

Anda bisa mendapatkan nilai default saat ini dengan

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

dan bisa mengubahnya dengan

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

File konfigurasi yang sesuai dapat $HOME/.config/mimeapps.listatau $HOME/.local/share/applications/mimeapps.listtergantung pada versi OS Anda.

Jofel
sumber
Maaf tentang keterlambatan terima. Ini tidak berfungsi pada saat saya mengajukan pertanyaan, tetapi saya baru saja mencobanya akhir-akhir ini dan sekarang. Terima kasih.
Zan Lynx
Agar jawaban yang luar biasa ini relevan untuk sementara, di Ubuntu 18.04 LTS, file konfigurasi yang sesuai sekarang ada di $HOME/.config/mimeapps.list. Setidaknya bagi saya, yang tercantum di sini ~/.local/share/applicationsadalah 0 byte.
Michael Campbell
@MichaelCampbell terima kasih, saya memperbarui jawabannya.
jofel
1

Tak satu pun dari ini bekerja untuk saya sampai saya mengedit file berikut dan menghapus SchemeAliasbaris/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
pengguna3559338
sumber
Bagi siapa pun yang menemukan ini (saya lakukan), Anda harus memulai ulang Gnome / Unity / Cinnamon agar ini berlaku. Jika Anda tidak tahu caranya, me-restart komputer Anda harus melakukan triknya.
ocket8888