xdg-open เปิดแอพพลิเคชั่นอย่างไร?


21

ฉันได้ทำงานupdate-alternativesเช่นเดียวกับpreffered appsสิ่งที่เลือกคำพังเพย และทุกจุดมีchromiumเบราว์เซอร์เป็นค่าเริ่มต้น แต่เมื่อฉันเรียกใช้Firefox ได้เปิดตัวแล้ว! ในทำนองเดียวกันและยังเปิดสิ่งใน firefox แทนโครเมียมxdg-open http://askubuntu.comemacsbzr

มีการตั้งค่าเพิ่มเติมใด ๆ ที่ส่งผลต่อการทำงานของ xdg-open หรือไม่?

มีบางสิ่งบางอย่างแตกหักแน่นอน:

UPDATE
เราได้ชำระ Firefox:
ปรับปรุงทางเลือก - ใช้โครเมียมเบราว์เซอร์
ที่เหมาะสมเบราว์เซอร์ - เปิดเบราว์เซอร์โครเมียม
XDG เปิดและ gnome-เปิด - เปิดใช้ google-โครเมี่ยมที่กรุณาบอกฉัน "มันไม่ได้เป็นเบราว์เซอร์เริ่มต้น"

!!!!


คำตอบ:


7

Chromium ยังมีตัวเลือกในการตั้งค่าเพื่อให้เป็นเบราว์เซอร์เริ่มต้น:

ข้อความแสดงแทน

ที่ควรจะทำงาน แต่ถ้าไม่อ่านบน:

มีหลายคีย์ในฐานข้อมูลGConfที่กำหนดว่าจะเปิดใช้เบราว์เซอร์ใดxdg-open:

  • /desktop/gnome/url-handlers/unknown/command
  • /desktop/gnome/url-handlers/http/command
  • /desktop/gnome/url-handlers/https/command
  • /desktop/gnome/url-handlers/about/command

ตรวจสอบให้แน่ใจว่าได้ตั้งค่าทั้งหมดอย่างถูกต้อง:

  • กดAlt+F2
  • เข้าสู่ gconf-editor
  • /usr/bin/chromium-browser %sไปที่ปุ่มดังกล่าวข้างต้นที่พวกเขาควรจะกำหนดให้

ข้อความแสดงแทน


มันดีกว่า ฉันได้ลบแพ็คเกจ firefox แล้วและคาดเดาอะไร $ xdg-mime query default text/html firefox.desktop
Dima

5

ในสถานการณ์ของฉันฉันติดตั้ง Chromium และทำให้เป็นค่าเริ่มต้น ก่อนหน้านี้ Chrome นั้นเป็นเบราว์เซอร์เริ่มต้น

ฉันลองทั้งหมดที่ฉันสามารถทำได้: การตั้งค่าเบราว์เซอร์เริ่มต้นของ Chromium เปลี่ยนการตั้งค่าgconfเพื่อเรียกใช้ Chromium ด้วยตัวแปร% U ( /ubuntu//a/41085/94263 ) เปลี่ยนทางเลือกในการใช้ Chromium เป็นค่าเริ่มต้นx-www -browser ( /ubuntu//a/24052/94263 ) แต่ไม่ช่วยอะไรเลยxdg-openเปิดหน้าต่าง Chromium ใหม่ที่มีหน้าเริ่มต้นไม่สามารถเปิดลิงก์ที่ให้มาได้เบราว์เซอร์ที่ใช้เหตุผลเปิด Chrome ฉันพยายามกำจัด Chrome (Chromium ถูกตั้งค่าโดยอัตโนมัติเป็นค่าเริ่มต้นและอัตโนมัติในตัวเลือกการอัปเดต ) และติดตั้งอีกครั้งเพราะฉันต้องการแฟลช Pepper จากที่นั่นและกลายเป็นค่าเริ่มต้นx-www-browserทางเลือกอีกครั้งและเปิดอีกครั้งพร้อมกับคำสั่งที่เหมาะสมสำหรับเบราว์เซอร์ จากนั้นฉันก็ไปที่หน้าเว็บบางหน้าและดึงความสนใจของฉันไปที่ลำดับความสำคัญและพบว่ามีgnome-www-browser symlink ใน/ etc / ทางเลือก /เกินไปและgoogle-chromeก็เริ่มต้นที่นั่น โครเมี่ยมมีความสำคัญในการชุด200และโครเมี่ยม - 40 ลำดับความสำคัญของ Google Chrome จะสูงกว่าดังนั้นยูทิลิตี้การอัปเดตทางเลือกจะติดตั้งเป็นเว็บเบราว์เซอร์เริ่มต้นโดยอัตโนมัติเป็น "เวอร์ชันที่ดีกว่า"

ฉันได้ลบทั้ง Chrome และ Chromium ออกจากx-www-browserและgnome-www-browser :

sudo update-alternatives --remove x-www-browser /usr/bin/google-chrome
sudo update-alternatives --remove x-www-browser /usr/bin/chromium-browser
sudo update-alternatives --remove gnome-www-browser /usr/bin/google-chrome
sudo update-alternatives --remove gnome-www-browser /usr/bin/chromium-browser

จากนั้นฉันได้ติดตั้งทางเลือกใหม่ด้วยลำดับความสำคัญอื่น ๆ :

sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/google-chrome 40
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/chromium-browser 200
sudo update-alternatives --install /usr/bin/gnome-www-browser gnome-www-browser /usr/bin/google-chrome 40
sudo update-alternatives --install /usr/bin/gnome-www-browser gnome-www-browser /usr/bin/chromium-browser 200

ฉันไม่ทราบว่ามีความสำคัญเป็นค่าเริ่มต้น'40'และ'200'สำหรับคอมพิวเตอร์ทุกเครื่องหรือคุณจะมีหมายเลขอื่น จะดีกว่าที่จะมองก่อนโดยการป้อน

sudo update-alternatives --display x-www-browser
sudo update-alternatives --display gnome-www-browser

UPD ฉันพยายามทำสิ่งเดียวกันในระบบที่แตกต่างอย่างสิ้นเชิงและลำดับความสำคัญเหมือนกันที่นี่

Upd2 หากคุณเรียกใช้ google-chrome เพียงครั้งเดียวมันจะเปลี่ยนลำดับความสำคัญเป็น200แต่โครเมียมเบราว์เซอร์จะยังคงเป็นค่าเริ่มต้น

สิ่งนี้ใช้ได้สำหรับฉัน Chromium ได้รับการตั้งค่าให้เป็นค่าเริ่มต้นโดยอัตโนมัติและsensible-browserกำลังเรียกใช้ Chromium แต่ยังคงxdg-openกำลังเปิดหน้าต่างว่างใหม่


3

คำตอบข้างต้นทั้งหมดนั้นถูกต้องโดยทั่วไปขึ้นอยู่กับสิ่งที่คุณทำและวิธีการที่โปรแกรมที่คุณใช้กำลังเรียกสิ่งต่างๆ สำหรับฉันปัญหาคือเทอร์มินัลอีมูเลเตอร์ของฉัน (Tilix) ยังคงเปิดเบราว์เซอร์ผิด (Firefox แทน Chrome) รวมถึงxdg-open foobar.htmlเปิดเบราว์เซอร์ที่ไม่ถูกต้อง Chrome กล่าวในการตั้งค่า: "

ในที่สุดฉันก็พบว่ามีxdg-mime:

$ xdg-mime query default x-scheme-handler/http
firefox.desktop
$ xdg-mime query default x-scheme-handler/https
firefox.desktop

ไม่ถูกต้องดังนั้นฉันจึงเปลี่ยนเป็น:

$ xdg-mime default google-chrome.desktop 'x-scheme-handler/http'
$ xdg-mime default google-chrome.desktop 'x-scheme-handler/https'

จากนั้นก็มีการเชื่อมโยงสำหรับ 'text / html' ซึ่งฉันเปลี่ยนด้วย:

$ xdg-mime default google-chrome.desktop 'text/html'

เมื่อรวมกับการตรวจสอบให้แน่ใจว่ามีการตั้งค่าต่อไปนี้อย่างถูกต้อง:

  • BROWSERตัวแปรสภาพแวดล้อม
  • sensible-browser ( /usr/bin/sensible-browserสคริปต์ตัวตัดคำที่พยายามเรียกใช้บางรายการในรายการนี้)
  • gnome-www-browser ( /usr/bin/gnome-www-browserเป็น symlink ไป/etc/alternatives/gnome-www-browser)
  • x-www-browser ( /usr/bin/x-www-browserเป็น symlink ไป/etc/alternatives/x-www-browser
  • www-browser ( /usr/bin/www-browserซึ่งเป็น symlink ไป/etc/alternatives/www-browser)
  • รายการ "ทางเลือก" ทั้งหมด (ดู update-alternatives --get-selectionsรายการ) ที่ชี้ไปยังเบราว์เซอร์
  • ฐานข้อมูล GConf (ดูคำตอบของอิสยาห์)

ในที่สุดก็เปิดเบราว์เซอร์ที่ถูกต้องสำหรับสถานการณ์ส่วนใหญ่บนเดสก์ท็อปของฉัน ปี 2018 เป็นปีแห่งลินุกซ์บนเดสก์ท็อปอย่างแน่นอน


xdg-mimeคำสั่งที่มีสิ่งที่ฉันต้องการ! ฉันใช้ Manjaro-i3 ดังนั้นฉันจึงไม่มีสภาพแวดล้อมเดสก์ท็อปเลย (และGConfและupdate-alternativesคำตอบข้างต้นใช้ไม่ได้)
codermonkeyfuel

0

sensible-browser เป็นคำสั่งให้เปิดเว็บเบราว์เซอร์เริ่มต้นจากเทอร์มินัล


แน่ใจ แต่ฉันไม่มีเงื่อนงำสิ่งที่$bzr lp-openใช้อยู่ด้านหลังของฉัน แต่สิ่งที่มันใช้ firefox ได้รับเลือก ฉันคิดว่ามันใช้ xdg-open ซึ่งก็คือการเลือก firefox
Dima

หลังจากใช้การแก้ไข DoR ตอนนี้โครเมียมจะเปิดขึ้นโดยใช้เบราว์เซอร์ที่เหมาะสม
Dima

0

สำหรับฉันทางออกคือการเรียกใช้สองคำสั่งนี้ จากนั้นคุณจะต้องเลือกเบราว์เซอร์ที่ต้องการจากรายการ

sudo update-alternatives --config x-www-browser
sudo update-alternatives --config gnome-www-browser

แหล่งที่มา: Launchpad , Bugzilla

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