Yeni mime türü (mime-type) oluşturma

· by Gürkan · Read in about 2 min · (222 Words)

Taze program yazan kişilerin başına dert olabilecek bir olay: Programınızın ürettiği dosyaların kde/gnome/xfce/blabla altında hiçbir ayar yapmadan, tıklayınca programınızla beraber çalışmasını istersiniz. Bilinen dosya türlerinden biri ile çalışmıyorsanız işiniz zor. Bilemiyorum bu işlemi herhangi bir geliştirme ortamı yardımıyla yapılan programlar otomatik olarak hallediyor mu ama, çift tıklayınca "ilişkilendirilmiş uygulama yok" hatasına kesin çözüm yollarından birisi olarak yepyeni, cillop gibi bir mimetype üretmeyi anlatacağım. Programınızın ürettiği bir dosyanın mime türünü "_file dosyaadi" komutu ile görebilirsiniz. Anlatacağım yöntem, olabilecek en kötü ihtimallerden olan, yalnızca "data" çıktısına sahip dosyalar için işe yaradı. Programınızı çalıştırmak için gerekli komutun "programim" olduğunu varsayıyorum. Ürettiğiniz/açmak istediğiniz dosyanın uzantısı da "weq" olsun (nasıl salladım ama). Bu arada programın komut satırından dosya açabildiğini bilmemiz gerek, "_programim /home/blabla/dosyaadi" komutu ile açabiliyor olması gerek. Yeni mime türü oluşturmaya başlayalım, öncelikle/usr/share/mime/packages/programim.xml diye bir dosya oluşturuyoruz. İçeriği şu şekilde ayarlıyoruz:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
   <mime-type type="application/programim">
     <comment>Programim</comment>
     <glob pattern="*.weq"/>
   </mime-type>
</mime-info>

sonra, /usr/share/mime-info/programim.mime :

application/programim
    ext: weq

/usr/share/mime-info/programim.keys :

application/programim:
    description=Programim falan
    default_action_type=application
    short_list_application_ids_for_novice_user_level=programim
    category=Documents/Data

/usr/share/applications/programim.desktop :

[Desktop Entry]
Encoding=UTF-8
Name=Programım
Comment=Bişeyler
Exec=programim %f
Icon=/usr/share/benim_simgem.png
Terminal=false
Type=Application
Categories=GNOME;GTK;Game; #(artık neyse kategoriniz yazarsınız)
StartupNotify=true
MimeType=application/programim;

Son olarak, /usr/share/application-registry/programim.applications :

programim
    command=programim
    name=Programim
    can_open_multiple_files=false
    expects_uris=false
    requires_terminal=false
    mime_types=application/programim

Bitirdikten sonra da root olarak "update-desktop-database" komutu verirseniz, artık ".weq" uzantılı dosyalara çift tıkladığınızda "programim" ile açılacaktır. Bunu da artık atarsınız kurulum prosedürünün bi kenarına, onu da mı anlatayım..