Como manualmente gerar um cliente em uma tag específica no Awesome?

2

Já tenho atribuição automática de tags para clientes usando regras, mas às vezes preciso gerar um cliente em uma tag específica.

Por exemplo, normalmente quero meu navegador (dwb) na tag 2 usando a seguinte regra:

awful.rules.rules = {
    [...]
    { rule = { class = "Dwb" }, properties = { tag = tags[1][2] } },
}

Mas ao gerar um navegador para uma sessão de depuração, quero que ele seja gerado em outra tag (junto com meu IDE), digamos, tag 3.

Como posso iniciar um programa a partir da linha de comando para que seus clientes sejam gerados em uma tag especificada como um parâmetro?

    
por Preuk 31.07.2014 / 16:23

1 resposta

2

Você pode criar uma função e usá-la através da incrível ferramenta cliente.

Primeiro, crie uma função e adicione-a ao seu arquivo rc.lua:

function spawn(command, class, tag, test)
local test = test or "class"
local callback
callback = function(c)
    if test == "class" then
        if c.class == class then
            awful.client.movetotag(tag, c)
            client.disconnect_signal("manage", callback)
        end
    elseif test == "instance" then
        if c.instance == class then
            awful.client.movetotag(tag, c)
            client.disconnect_signal("manage", callback)
        end
    elseif test == "name" then
           if string.match(c.name, class) then
               awful.client.movetotag(tag, c)
            client.disconnect_signal("manage", callback)
        end
    end
end
client.connect_signal("manage", callback)
awful.util.spawn_with_shell(command)
end

Em seguida, reinicie sua sessão incrível (geralmente por meio de Ctrl + Super + r).

Então, como se você estivesse escrevendo uma regra, escolha a maneira de identificar o cliente (janela) para mover. Você pode fazer isso por classe, por instância ou por nome. Use xprop para obter informações no Windows, veja também esta FAQ .

Por fim, crie um script simples:

#!/usr/bin/env bash
cat <<EOF | awesome-client
spawn("/usr/bin/firefox", "Firefox", tags[1][1], "class")
EOF

Você pode adicionar quantas ações de desova desejar. Escrevi vários scripts de inicialização que iniciam todos os programas de que preciso, dependendo da tarefa na qual pretendo trabalhar.

Espero que isso ajude.

    
por 24.07.2015 / 09:49