Jak zastąpić moduł obsługi SSH Gnome 3?

11

Chciałbym mieć możliwość kliknięcia linków SSH, które wyglądają ssh://user@servernamei mają otwarty terminal gnome, który uruchamia SSH w nim.

Po przeczytaniu na temat XDG zrobiłem następujące:

Utworzyłem skrypt powłoki w $ HOME / bin / ssh-terminal z następującymi elementami:

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

Działa to z wiersza poleceń.

Stworzyłem $ HOME / .local / share / applications / ssh-terminal.desktop z:

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

Pobiegłem update-desktop-database ~/.local/share/applications/

Teraz, gdy próbuję uruchomić, pojawia xdg-open ssh://user@hostnamesię następujący błąd:

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

Nie chcę go otwierać jako montażu sftp i nie mogę znaleźć, gdzie to jest ustawione!

Gdzie mogę się stąd udać?

Zan Lynx
źródło

Odpowiedzi:

7

Zapisanie .desktoppliku to za mało. Musisz także zmienić domyślne ustawienie dla typu MIME.

Możesz uzyskać bieżącą wartość domyślną za pomocą

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

i można to zmienić za pomocą

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

Odpowiedni plik konfiguracyjny może być $HOME/.config/mimeapps.listlub $HOME/.local/share/applications/mimeapps.listzależy od wersji systemu operacyjnego.

Jofel
źródło
Przepraszam za spóźnione przyjęcie. To nie działało w momencie, gdy zadałem pytanie, ale ostatnio próbowałem i teraz działa. Dzięki.
Zan Lynx
Aby ta doskonała odpowiedź była tymczasowo istotna, w Ubuntu 18.04 LTS znajduje się odpowiedni plik konfiguracyjny $HOME/.config/mimeapps.list. Przynajmniej dla mnie ten wymieniony tutaj ~/.local/share/applicationsto 0 bajtów.
Michael Campbell
@MichaelCampbell dzięki, zaktualizowałem odpowiedź.
jofel
1

Nic z tego nie działało, dopóki nie edytowałem następującego pliku i nie usunąłem SchemeAliaswiersza/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
użytkownik3559338
źródło
Dla każdego, kto się z tym spotka (ja to zrobiłem), musisz ponownie uruchomić Gnome / Unity / Cinnamon, aby to zadziałało. Jeśli nie wiesz jak, ponowne uruchomienie komputera powinno załatwić sprawę.
ocket8888