Como mover apenas abriu uma nova janela de um cliente já iniciado para uma tag automaticamente?

1

A regra para iniciar o Firefox na tag1 está funcionando para mim por muito tempo:

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

Agora, com o Firefox 20, é possível abrir uma nova sessão de navegação privada, mantendo a outra sessão em sua janela original.

Minha regra para isso é a seguinte:

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

Eu comentei minha primeira regra, iniciei o Firefox em uma das tags, mas quando pressiono CTRL + SHIFT + P no Firefox, a nova janela ainda é aberta na tag onde está a janela original.

Após alguns testes, acho que a razão para esse comportamento é o que indiquei no título da pergunta. Não há nada de especial com o Firefox, e é novo recurso que vem com a versão 20: são apenas janelas com alguns identificadores WM_CLASS (STRING) e WM_NAME (STRING) que não são correspondidos.

    
por dash17291 19.04.2013 / 19:38

1 resposta

3

Suas regras não funcionarão porque no momento de iniciar o PrivateBrowser seu nome é "Mozilla Firefox". As regras do Awesome funcionam quando está começando (re) ou quando um novo cliente aparece. Se um cliente aparecer, as regras não funcionarão neste cliente (até que você reinicie demais).

Mas você tem uma possibilidade: os sinais dos clientes .

O código:

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

Deve funcionar (eu testei).

Você pode verificar o nome dos clientes quando eles aparecerem:

client.connect_signal("manage",function(c,startup)
    naughty.notify({text=c.name})
end)
    
por 18.05.2013 / 17:23