Linux’ta uygulama başlatıcılarını “.desktop” uzantılı dosyalar olarak oluştururuz: ilgili oldukları uygulama hakkında meta veriler ve uygulamanın nasıl yürütülmesi gerektiğine ilişkin talimatlar içerirler. Bir başlatıcının masaüstü ortamının uygulama menüsünde görünmesi için belirli özel dizinlere yerleştirilmesi gerekir. Bu eğitimde, Freedesktop.org spesifikasyonuna göre uygulama başlatıcılar için varsayılan hedef dizinlerin neler olduğunu ve özel dizinlerin nasıl ekleneceğini öğreniyoruz.
Freedesktop.org spesifikasyonu
Freedesktop.org, Linux ve diğer Unix benzeri işletim sistemlerindeki masaüstü ortamları arasında standart kurallar ve ortak işlevler oluşturmayı amaçlayan bir projedir. Freedesktop.org tarafından sağlanan standartlar arasında, belirli dosya türlerinin dosya sisteminde nerede aranması gerektiğini tanımlayan XDG Temel Dizin özelliği bulunmaktadır.
Bu durumda bizi ilgilendiren, XDG_DATA_DIRS ortam değişkeni tarafından tanımlanan, altında veri dosyalarının arandığı dizinlerdir. Bahsettiğimiz veri dosyaları, bu durumda, masaüstü başlatıcılardır: Masaüstü giriş belirtimi tarafından tanımlanan talimatlar kullanılarak derlenen .desktop uzantılı dosyalar; grafiksel ortamlarda uygulama başlatıcıları olarak kullanılırlar.
Varsayılan başlatıcı dizinleri
XDG Temel Dizin Belirtimi’ne göre, veri dizinlerinin yolları XDG_DATA_DIRS ortam değişkeni aracılığıyla belirtilir. Bu değişken ayarlanmamışsa veya boşsa varsayılan dizinler kullanılır. Bunlar öncelik sırasına göre: /usr/local/share ve /usr/share. Ek olarak, kullanıcıya özel veri dosyaları, XDG_DATA_HOME değişkeni aracılığıyla tanımlanan temel dizinde aranır; varsayılan değer: ~/.local/share.
Bu dizinlerin altında “uygulamalar” adı verilen bir alt dizin mevcutsa, masaüstü başlatıcıları aranır: /usr/local/share/applications geleneksel olarak kaynaktan derlenen uygulamalara yönelik başlatıcıları veya / altında yüklenen bağımsız üçüncü taraf uygulamaları barındırmak için kullanılır. tercih dizini; /usr/share/applications dizini bunun yerine paket yöneticisiyle yüklenen uygulamanın başlatıcılarını barındırmak için kullanılır. Son olarak ~/.local/share/applications dizini, yalnızca belirli bir kullanıcı için yüklenen uygulamalara yönelik masaüstü başlatıcıları barındırmak için kullanılır.
Özel bir başlatıcı dizini ekleme
Masaüstü başlatıcılara özel bir dizin eklemek için tek yapmamız gereken XDG_DATA_DIRS değişkeninin değerini değiştirmek. Örnek olarak, /opt/share/applications dizinini listeye eklemek istediğimizi varsayalım; /etc/profile.d dizini altında bir dosya oluşturarak sistem genelindeki ortamda XDG_DATA_DIRS değişkenine bir değer atayabiliriz. Bu dizindeki “.sh” uzantılı dosyalar, Red Hat dağıtım ailesindeki bu kod parçası aracılığıyla /etc/profile dosyasından alınır:
Debian tabanlı dağıtımlarda da benzer bir mantık mevcuttur:
Örnek olarak /etc/profile.d/custom-launcher-dirs.sh dosyasındaki değişken değerini ayarlayacağız:
export XDG_DATA_DIRS="/opt/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
Bu durumda, özel dizinimizi XDG_DATA_DIRS içindeki tüm mevcut yolların önüne yerleştirdik, böylece diğerlerinden önce arandı. Değişkeni geçerli kabuğun alt işlemleri için kullanılabilir hale getirmek için “export” anahtar sözcüğünü kullandık ve “/usr/local/share:/usr/share” ( XDG_DATA_DIRS (parametre) boşsa veya ayarlanmamışsa, word) açıkça varsayılan değer olarak kullanılır. Değişikliğin etkili olması için dosyayı kaydedip oturumu kapatıp tekrar giriş yapıyoruz.
Artık dizini eklediğimize göre, “applications” alt dizini altında “.desktop” uzantılı, doğru yazılmış her dosya (yani /opt/share/applications) masaüstü ortam uygulamalar menümüzde görünmelidir.
Yazının orijinalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.