1

Правило запуска Firefox на tag1 работает у меня целую вечность:

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

Теперь с Firefox 20 можно открыть новый сеанс приватного просмотра, сохранив другой сеанс в исходном окне.

Мое правило для этого заключается в следующем:

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

Я прокомментировал свое первое правило, запустил Firefox для одного из тегов, но когда я нажимаю CTRL+SHIFT+P в Firefox, новое окно все еще открывается в теге, где находится исходное окно.

После некоторого тестирования я думаю, что причина этого поведения - то, что я указал в заголовке вопроса. В Firefox нет ничего особенного, и это новая функция, появившаяся в версии 20: это просто окна с некоторыми идентификаторами WM_CLASS(STRING) и WM_NAME(STRING), которые не совпадают.

1 ответ1

3

Ваши правила не будут работать, потому что в момент запуска PrivateBrowser его зовут "Mozilla Firefox". Правила Awesome работают, когда запускается (re) awesome или появляется новый клиент. Если появился клиент, правила не будут работать на этом клиенте (пока вы не перезапустите его).

Но у вас есть возможность: сигналы клиентов.

Код:

-- 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)

Это должно работать (я проверял).

Вы можете проверить имена клиентов, когда они появляются:

client.connect_signal("manage",function(c,startup)
    naughty.notify({text=c.name})
end)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .