จะบอก Chrome ได้อย่างไรว่าจะทำอย่างไรกับลิงค์แม่เหล็ก?


67

ตอนนี้ Chrome ขว้างผ้ากันเปื้อนบนหัวแล้วเรียก Firefox ซึ่งเปิดลิงค์กับ rtorrent ฉันต้องทำอะไรเพื่อกำจัดขั้นตอน Firefox


คุณกำลังใช้งาน Google Chrome รุ่นใด google-chrome -version
อัลวาร์

สิ่งนี้เกิดขึ้นกับฉัน (บน Ubuntu 14.04.2 LTS) เมื่อ Firefox ถูกตั้งค่าเป็นเบราว์เซอร์เริ่มต้นของฉัน หาก Chromium ถูกตั้งค่าเป็นเบราว์เซอร์เริ่มต้นของฉันฉันจะได้รับแท็บเปล่าใหม่ใน Chromium - ในที่สุดฉันก็แก้ปัญหาได้โดยการแก้ไข/usr/bin/xdg-openตามที่แนะนำในคำตอบที่ยอมรับ "การเชื่อมโยงแม่เหล็ก Torrent เปิดหน้าต่างใหม่ แต่ไม่ส่ง "
zrajm

คำตอบ:


90

การจัดการโปรโตคอล Chrome (หรือ Chromium) ทำงานแตกต่างจากใน Firefox Firefox พื้นติดตามทุกสิ่งที่ตัวเองซึ่งเป็นเหตุผลที่คุณสามารถกำหนดค่าโปรโตคอลการจัดการ (เช่นการเชื่อมโยงแม่เหล็ก) ในส่วนของการประยุกต์ใช้งานการตั้งค่า โครเมี่ยม xdg-openแต่อาศัย

มีสองสิ่งที่คุณต้องทำก่อนxdg-openจะจัดการกับลิงก์แม่เหล็กอย่างถูกต้อง

  1. ค้นหาชื่อไฟล์เดสก์ท็อปของโปรแกรมที่คุณต้องการจัดการกับลิงค์แม่เหล็ก สมมติว่าโปรแกรมคือการส่ง มัน (เหมือนปกติ) มีไฟล์สก์ท็อปใน/usr/share/applications/และในความเป็นจริงโดย perusing รายชื่อของไดเรกทอรีที่ผมพบว่ารุ่นของฉันส่งเป็นจริงรุ่น GTK transmission-gtk.desktopดังนั้นไฟล์สก์ท็อปของมันจะถูกเรียกว่า

  2. อาจเป็นไปได้ว่าไฟล์เดสก์ท็อปถูกทำให้ยุ่งเหยิง ดังนั้นคุณสามารถตรวจสอบว่า/usr/share/applications/transmission-gtk.desktopมีเส้น:

    Exec=transmission-gtk %U
    [some lines omitted]
    MimeType=application/x-bittorrent;x-scheme-handler/magnet;
    

    หมายเหตุ%Uในบรรทัด Exec มันจำเป็นอย่างยิ่ง บรรทัด MimeType ควรมีลักษณะด้านบน

  3. ตอนนี้สำหรับขั้นตอนสำคัญในการบอกxdg-openให้เปิดลิงก์แม่เหล็กโดยใช้ระบบส่งกำลัง ในเทอร์มินัลพิมพ์:

    xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet 
    
  4. ( ขั้นตอนไม่จำเป็นถ้าคุณใช้ Gnome, KDE, Xfce หรือ LXDE ) สุดท้ายxdg-openถือว่าคุณใช้หนึ่งในสภาพแวดล้อมเดสก์ท็อปมาตรฐาน: gnome, kde, xfce และ lxde หากคุณไม่ได้xdg-openจะไม่ทำงานในการเชื่อมโยงแม่เหล็ก ตามที่แนะนำบน Arch wikiคุณสามารถแก้ไข/usr/bin/xdg-openได้อย่างง่ายดาย ในตอนท้ายของไฟล์คุณจะพบส่วนที่ขึ้นต้นด้วย:

    detectDE
    if [ x"$DE" = x"" ]; then
       DE=generic
    

    เปลี่ยนgenericให้เป็นหนึ่งgnome, kde, หรือxfce lxdeฉันเลือกxfceเนื่องจากฉันมีเซสชัน Xfce ที่ฉันได้กำหนดค่าและใช้งานในบางโอกาส

    ข้อเสียของวิธีนี้คือถ้าxdg-openได้รับการอัปเดตคุณจะต้องทำซ้ำ The Arch wiki แนะนำวิธีการอื่นที่หลีกเลี่ยงข้อบกพร่องนี้ (แต่มีข้อเสียของตัวเอง)

    คำเตือน:ตัวเลือกในขั้นตอนสุดท้ายมีความสำคัญมากกว่าที่อาจปรากฏขึ้น การเลือกlxdeไม่ได้ผลสำหรับฉัน! ในxdg-openฟังก์ชั่นตัวช่วยopen_lxdeอาศัยpcmanfm(ตัวจัดการไฟล์ lxde) และมีบางอย่างผิดปกติกับโค้ดในopen_lxdeหรืออาจเป็นpcmanfmความผิดพลาด


7
ขอขอบคุณ! ฉันเพิ่งทำxdg-mime default deluge.desktop x-scheme-handler/magnetเพื่อเชื่อมโยงกับ Deluge แทน
Justin Force

1
ฉันมี (อาจ) ที่เกี่ยวข้องกับปัญหา ฉันได้ลองวิธีแก้ปัญหาแล้ว แต่มันไม่ทำงาน
Quinn Culver

2
ลีนุกซ์สามารถประสบความสำเร็จได้อย่างไรเมื่อผู้เชี่ยวชาญไม่สามารถทำงานได้ ฉันใช้ Linux ตามความชอบทุกวัน แต่ประสบการณ์เดสก์ท็อปไม่ดีพอ ขอให้โชคดีในการ SteamOS
Sam Watkins

2
ยังอยากจะบอกว่าขอบคุณสำหรับคำตอบมันใช้งานได้ดี เนื่องจากฉันใช้ Linux Mint โดยใช้ MATE แทนที่จะเป็น GNOME ฉันต้องทำตามขั้นตอนที่ 4 อย่างแปลกประหลาดmateไม่ทำงาน (ซึ่งฉันคาดว่าจะได้ตั้งแต่เรียกใช้ MATE) แต่gnomeทำ
machineghost

1
@machineghost ขอบคุณสำหรับความคิดเห็นของคุณ: ฉันบน MATE ด้วยและคำตอบนี้ + ความคิดเห็นของคุณเรียงลำดับให้ฉัน
Max Williams

6

เพียงลากลิงค์แม่เหล็กลงในหน้าต่างส่งข้อมูลและทำงานได้ดีสำหรับฉันโดยไม่ต้องมีการปรับแต่งใด ๆ .... ฉันใช้สต็อคของ Lubuntu 12.10 ไม่มีอะไรแฟนซี ....


นี่เป็นวิธีการอื่นและฉันชอบมัน แต่มันไม่ได้แก้ปัญหาเมื่อลิงก์แม่เหล็กถูกเปิดโดยอัตโนมัติและมันต้องมีการโต้ตอบกับผู้ใช้มาก (คลิก) เมื่อการส่งสัญญาณไม่ได้ทำงานอยู่
Joel Sjögren

2

ทำงานได้ดีมากในการเปิดแม่เหล็กจาก Chrome ด้วย qBitorrent ใน Lubuntu

xDg-mime ค่าเริ่มต้น qBittorrent.desktop x-scheme-handler / แม่เหล็ก


1

ถ้าคุณใช้ xfce และไม่ต้องการยุ่งอะไรคุณสามารถใช้โซลูชันของฉันได้ ฉันแก้ไขด้วยการแก้ไข xdg-open ด้วยตนเองดังนี้:

ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณมี mime ที่เกี่ยวข้อง (ดังที่อธิบายไว้ก่อนหน้านี้ด้วย xdg-mime)

จากนั้นสำรองข้อมูล xdg-open เป็นรูท (sudo ถ้ามี)

# cp /usr/bin/xdg-open /usr/bin/xdg-open.old

สุดท้ายแก้ไขเป็น root / usr / bin / xdg-open ค้นหา open_xfce () และเพิ่มบรรทัดที่มีเครื่องหมาย +, เช่น, กับ nano

# nano /usr/bin/xdg-open

open_xfce()
+ if [ "\`echo $1 | sed -n 's/\(^[[:alnum:]+\.-]*\):.*$/\1/p'\`" == "magnet" ]; then
+     gnome-open "$1"
+ else
      exo-open "$1"
+ fi

มันจะเพิ่มข้อยกเว้นสำหรับการเชื่อมโยงแม่เหล็กเท่านั้นดังนั้นพวกเขาจะเปิดขึ้นด้วยคำพังเพยเปิดแทน exo-open

หวังว่ามันจะช่วย


1

ไม่มีคำแนะนำอื่น ๆ ที่ฉันพบว่าใช้งานได้สำหรับฉัน แต่นี่เป็นการหลอกลวงภายใต้Debian / Xfce (จากhttp://fluxcode.net/archives/57 ):

ใน / usr / bin / xdg-open เพิ่มบรรทัดต่อไปนี้เพื่อ open_xfce ()

open_xfce()
{
 if(echo "$1" | grep -q '^magnet:'); then
    transmission-gtk "$1" 
    if [ $? -eq 0 ]; then
       exit_success
    fi
 fi

exo-open "$1"

0

ชายใน alt.os.linux.slackware พบวิธีแก้ปัญหา:

http://www.void.gr/kargig/blog/2012/01/24/open-magnet-urls-with-xdg-open/


ยินดีต้อนรับสู่ถาม Ubuntu! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรจะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Michael Martin-Smucker

อันที่จริงแล้วมันซับซ้อนกว่าที่จำเป็น ดูคำตอบของฉัน
Chan-Ho Suh

0

การใช้ gnome-open บน XFCE นั้นทำให้ฉันได้ผล

สิ่งนี้สามารถบังคับได้ด้วยการแก้ไข / usr / bin / xdg-open และเปลี่ยนแปลง

if [ x"$DE" = x"" ]; then
  DE=generic
fi

ไปยัง

if [ x"$DE" = x"" ]; then
  DE=generic
fi
DE=gnome

0

สิ่งนี้ใช้ได้กับฉันใน Ubuntu 18 กับ FF (สำหรับน้ำท่วม):

gio mime x-scheme-handler/magnet deluge.desktop

ฉันรู้ว่าไม่ตอบคำถาม แต่ฉันใช้ Chrome ด้วยและนี่เป็นการทำงานที่ดีกว่าการคัดลอกและวางลิงก์แม่เหล็ก


-1

ฉันผสมคำตอบเล็กน้อย (น่าเสียดายที่ไม่ได้ผลสำหรับฉัน) และเกิดขึ้นกับบางสิ่งที่ทำให้มันทำงานเหมือนมีเสน่ห์! มันทำงานบน Linux Mint 16 ภายใต้ XFCE ยังไงก็ตาม

ทำการสำรองข้อมูลของ xdg-open ภายใต้ / usr / bin เปิด xdg-open ของคุณด้วย sudo จากนั้นทำฟังก์ชั่น open_xfce () ดังนี้:

open_xfce()
{    
    if (echo "$1" | grep -q '^magnet:'); then
        gnome-open "$1"
    else
        exo-open "$1"
    fi
}

มันสกปรกและคุณต้องแก้ไขทุกการอัพเดท xdg-open แต่เดี๋ยวก่อนมันใช้งานได้!


-1

ฉันพยายามมานานหลายปีในการแก้ไขและเปลี่ยนไปใช้ Chrome และดูเหมือนว่าจะไม่มีอะไรทำงาน ในที่สุดฉันก็มีความคิดฉันไม่แน่ใจว่าทำไมฉันไม่เคยคิดมาก่อนและใช้งานได้ดี ฉันใช้ Tixati ในโรงกษาปณ์ แต่ควรใช้ได้ในระดับสากล Chrome ชี้ให้เห็นว่าแม่เหล็กเชื่อมโยงกับ usr / bin / transmission-gtk ดังนั้นฉันจึงเปลี่ยนชื่อเป็น transmission-gtk.old และเปลี่ยนชื่อ tixati เป็น transmission-gtk และเลือกตัวเลือกใน chrome เพื่อทำสิ่งนี้และกดเปิดแอปทันที Tixati เช่นเดียวกับ Firefox ปัญหาได้รับการแก้ไขในที่สุด!

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