Awesome (pencere yöneticisi)

AwesomeWM, C ve Lua programlama dillerinde geliştirilmiş X Pencere Sistemi için tasarlanmış dinamik bir pencere yöneticisidir . Lua, pencere yöneticisini yapılandırmak ve genişletmek için de kullanılır. Gelişimi bir dwm çatalı olarak başladı. Son derece küçük ve hızlı olmayı, ancak kapsamlı bir şekilde özelleştirilebilir olmayı hedefliyor. Kullanıcının klavyeyi kullanarak pencereleri yönetmesini mümkün kılar.

Çatal başlangıçta jdwm lakaplıydı, burada "jd" ana programcının baş harflerini ve dwm çatallandığı yazılım projesini ifade ediyordu. awesome'in ilk git deposu Eylül 2007'de kuruldu. jdwm, How I Met Your Mother karakteri Barney Stinson tarafından kullanılan aynı ifadeden sonra awesome (harika) olarak yeniden adlandırıldı. awesome, 20 Eylül 2007'de dwm e-posta listesinde resmen ilan edildi.

Awesome, harici yapılandırma dosyaları aracılığıyla özelleştirme özelliğine sahip bir dwm çatalı olarak ortaya çıktı (aşağıdaki Yapılandırma ve özelleştirme bölümüne bakın). Oldukça genişletilebilir olmasına rağmen, pencere yöneticisinin varsayılan kurulumu kasıtlı olarak basitleştirilmiştir. Bunu yaparken, yazar, kullanıcıların kendi ihtiyaçlarına göre genişletmeleri ve uyarlamaları için bir çerçeve penceresi yöneticisi dediği şeyi yarattı.

dwm ve wmii gibi, awesome da çalışma alanları yerine etiketler kullanır. Pencereler birkaç etikete atanabilir ve aynı anda birden çok etiket seçilebilir.

Bir dinamik pencere yöneticisi olarak, awesome her etiket için kayan, çeşitli dinamik döşeme düzenleri, büyütülmüş ve büyüteç dahil farklı düzenler arasında geçiş yapabilir.

En başından beri awesome, harici bir yapılandırma dosyasına sahip bir dwm çatalı olarak tasarlandı. Bu nedenle, yapılandırma dosyası formatı ve yapılandırma sürecinin kendisi, yazarın özel ilgisine tabi tutulmuştur.

Üçüncü büyük sürümden önce, awesome'nin özelliklerinden biri Danjou'nun 'karmaşık olmayan bir yapılandırma' olarak adlandırdığı şeydi. awesome (1.x)'in ilk sürümleri, libconfig kullanan düz dosya yapılandırmasıyla 'nin basit modifikasyonuydu. 2.x dalında, Danjou, yapılandırma kitaplığını libconfig'den 'a değiştirdi, farklı bir düz dosya yapılandırma kitaplığı, biraz libconfig'e benziyor. 2.x sürümlerinin geliştirilmesi sırasında, başlık çubukları ve simge çizimi gibi awesome pencere yöneticisine birçok özelleştirme özelliği eklendi.

20 Mayıs 2008'de Danjou, awesome posta listesine gönderdiği bir e-postada, 3.0 sürümünde yapılandırma dosyası için yeni bir formatın kullanılacağını duyurdu. Yeni biçim ~/.awesomerc.lua dosyasına yerleştirildi ve daha sonra ~/.config/awesome/rc.lua'ya taşındı. Uzantının önerdiği gibi, yapılandırma dosyası Lua programlama dilinde yazılmıştır. Danjou, yeni formatın ve Lua entegrasyonunun awesome kullanıcıların daha önce imkansız olduğunu düşündüğü şekillerde awesome'i özelleştirmesine olanak sağlayacağını savundu: yapılandırma için bir programlama dili kullanmak, yapılandırma seçeneklerini dinamik olarak belirlemeyi mümkün kıldı.

Pencere yöneticisinin Beautiful kitaplığını kullanarak awesome'i bir tema (veya kaplama) yapmak mümkündür. rc.lua yapılandırma dosyasına uygun olarak, Lua'da temalama da yapılır ve dinamik temaların oluşturulmasına izin verilir.

3.2.1 sürümünden itibaren varsayılan harika yapılandırmanın herhangi bir durum göstergesi olmamasına rağmen (kablosuz ağ durumu, pil göstergeleri vb.), kullanıcılar bu öğeleri widget'ları kullanarak ekleyebilir. Widget'lar ana yapılandırma dosyasında tanımlandığından, widget'lar için veriler rastgele Lua kodu kullanılarak sağlanır.

18 Eylül 2008'de yayınlanan 3.0 sürümü, X sunucusuyla iletişim kurmak için XCB kitaplığını kullanır, bu kitaplığı Xlib yerine kullanan ilk pencere yöneticisini awesome yapar. XCB portu üzerindeki çalışmalar, şu anki Awesome geliştiricilerinden biri olan Arnaud Fontaine tarafından Ocak 2008'de başlatıldı.

Arnaud Fontaine, 9 Nisan 2008'de XCB posta listesinde XCB'ye taşındığını duyurdu. Listeye gönderdiği mesajda, XCB kullanmanın başlıca avantajları olarak şunları vurguladı: "modüler mimari; protokollere doğrudan erişim; multithreading; asenkron istekler/cevaplar;". XCB limanı ertesi ay tamamlandı ve Danjou, XCB'ye dayalı yeni bir şube oluşturdu.

awesome'in 3.0 öncesi sürümünde genişlemeyi ve özelleştirmeyi sınırlayan algılanan sorunlar nedeniyle, yazar Lua tabanlı konfigürasyonu awesome ile entegre etmeye karar verdi. Yeni Lua kodlu uygulamanın rc1'i Ağustos 2008'de duyuruldu. Eylül 2008'de, harika Lua API ile ilk sürümü, XCB uygulamasına paralel olarak tamamlandı.

AwesomeWM 1.0'dan 1.3'e kadar olan sürümler (Eylül-Ekim 2007) adlandırılmadı. İlk 2.0 sürüm adayıyla (Kasım 2007) başlayarak, awesome adlandırılmış sürümleri kullandı. Sürüm adları müzikle ilgilidir. AwesomeWM v4.x, Daft Punk'tan şarkı adını kullanır.