Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

The rule for starting Firefox on tag1 is working me for ages:

{ rule = { class = "Firefox" },
  properties = { tag = tags[1][1] }},

Now, with Firefox 20 it is possible to open a new Private browsing session while keeping the other session in its original window.

My rule for this is the following:

{ rule = { name = "Private Browsing - Mozilla Firefox (Private Browsing)" },
      properties = { tag = tags[1][9] }},

I've commented out my first rule, started Firefox on one of the tags but when I press CTRL+SHIFT+P in Firefox the new window still opens on the tag where the original window is.

After some testing I think the reason for this behavior is what I indicated in the question's title. There is nothing special with Firefox, and it's new feature coming in with version 20: they are just windows with some WM_CLASS(STRING) and WM_NAME(STRING) identifiers which aren't matched.

share|improve this question
add comment

1 Answer

up vote 3 down vote accepted
+50

Your rules will not work because at the moment of starting PrivateBrowser its name is "Mozilla Firefox". Awesome's rules works when awesome (re)starting or a new client appears. If a client is appeared rules will not work on this client (until you restart awesome).

But you've a possibility: the signals of clients.

The code:

-- connect a signal on new client appears
client.connect_signal("manage",function(c,startup)
  if (c.class=="Firefox") then
      -- if it's a Firefox we will connect a signal which will call if 'name' changing
      c:connect_signal("property::name",function(c)
          if (string.find(c.name,"(Private Browsing)")) then
              -- if "(Private Browsing)" is part of 'c.name' then 'c' goes to tags[1][9] 
              c:tags({tags[1][9]})
          end
      end)
  end
end)

It should work (I've tested).

You can check the name of clients when they appear:

client.connect_signal("manage",function(c,startup)
    naughty.notify({text=c.name})
end)
share|improve this answer
    
Where do I have to put this in rc.lua? At the end of that file it causes malfunction. –  dash17291 May 20 '13 at 20:27
    
I think it should work (after all 'require'). What do you mean 'malfunction'? Awesome doesn't start or it start but doesn't work correctly? Maybe I've forget some close-brackets. –  uzsolt May 21 '13 at 5:20
    
I think one end) is missing from the end. –  dash17291 May 21 '13 at 12:19
    
Ah, yes, indeed. Thanks! I hope it works now :) –  uzsolt May 21 '13 at 14:50
    
Something is wrong. Using the shipped rc.lua with Debian my tags are displayed 3 times at the top of the screen. I even "disabled" Run or raise by renaming aweror.lua and ror.lua. In theory everything was the bare config + your modifications with awesome v3.4.14 (White Christmas). –  dash17291 May 22 '13 at 17:40
show 3 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.