Welcome to awesome bug tracking system.

FS#659 - Fullscreen flash not working if browser tagged

Attached to Project: awesome
Opened by Benjamin Bannier (honk) - Monday, 19 October 2009, 00:50 GMT
Last edited by Julien Danjou (jd) - Monday, 09 November 2009, 19:58 GMT
Task Type Bug Report
Category Core
Status Closed
Assigned To No-one
Operating System All
Severity Low
Priority Normal
Reported Version git/master
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No



when I try to maximize flash vidoes (e.g. from hulu, youtube) from the in-browser button, they will briefly maximize, only to snap back to their normal size in the parent browser window. I am putting all epiphany browser windows on a fixed tag.

I am running awesome-3.4-rc3, flash- and epiphany-2.26.1 on a Gentoo Linux ~x86 system.

I discovered that when I remove the tag rule for epiphany, I can watch flash videos fullscreen. See lines 305,306 in my attached, pretty standard rc.lua.

I have no idea if this is a bug or if I messed something up, but it seems very conterintuitive to me.


   rc.lua (14.8 KiB)
This task depends upon

Closed by  Julien Danjou (jd)
Monday, 09 November 2009, 19:58 GMT
Reason for closing:  Implemented
Additional comments about closing:  commit ad50440d5ca6b8b1bdc77d43ddc9c9438f9e1d3f
Author: Anton Bobrov <bobrov@bober.localdomain>
Date: Sun Oct 25 00:05:09 2009 +1100

awful.rules: apply accumulated rule properties ( FS#669 )

To avoid the screen flickering, when two rules have different tags
with true switchtotag.

Signed-off-by: Julien Danjou <>
Comment by anrxc (anrxc) - Monday, 19 October 2009, 12:02 GMT
This is not a bug. Your flash window matches the rule for the browser window. See  FS#632  for a solution.
Comment by Benjamin Bannier (honk) - Tuesday, 20 October 2009, 03:22 GMT
Thanks for pointing me to  FS#632 . I had actually found it before, but somehow I cannot get the solution from there working.
I get
# xprop | grep -i class
WM_CLASS(STRING) = "epiphany", "Epiphany"
and something like
class="Epiphany", instance = "epiphany"
in my rules still seems to catch the flash window.


Comment by anrxc (anrxc) - Tuesday, 20 October 2009, 13:33 GMT
...and what about xprop on a fullscreen flash window?

Relevant notes from documentation (

1. Note that all "rule" entries need to match. If any of the entry does not match, the rule won't be applied.
2. If a client matches multiple rules, their applied in the order they are put in this global rules table.
Comment by Benjamin Bannier (honk) - Tuesday, 20 October 2009, 18:07 GMT
I get
WM_CLASS(STRING) = "epiphany", "Epiphany"
for both the browser window and the flash fs window.

And yes, I've read the documentation (it's in the rules source after all).

Looks like there is no way to match the flash window (or to avoid it being caught by the epiphany rule). Maybe that's just the way it is.


Comment by anrxc (anrxc) - Tuesday, 20 October 2009, 18:15 GMT
What about WM_NAME (which you can match with "name"), maybe at least that is different.
Comment by Benjamin Bannier (honk) - Wednesday, 21 October 2009, 04:01 GMT
WM_NAME is "Web Browser" for the flash window. If I disable the epiphany rule, I can use that to match it. But it seems to me like rules.lua's match() doesn't support something like 'name~="Web Browser"' for the epiphany rule, so it will still match both epiphany and flash window.

I tried to overwrite the tag setting forcibly inherited from the epiphany rule in a new "Web Browser" rule with nil and also setting it fullscreen=true, but that did not solve my issue (I tried different orderings). The flash movie window seems to be particular anyway: if I e.g. set it fullscreen=false (with the epiphany rule off), it will indeed show up as a window. It however isn't in the task list, and if I focus it with the mouse and then move the focus back to e.g. the epiphany window, the flash window snaps back to the browser window.

I agree this doesn't look like a bug, but like a limitation in the way flash handles its fs window and the way rules.lua works. Probably it can somehow be worked around.

Thanks for you help anrxc,

Comment by Damjan (gdamjan) - Saturday, 24 October 2009, 05:45 GMT
the sollution would be to change awful.rules.apply to first collect all the properties from the rules table and only then apply them. So that later rules could overwrite previous rules.

Then a rule like:
{ rule = { name = "Web Browser" },
properties = { tag = nil } }
*after* the epiphany (Firefox here) rules would do the right thing.
Comment by Damjan (gdamjan) - Saturday, 24 October 2009, 05:57 GMT
I made a patch that works whith the above rule in awesome 3.4 (attached) ..

Strangelly I can't exit the fullscreen flash with ESC ??? Space works for play/pause
Comment by Damjan (gdamjan) - Saturday, 24 October 2009, 06:13 GMT
I'm an idiot.. corrected patch attached.

For completeness, the rules I use are:
{ rule = { class = "Firefox" },
properties = { tag = tags[primary_screen][2], border_width = 2, floating = true } },
{ rule = { class = "Firefox", instance = "Navigator", role = "browser" },
properties = { floating = false, border_width = 0 } },
{ rule = { name = "^Web Browser$" },
properties = { tag = nil } },

ps. the patch didn't not correct the indenting just to show how simple it is. With de-indenting applied the function will look even nicer :)

note the name = "^Web Browser$" I'm using, making as specific as possible match for the flash window.
Comment by Damjan (gdamjan) - Saturday, 24 October 2009, 06:31 GMT
this started to work even without that { name = "^Web Browser$" } rule ???