Yeni bir xdg-açık ayarını nasıl ayarlarım?


Yanıtlar:


17

xdg-open, temel olarak hangi masaüstü ortamına sahip olduğunuzu görmeye çalışır ve ardından gnome-open, gvfs-open, xfce-open, vb. çalışır. Masaüstü ortamına özgü talimatlar için aşağıya bakın ...

cüce

Gnome, her şeyi saklamak için gconf kullanan gnome-open programını kullanır. Mesela Ubuntu 10.10 çalıştıran makinemde gnome-open irc: // blah açıldı xchat açılıyor çünkü xchat bir irc: // işleyicisi eklemek için bir gconf ayar yaması içeriyor.

gconf-editor, xchat yapılandırması ile irc

Bu, bir gconf ayarında gnome'un bunu nasıl yaptığını gösterir /desktop/gnome/url-handlers/. xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemasÖrnek olarak görün .

KDE

KDE için / usr / share / kde4 / services / içindeki .protocol dosyalarına bakmalı, yeni protokolünüz için yeni bir tane oluşturmalı ve süper yararlıysa ~ / .kde / share / kde4 / services / içine koymalısınız. pakete diğer kullanıcılar için bir düzeltme olarak eklemeyi düşünün.

KDE, neyin uygun olduğuna ve hangi KDE sürümüne sahip olduğunuza bağlı olarak kde-open veya kfmclient kullanıyor.

XFCE

XFCE, exo-open adlı bir programı kullanır, bu programın yapılandırılması veya uri işleyicileri eklemesinin bir yolu yoktur. Kaynak koduna bakmak, yalnızca üç program türü belirtmek için masaüstü dosyaları kullandığını gösterir. TerminalEmulator, WebBrowser ve EmailClient.

XFCE4 ile (ve muhtemelen diğerleri de), özel bir protokol işleyici tanımlamak için xdg-open'i yapılandırmak mümkündür. Bazılarında, aşağıdaki dosyaları oluşturmanız / düzenlemeniz gerekir:

~ / .local / share / applications / protocolhandler.desktop ~ / .local / share / applications / mimeapps.list

Ed2k protokolü için bir işleyici ekleyen bir örnek stackexchange.com 2 adresinde verilmektedir .


Tüm resmi DE'ler için nasıl yapılacağını söyler misiniz?
Oxwivi

Tam olarak soru ile ilgili değil, ancak ekran görüntüsünün altındaki dizini tam olarak alıntılayabilir misiniz? Teşekkür ederim.
Oxwivi

4
xdg-open, temel olarak hangi masaüstü ortamına sahip olduğunuzu görüyor ve ardından gnome-open, gvfs-open, xfce-open, vb. çalıştırıyor. --- Sanmıyorum. Birincisi, manpage, xdg-open'in masaüstü ortamı olmadan mükemmel çalıştığını söylemez. Örneğin ben i3 pencere yöneticisi ile kullanıyorum.
Alois Mahdal

Uygulamanın yüklenmesi sırasında yeni url / uygulama birliği oluşturmanın genel bir yolu var mı?
jayarjo

14

Bunu magnet:URI tipinde ve Transmission'da (örneğin, acı durumlar için) açıklayacağım, ancak aynı yöntem herhangi bir şemaya veya dosya türüne uygulanabilir.

Ayrıca bunu Debian Jessie ile kontrol ettim ve aslında Ubuntu makinem yok, ancak aynı şekilde çalışması gerektiğine inanıyorum (en azından xdg-open için , dosya yöneticilerinin farklı mantık kullanmayı seçebileceğini unutmayın).

  1. MIME türü dizgisini bulun. MIME dosya tipleri için bunu dosya komutuyla öğrenebilirsiniz :

    $ file -i Broken_Blossoms.webm 
    Broken_Blossoms.webm: video/webm; charset=binary
    $
    

    Yukarıdaki dosya için MIME türü video/webm.

    URI işleyicileri için tür, kolondan önceki URI'nin parçası x-scheme-handler/<scheme>olduğu yerdir <scheme>; örneğin, "http", "mailto" "irc" veya "magnet". Aşağıda geçerli MIME türlerine örnekler verilmiştir:

    x-scheme-handler/http
    x-scheme-handler/irc
    x-scheme-handler/magnet
    x-scheme-handler/mailto
    
  2. Uygulama .desktop dosyasının adını bulun.

    Genellikle "resmi" adla aynı değil, bunun yerine küçük harfli bir versiyondur veya tamamen farklı bir addır. Yüklü .desktop dosyaları / usr / share / applications altında yaşıyor. Bunlar normal metin dosyaları olduğundan ve "resmi" adını içerdiğinden, aşağıdaki komut size yardımcı olabilir:

    $ grep "Transmission" -l -r /usr/share/applications
    /usr/share/applications/transmission-gtk.desktop
    $
    

    Komut etkili bir şekilde "Bu dizinde" İletim "kelimesini içeren dosyaları listele" anlamına gelir. Bazı uygulamalar sadece kullanıcı için kurulabilir, bu durumda yol ~/.local/share/applications .

    Dosyaya sahip olmayan "garip" bir uygulamanız varsa, her zaman bir tane oluşturabilirsiniz (ve belki de uygulama geliştiricilere gönderebilirsiniz). Kolay bir yol mevcut olanı kopyalamak, anladığınız alanları yeniden yazmak ve anlamadığınız alanları kaldırmak olacaktır. Detaylar için teknik özelliklere bakın.

  3. Atama için xdg-mime komutunu kullanın:

    $ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet
    $
    

    Dosyanın gerçekte nerede olduğu önemli değildir (/ usr / share / apps, ~ / .local / share / apps ...), her zaman yalnızca adını kullandığınızı unutmayın. tam değil, unutmayın.

    Normalde komut hiçbir şey çıkmaz - bu tamamdır. Ne yaptığınızı doğrulamak veya açmadan herhangi bir MIME türüne atanmış olanları görmek istiyorsanız:

    $ xdg-mime query default x-scheme-handler/magnet
    transmission-gtk.desktop
    $
    

Not 1: Diğer MIME türlerini kontrol etmek istiyorsanız, /etc/mime.types dosyasına bakabilirsiniz. Dünyadaki bütün türleri içermez; örneğin, URI işleyicileri, ancak dernekleri idare etmenin "agresif" formu için kullanılabilir. Örneğin:

grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop

bilinen tüm video formatlarını VLC ile ilişkilendirirdi.

Not 2: .desktop dosyaları genellikle, MimeTypealanı kullanabileceğini iddia ettikleri MIME türlerinin listesini içerir . xdg-mime man sayfası, yukarıda belirtilen komutun çalışmasından önce .desktop dosyasının MIME türünü talep etmesi gerektiğini belirtir, ancak benim için alan eksik olsa bile çalışabilir. (Yani, dernek uygulanacak ve başvuru başlayacaktır - eğer türü gerçekten ele alabilirse farklı bir soru) Neyin sakıncalı olduğundan emin değilim (belki gelecekte xdg-mime daha kısıtlayıcı olabilir).


wiki.archlinux.org/index.php/xdg-open az ya da çok aynı verir. hala orada iyi biri.
07’de shirish

Bu cevap en iyi yoldur. İpucu: 1) xdg-mime query filetype FILEMim türlerini bulmak için XDG yoludur. 2) Ayrıca işleri daha düzenli tutmak ve daha sonra onları yedeklemek için varsayılanları kendiniz de düzenleyebilirsiniz: .config/mimeapps.listdosya.
Ciro Santilli,

2 düzenleme geri alındı: @frank, xdg- mime'ın " nasıl daha iyi çalıştığını" açıklamak ister misiniz? IMO dosyası MIME türleri için otomatik bir araçtır, xdg-mime query filetype xyz.wbemOTOH daha az bilgi verir ve yazmak için daha fazla yol sağlar.
Alois Mahdal,

1
Harika bir açıklama ve masaüstü dosyasının tek adını kullanmanın ipucu, aradığım çözüm oldu!
Andrea Richiardi

1
Bu tavsiye nihayet linux üzerinde gevşek masaüstü uygulamasını kullanarak giriş yapamamak çözmeme yardımcı oldu. Gevşek, bir tarayıcıya yönlendirir, ancak daha sonra tarayıcı, tekrar gevşekliğe yönlendirmek için bir URI şeması kullanır. İpuçlarınız bana URI xdg-mime eşlemesinin gittiğini görmemde yardımcı oldu. Aradığım bir saat sonra buldum sevindim! teşekkür ederim!
pestophagous

2

postmanPostacı dokümanlarını şu tarayıcıdan açabilmek için bağlantıları manuel olarak yüklediğim Postman uygulamamla (krom uzantısı değil) ilişkilendirmek istedim :

görüntü tanımını buraya girin

görüntü tanımını buraya girin

İlişkilendirmek istediğim bağlantı şöyle gözüküyor:

postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...

Dernek yapmak için aşağıdaki adımları gerçekleştirdim:

  1. Uygulamayı elle yükleyin (içindeki bir tar.gz dosyasını indirin ve açın). /home/andrzej.rehmann/software/postman/
  2. İçinde bir masaüstü dosyası oluşturun /usr/share/applications/Postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
  1. İlişkilendirme postmançalışan tarafından uygulama ile xdg linki:

xdg-mime default Postman.desktop x-scheme-handler/postman


İlgilenen olursa, bu yapılandırmayı değiştirdim: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml

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.