2012-01-22 15 views
7

Tôi đang tìm cách thay thế danh sách thẻ trong WM tuyệt vời bằng một hộp văn bản đơn giản chỉ hiển thị tên của thẻ hiện tại. Tôi đã cố gắng tạo một hộp văn bản có chứa mã sau:Cách lấy tên thẻ hiện tại trong wm tuyệt vời?

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

Nhưng điều này không hoạt động và hoàn nguyên về cấu hình mặc định của nó. Mã chính xác mà tôi cần phải đưa vào để làm điều này có thể là gì? Tôi cũng dùng Shifty. Cảm ơn

Trả lời

11

Bạn là gần đúng cách:

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

-- Or add_signal on awesome < 3.5 

Vì vậy mytagbox.text sẽ được thay đổi theo từng chuyển mạch thẻ.

+0

Cảm ơn, tôi đã đặt mã trong rc.lua của tôi và nó nửa hoạt động - nó sẽ hiển thị tên của thẻ đầu tiên khai trương ngày đăng nhập, nhưng khi tôi thay đổi thẻ sau đó, nó không cập nhật. Tôi đã viết một hàm trả về 'tagname', nhưng tôi nên gọi hàm đó ở đâu trong rc.lua để nó thay đổi với các thẻ? Chúc mừng – semiserious

+0

Bạn chỉ cần đặt 'mytagbox.text = awful.tag.selected (1) .name' vào tín hiệu' tag :: history :: update' của màn hình [1]. Tôi đã cập nhật ví dụ trong câu trả lời ở trên. – Taras

+0

Đối với tuyệt vời 3.5, bạn nên sử dụng "connect_signal" thay vì add_signal, bạn có thể cập nhật câu trả lời của bạn bởi vì điều này không làm việc nữa với tuyệt vời 3,5 và nó không tạo ra bất kỳ lỗi nào (nó đã cho tôi một thời gian để tìm hiểu lý do tại sao điều này đã không 't làm việc). – cedlemo

0

Một giải pháp khác sẽ được thay đổi chức năng lọc trên taglist

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