Bağlantı xdg-open
açmak için kullanmak istiyorum irc://
, gerekli parametreyi nasıl yapabilirim?
Bağlantı xdg-open
açmak için kullanmak istiyorum irc://
, gerekli parametreyi nasıl yapabilirim?
Yanıtlar:
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 ...
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.
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 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, 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 .
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).
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
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.
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, MimeType
alanı 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).
xdg-mime query filetype FILE
Mim 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.list
dosya.
xdg-mime query filetype xyz.wbem
OTOH daha az bilgi verir ve yazmak için daha fazla yol sağlar.
postman
Postacı 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 :
İ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:
/home/andrzej.rehmann/software/postman/
/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
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