Eu acredito que os programas autorun AwesomeWM são melhores quando bem feitos
Why = Se você sair de um dos seus programas de execução automática * sempre e quiser reiniciá-los você (a) reinicializa o X [fechando tudo no processo], (b) os reinicia a partir de um shell [mensagens de saída agora shell], (c) criar código especial de re-lançamento em rc.lua [no topo do código de lançamento que você colocar em .xinitrc
Como = Isso funciona bem para mim ... a) Assim que as linhas de depuração do rc.lua forem adicionadas ...
local gears = { table = require( "gears.table" ) ,
p_call = require( "gears.protected_call" ) }
gears.p_call( dofile, path_this .. "runonce.lua" )
b) E aqui está a parte "when done well" (IMHO) que está em runonce.lua ...
local naughty = require( "naughty" )
local awful = { spawn = require( "awful.spawn" ) }
local string = { sub = string.sub ,
find = string.find ,
format = string.format }
-- This function makes sure the application is not restarted when awesome is reloaded
local function run_once( command )
local args_start = string.find( command, " " )
local pgrep_name = args_start and command:sub( 0, args_start - 1 ) or command
local command = "pgrep -u $USER -x " .. pgrep_name .. " > /dev/null || (" .. command .. ")"
awful.spawn.easy_async_with_shell(
command,
function( stdout, stderr, exitreason, exitcode )
if exitcode ~= 0 then
naughty.notify({
preset = naughty.config.presets.critical ,
text = string.format( "%s\n\n%s\n%s\n%s\n%s",
command,
stdout,
stderr,
exitreason,
exitcode ) })
end
end )
end
-- Start these if not already running
run_once( "guake &> /dev/null" )
run_once( "remmina -i &> /dev/null" )
run_once( "skypeforlinux" )
Por que acredito que é bem feito ...
1) Trabalha com programas que possuem parâmetros [procura somente pelo nome, não pelos argumentos] 2) Tem um alerta se as coisas derem errado [sem matar Awesome] 3) Edite somente a seção inferior
Finalmente ... mod + ctrl + r reloads awesome [nada realmente muda, apenas redefine memmory] e, claro, os aplicativos que você sempre quer são relançados exatamente da mesma maneira que eram na primeira vez