2012-01-22 30 views
7

Sadece mevcut etiketin adını görüntüleyen basit bir metin kutusuyla etiket listesini harika WM'de değiştirmek istiyorum. Aşağıdaki kodu içeren bir metin kutusu oluşturmak için çalıştık:Geçerli etiket adı nasıl harika wm'ye alınır?

mytagbox = widget({ type = "textbox" }) 
mytagbox.text = awful.tag.selected(s).getproperty("name") 

Ama bu işe ve varsayılan config müthiş döner gelmez. Bunu mümkün kılmak için yerleştirmem gereken doğru kod nedir? Ayrıca Shifty kullanıyorum. Teşekkür

cevap

11

Doğru şekilde yakındı:

screen[1]:connect_signal("tag::history::update", function() 
     mytagbox.text = awful.tag.selected(1).name 
end) 

-- Or add_signal on awesome < 3.5 

Yani mytagbox.text her etiketler anahtarlama üzerinde değişecektir.

+0

sayesinde, benim rc.lua bu kodu koyduk ve yarım çalışır - bu girişte açılan ilk etiketin adını görüntüler ancak Bundan sonra etiketleri değiştirdiğimde, güncellenmez. 'Tagname' i döndüren bir işlev yazdım, ancak rc.lua'da bu işleve bir çağrı yapmalıyım, böylece etiketlerle değişecek? Alkışlar – semiserious

+0

Yalnızca 'mytagbox.text = awful.tag.selected (1) .name 'öğesini' tag :: history :: update 'ekranının [1]' e koymalısınız. Yukarıdaki cevabımda örneği güncelledim. – Taras

+0

Harika 3.5 için, add_signal yerine "connect_signal" kullanmalısınız, cevabınızı güncelleştirebilir misiniz, çünkü bu artık harika 3.5 ile çalışmaz ve herhangi bir hata oluşturmaz. (Bu neden yapmadığını anlamak bana biraz zaman kazandırır. Çalışıyorum. – cedlemo

0

diğer çözüm taglist filtre fonksiyonunu değiştirmek olacaktır

mytaglist[s] = awful.widget.taglist(s, function(t, args) return t.selected end, mytaglist.buttons) 
İlgili konular