2012-01-22 11 views
7

Zamierzam zastąpić listę tagów w niesamowitym WM za pomocą prostego pola tekstowego, które wyświetla tylko nazwę bieżącego tagu. Starałem się stworzyć pole tekstowe, które zawiera następujący kod:Jak pobrać aktualną nazwę tagu w niesamowitym wm?

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

Ale to nie działa i powraca niesamowite domyślnej konfiguracji. Jaki jest poprawny kod, który muszę wprowadzić, aby było to możliwe? Używam również Shifty. Dzięki

Odpowiedz

11

Byłaś blisko prawidłowy sposób:

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

-- Or add_signal on awesome < 3.5 

Więc mytagbox.text będzie się zmieniać na każdym przełączania tagi.

+0

Dzięki, mam umieścić ten kod w moim rc.lua i pół działa - wyświetla nazwę pierwszego tagu otwarte na logowaniu, ale kiedy zmienię tagi po tym, nie aktualizuje się. Napisałem funkcję, która zwraca 'zmienna', ale gdzie powinienem wywołać tę funkcję w rc.lua, aby zmieniła się wraz z tagami? Pozdrowienia – semiserious

+0

Powinieneś po prostu umieścić 'mytagbox.text = awful.tag.selected (1) .name' na sygnał' tag :: history :: update' na ekranie [1]. Zaktualizowałem przykład w powyższej odpowiedzi. – Taras

+0

Dla wspaniałego 3.5 powinieneś użyć "connect_signal" zamiast add_signal, czy mógłbyś zaktualizować swoją odpowiedź, ponieważ to już nie działa z awesome 3.5 i nie generuje żadnego błędu. (To trochę czasu, aby dowiedzieć się, dlaczego to zrobiło nie działa). – cedlemo

0

Innym rozwiązaniem byłoby, aby zmienić funkcję filtra na taglist

mytaglist[s] = awful.widget.taglist(s, function(t, args) return t.selected end, mytaglist.buttons) 
Powiązane problemy