Вы можете создать функцию и использовать ее через замечательный клиентский инструмент.
Сначала создайте функцию и добавьте ее в свой файл 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
Затем перезапустите ваш удивительный сеанс (обычно через Ctrl+Super+r).
Затем, как если бы вы писали правило, выберите способ идентифицировать клиента (окно) для перемещения. Вы можете сделать это по классу, по экземпляру или по имени. Используйте xprop
для получения информации о windows, также смотрите этот FAQ.
Наконец, создайте простой скрипт bash:
#!/usr/bin/env bash
cat <<EOF | awesome-client
spawn("/usr/bin/firefox", "Firefox", tags[1][1], "class")
EOF
Вы можете добавить столько действий порождения, сколько захотите. Я написал несколько сценариев запуска, которые запускают все нужные мне программы в зависимости от задачи, над которой я собираюсь работать.
Надеюсь это поможет.