Làm cách nào để ghi đè trình xử lý Gnome 3 SSH?


11

Tôi muốn có thể nhấp vào các liên kết SSH trông giống như ssh://user@servernamevà mở một thiết bị đầu cuối gnome chạy SSH bên trong nó.

Sau khi đọc các công cụ XDG, tôi đã làm như sau:

Tôi đã tạo một tập lệnh shell trong $ HOME / bin / ssh-terminal bằng cách sau:

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

Điều này hoạt động từ dòng lệnh.

Tôi đã tạo $ HOME / .local / share / application / ssh-terminal.desktop với:

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

Tôi đã chạy update-desktop-database ~/.local/share/applications/

Bây giờ khi tôi cố chạy xdg-open ssh://user@hostnametôi gặp lỗi sau:

$ 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

Tôi không muốn mở nó dưới dạng gắn kết sftp và dường như tôi không thể tìm thấy nơi nào được đặt!

Nơi nào tôi đi từ đây?

Câu trả lời:


7

Viết một .desktoptập tin là không đủ. Bạn cũng cần thay đổi cài đặt mặc định cho loại mime.

Bạn có thể nhận được giá trị mặc định hiện tại với

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

và có thể thay đổi nó với

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

Các tập tin cấu hình tương ứng là $HOME/.local/share/applications/mimeapps.list.


Xin lỗi về sự chấp nhận muộn. Điều này không hoạt động vào thời điểm tôi đặt câu hỏi nhưng tôi mới thử nó gần đây và bây giờ nó đã hoạt động. Cảm ơn.
Zan Lynx

Để giữ câu trả lời xuất sắc này có liên quan theo thời gian, trong Ubuntu 18.04 LTS, tệp cấu hình tương ứng hiện đã có $HOME/.config/mimeapps.list. Ít nhất là đối với tôi, cái được liệt kê ở đây ~/.local/share/applicationslà 0 byte.
Michael Campbell

1

Không ai trong số này làm việc cho tôi cho đến khi tôi chỉnh sửa tệp sau và xóa SchemeAliasdòng trên/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

Đối với bất kỳ ai gặp phải điều này (tôi đã làm), bạn phải khởi động lại Gnome / Unity / Cinnamon để điều này có hiệu lực. Nếu bạn không biết làm thế nào, khởi động lại máy tính của bạn sẽ thực hiện thủ thuật.
ocket8888
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.