Awesome es un gestor de ventanas extremadamente configurable, a decir verdad no creo que hay nada que no se pueda hacer ya que Awesome no se configura en base a opciones de configuración si no que se programan las funciones en el fichero de configuración, mediante este sistema el único límite es nuestra imaginación y nuestras habilidades como programador en Lua.
Editamos la configuración actual y añadimos al final justo antes de último – }}}
-- Kr0m autostart
local function autoStart(command, class, tag)
--naughty.notify({ title = "autoStart", text = "Dentro autoStart", timeout = 0 })
if tag ~= nil then
--naughty.notify({ title = "autoStart", text = "Dentro != nil", timeout = 0 })
local callback
callback = function(c)
if c.class == class then
c:move_to_tag(tag)
--naughty.notify({ title = "autoStart", text = "App moved: "..c.class, timeout = 0 })
client.disconnect_signal("manage", callback)
--naughty.notify({ title = "autoStart", text = "Signal disconnected: "..c.class, timeout = 0 })
end
end
-- Cada vez que se cree un cliente ejecuta la funcion callback
client.connect_signal("manage", callback)
end
-- Creamos un cliente nuevo
awful.spawn(command)
end
autoStart("chrome", "Chromium-browser", awful.screen.focused().tags[1])
autoStart("telegram-desktop", "TelegramDesktop", awful.screen.focused().tags[2])
autoStart("sublime", "Sublime_text", awful.screen.focused().tags[2])
autoStart("barrier", "Barrier", awful.screen.focused().tags[9])
En resumen lo que hacemos es crear una función de callback que se ejecutará cada vez que se cree un client nuevo, cuando se ejecuta el callback se mueve el cliente al tag correspondiente y acto seguido se hace un disconnect de la función de callback para que posteriores clientes de esa misma clase no se vean afectados. Si no hiciesemos el disconnect, después del auto-start todos los Chromes que arrancásemos manualmente irían al tag 1, los Telegrams al tag2 …. se comportaría como una rule.
Los wm-classnames podemos sacarlos utilizando la herramienta xprop.
pkg install xprop
emerge -av x11-apps/xprop
Según la documentación de la librería awful se puede indicar el tag donde lanzar la aplicación pero esta opción utiliza un protocolo llamado startup notification protocol y muy pocas aplicaciones lo implementan.