วิธีการแทนที่ Gnome 3 SSH handler?


11

ฉันอยากจะคลิกที่ลิงค์ SSH ที่มีหน้าตาเหมือนกันssh://user@servernameและมี gnome-terminal open ที่รัน SSH อยู่ด้านใน

หลังจากอ่านข้อมูลเกี่ยวกับ XDG ฉันได้ทำสิ่งต่อไปนี้:

ฉันสร้างเชลล์สคริปต์ใน $ HOME / bin / ssh-terminal ด้วยสิ่งต่อไปนี้:

#!/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 ไบต์
Michael Campbell

@MichaelCampbell ขอบคุณฉันได้อัพเดตคำตอบแล้ว
jofel

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.