Як замінити обробник 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, і я не можу знайти місце, де це встановлено!

Куди я їхати звідси?

Відповіді:


7

Написання .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залежно від версії вашої ОС.


Вибачте за пізнє прийняття. Це не спрацювало в той час, коли я задав питання, але я просто спробував його останнім часом, і це зараз. Спасибі.
Zan Lynx

Щоб ця відмінна відповідь була тимчасово актуальною, в Ubuntu 18.04 LTS зараз знаходиться відповідний файл конфігурації $HOME/.config/mimeapps.list. Принаймні для мене той, що перерахований тут, ~/.local/share/applicationsстановить 0 байт.
Майкл Кемпбелл

@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

Для всіх, хто стикається з цим (я це робив), вам потрібно перезапустити Gnome / Unity / Cinnamon, щоб це набуло чинності. Якщо ви не знаєте як, перезавантаження комп'ютера повинно зробити свою справу.
ocket8888
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.