Как переопределить обработчик Gnome 3 SSH?

11

Я хотел бы иметь возможность кликать по ссылкам SSH, которые выглядят как ssh://user@servernameи имеют открытый терминал gnome, который запускает SSH внутри него.

После прочтения материала XDG я сделал следующее:

Я создал скрипт оболочки в $ HOME / bin / ssh-терминал со следующим:

#!/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 mount, и я не могу найти, где это установлено!

Куда мне идти отсюда?

Зан Рысь
источник

Ответы:

7

Написание .desktopфайла недостаточно. Вам также необходимо изменить настройки по умолчанию для типа пантомимы.

Вы можете получить текущее значение по умолчанию с

 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зависимости от версии вашей ОС.

jofel
источник
Извините за поздний прием. Это не сработало в то время, когда я задал вопрос, но я только что попробовал это в последнее время, и теперь оно работает. Спасибо.
Zan Lynx
Чтобы этот превосходный ответ был актуален во времени, в Ubuntu 18.04 LTS теперь находится соответствующий файл конфигурации $HOME/.config/mimeapps.list. По крайней мере, для меня, один из перечисленных здесь в ~/.local/share/applications0 байтов.
Майкл Кэмпбелл
@MichaelCampbell спасибо, я обновил ответ.
Джофель
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
user3559338
источник
Для любого, кто сталкивается с этим (я сделал), вы должны перезапустить Gnome / Unity / Cinnamon, чтобы это вступило в силу. Если вы не знаете как, перезагрузка компьютера должна помочь.
ocket8888