Firefox dosyaları açmak için “varsayılan” uygulamaları nereden alır?


12

Varsayılan olarak, FreeBSD 11.0-CURRENT'imdeki Firefox (33.0), Inkscape olarak ayarlanmış PDF dosyalarını açmak için varsayılan uygulamaya sahiptir. Firefox , “Firefox bu dosyayla ne yapmalı?” Bölümünde önceki seçimimi hatırlıyor. iletişim, bu yüzden yakın zamana kadar bu yapılandırmanın nereden geldiğini kafam karıştı, ancak beni görmezden geldiği için çoğunlukla görmezden geldim.

Ancak son zamanlarda literatür veri tabanı olarak Zotero kullanmaya başladım. Zotero bir firefox eklentisi olarak çalışır ve PDF dosyalarını evince ile açmak veya bana ne yapacağımı sormak için Firefox tercihlerimde yapılan seçimleri yok sayar ve sadece Inkscape'i kullanarak açar. Bu, Firefox'un bu özel yapılandırma öğesini takip etmeye çalışmamı sağladı, ancak bu varsayılanın nerede ayarlandığını bulamadım.

Dizimi Inkscape(veya inkscape) giriş dizinimdeki herhangi bir Firefox ile ilgili dosyada bulamadım .



Firefox varsayılanım Yazı Tipi Görüntüleyicisi olarak ayarlanmış.
kullanıcı

Yanıtlar:


14

Bir “benzer soru” ya ( xdg-open varsayılan uygulamalar davranışı - açıkça ilgili olmayan) bir bağlantı, ancak bazı deneyler bu davranışın gerçekten de buna eşdeğer olduğunu gösterdi xdg-open) beni tavşan deliğinin derinliklerine götürdü. Firefox kurallara güvenmese veya kuralları devralmasa da xdg-open, MIME belirtim dosyalarını olduğu gibi kullanır xdg-open.

Kullanıcı bazında, MIME açılış davranışı şartname dosyası tarafından yapılandırılır ~/.local/share/applications/mimeapps.list.

Benim için, bu dosya sadece birkaç makul protokol ve bağlı HTML (ve benzer) dosyaları içeriyor userapp-Firefox-??????.desktop, ancak kolayca bir satır ekleyebilirsiniz.

application/pdf=evince.desktop

kullanıcı başına bu sorunu çözmek için. Dosya henüz mevcut değilse, gibi bir bölüm başlığı eklediğinizden emin olun.

[Default Applications]
application/pdf=evince.desktop

Daha derinlerde, mime türleri tanımlanır /usr/local/share/applications/mimeinfo.cache(bu /usr/share/…bir FreeBSD sisteminde değilseniz olabilir ), listeler application/pdf=inkscape.desktop;evince.desktop;. Hem evince.desktopve hem inkscape.desktopde bu klasörde MimeType=[…]application/pdf;[…].

Bu mimeinfo.cache, .desktopherhangi bir iyi tanımlanmış sipariş olmadan dosyalarda listelenen mime türlerinden otomatik olarak oluşturulur , bu nedenle PDF mime türünü Inkscape'den kaldırmanız ve kullanarak önbelleği yeniden update-mime-databaseoluşturmanız veya bir mimeapps.list (genel olarak /usr/local/share/applications/veya için kullanıcı ~/.local/share/applications/mimeapps.list).


Eski Debian Linux'umda update-mime-databasefarklı bir şey yaptım, ihtiyacım vardı update-desktop-database ~/.local/share/applications.
Palec

Ayrıca, xdg-open file.pdfEvince'yi (Nautilus gibi) açar, Firefox xpdf'yi açar. Kullanarak find ~/.local/share/applications/ /usr/share/applications/ -type f -exec grep -i pdf '{}' +PDF'nin kullanıcı yapılandırmasında hiçbir yerde, sadece /usr/share/applications/mimeinfo.cacheve ilgili *.desktopdosyalarda belirtilmediğini buldum . Hattı içinde mimeinfo.cachebir application/pdf=xpdf.desktop;evince.desktop;xournal.desktop;. Sanırım FF ilk eşyayı aldı. Ama xdg-openEvince'yi istediğimi nasıl bilebilirim?
Palec

1
Kullanarak strace, bir symlink olan xdg-opençağrıları gnome-openve gnome-openokumaları /usr/share/gnome/applications/defaults.list, /etc/gnome-vfs-2.0/defaults.listbelirlediğini keşfettim application/pdf=evince.desktop. Açıkçası, vanilya FF GNOME entegrasyonundan yoksundur ve bu nedenle bu tercihi görmezden gelir.
Palec

7

Firefox 38.8.0 ESR'de, GNOME 2 ile Debian Lenny altında, XDG ile ilişkilendirilen uygulamanın ( OP'nin cevabında açıklandığı gibi ) sadece Kütüphane'deki İndirmeler'den indirilen bir dosyayı açarken kullanıldığını keşfettim .

Ve hatta orada, uygulama xdg-openGNOME'a özgü yolları (benim durumumda /usr/share/gnome/applications/defaults.listbir sembolik bağlantı /etc/gnome-vfs-2.0/defaults.list) görmezden geldiği için tutarsız sonuçlar veriyor . Benim belirtmek application/pdf=evince.desktopzorundaydım ~/.local/share/applications/defaults.list. (Bunun XDG'nin daha yeni sürümlerinde defaults.listbirleştirildiğini unutmayın mimeapps.list.)

XDG yerine, metamail özellikleri (mailcap) , ilgili uygulamayı aşağıdaki kullanım durumlarında çözmek için kullanılır:

  • indirilen dosyayı indirme panelinden açma (araç çubuğundaki indirme düğmesine bastıktan sonra görüntülenir)
  • dosya indirme iletişim kutusundaki açılır menüde varsayılan uygulama
  • Tercihler → Uygulamalar ( about:preferences#applications) içindeki açılır menüde varsayılan uygulama

about:preferences#applicationsİndirme zorunluluğu olmadıkça, bu içerik türüne sahip bir URL'ye giderken tercih kullanılır.

Mailcap, XDG'den daha eski bir mekanizmadır ve kökleri MIME'nin de geldiği e-postada bulunur. Yardımcı run-mailcapprogram analojiktir xdg-open. Konfigürasyonu üç dosyadan oluşur (azalan öncelikte):

  • ~/.mailcap - kullanıcı girişleri
  • /etc/mailcap.order - sistem genelinde girişler sipariş spesifikasyonu
  • /etc/mailcap - sistem çapında girişler (kullanıcı girişleriyle aynı format)

Birlikte, herhangi bir MIME türü için kullanılacak uygulamayı belirten tek satırlık girişlerin bir listesini oluştururlar. Girişler yukarıdan aşağıya eşleştirilir, bu yüzden ilk gelen öncelik taşır.

Sistem genelinde giriş önceliğini değiştirmek için düzenlemeniz /etc/mailcap.orderve çalıştırmanız gerekir update-mime.

Bazı girişleri geçersiz kılmak veya sistem genelinde kendi girişlerinizi belirlemek için, üst bölümünü (manuel olarak oluşturulan girişler içindir) düzenlemeniz /etc/mailcapve çalıştırmanız gerekir update-mime. Üst bölümdeki yorumlara bakın.

Kullanıcı girişleri ve geçersiz kılmalar için kullanın ~/.mailcap. Değişiklikler hemen yürürlüğe girer. Hayır ~/.mailcap.order; girişlerin önceliğini değiştirmek istiyorsanız, bunları fiziksel olarak yeniden sıralayın (varsa ~/.mailcap) veya tercih ettiğiniz sürümle (varsa) geçersiz kılın /etc/mailcap.

Bkz man update-mime, man mailcapve man mailcap.order.

Bazı uygulamaların , tercih edilen uygulamanın algılanması yerine genel yardımcı programlar ( x-www-browserveya gibi pager) kullandığını unutmayın. update-alternativesDağıtımınızda genel bir yardımcı programın tercih edilen uygulamasını seçmek için veya benzer bir mekanizma kullanmanız gerekebilir . Veya belirli bir kullanıcı için sistem genelinde tercih edilen bir alternatifi geçersiz kılmak için, EDITOR(veya VISUAL) PAGERve gibi ortam değişkenlerini ayarlayın BROWSER. Onlar tarafından desteklenen sensible-browserve diğer sıklıkla daha spesifik araçlar (örneğin git commitkullanımları EDITORve VISUAL).


1
Bu cevap Firefox Quantum'da (64.0) hala geçerlidir. Ancak, mailcap gerçek firefox'tan daha iyi performans gösterir, bu nedenle run-mailcap --debug --norun'a tam olarak güvenemezsiniz. Böyle bir girdi vardır: application/pdf; sh -c "MEANINGFUL_VAR=preset /usr/bin/evince '%s'". Firefox daha sonra çağırır sh downloaded_file.pdf. Konsolumda, diğerleri arasında /tmp/mozilla_user/downloaded_file.pdf: line 3: 5: command not foundvb. Görüyorum . Birisi bunu düzeltmedikçe bu davranış sonsuza kadar kalacak. Bkz. Mozilla Bugzilla .
u_Ltd.

1
Bu nedenle, kullanıcıları için tutarlı bir deneyim yaratmak için, Debian'ı Gnome ile birleştiren bir yönetici, en az 4 yardımcı program kullanarak mime varsayılanlarını ayarlamalıdır: update-mime(posta başlığını güncellemek için), xdg-settings(xdg- open'i güncellemek için), gio(gnome-open'ı update-alternativesgüncellemek için ) ve (genel yardımcı programları denemek için). Ve elbette ayarları hem sistem çapında hem de her kullanıcı için ayrı ayrı yönetmeyi unutmamalıdır (muhtemelen kullanıcının varsayılanları değiştirme yeteneğini engellemek en iyisidir) ... - ah ve FF'nin handlers.json dosyası da: mzl.la/1xKrLAq
zenlord
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.