2012-01-22 11 views
7

Estoy buscando reemplazar la lista de etiquetas en WM impresionante con un cuadro de texto simple que solo muestra el nombre de la etiqueta actual. He tratado de crear un cuadro de texto que contiene el código siguiente:¿Cómo recuperar el nombre actual de la etiqueta en wm impresionante?

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

Pero esto no funciona y vuelve impresionante a su configuración por defecto. ¿Cuál es el código correcto que necesito poner para que esto sea posible? También estoy usando Shifty. Gracias

Respuesta

11

Eras cerca de la forma correcta:

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

-- Or add_signal on awesome < 3.5 

Así mytagbox.text estará cambiando en cada conmutación de etiquetas.

+0

Gracias, he puesto que el código en mi rc.lua y medio de obras - que muestra el nombre de la primera etiqueta abierta el inicio de sesión, pero cuando cambio etiquetas después de eso, no se actualiza. He escrito una función que devuelve 'tagname', pero ¿dónde debo hacer una llamada a esa función en rc.lua para que cambie con las etiquetas? Cheers – semiserious

+0

Debería poner 'mytagbox.text = awful.tag.selected (1) .name' en la señal' tag :: history :: update' de la pantalla [1]. He actualizado el ejemplo en mi respuesta anterior. – Taras

+0

Para awesome 3.5 debes usar "connect_signal" en lugar de add_signal, podrías actualizar tu respuesta porque esto ya no funciona con awesome 3.5 y no genera ningún error. (Me tomó algo de tiempo averiguar por qué esto no se hizo no funciona). – cedlemo

0

Otra solución sería cambiar la función de filtro en taglist

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