Автозапуск
В Awesome отсутствует встроенная поддержка автозапуска приложений. Чтобы настроить автозапуск, Вы можете отредактировать либо .xinitrc, либо сессионный скрипт, выполняемый gdm или kdm, или же найти какой-то другой способ запускать приложения вместе с Awesome.
Также можно создать функцию в ~/.config/awesome/rc.lua:
Простой способ
Просто добавьте несколько строк в конец файла ~/.config/awesome/rc.lua:
awful.util.spawn_with_shell("КОМАНДА1")
awful.util.spawn_with_shell("КОМАНДА2")
...и так далее.
Пример:
awful.util.spawn_with_shell("kdeinit")
awful.util.spawn_with_shell("lineakd")
awful.util.spawn_with_shell("anyremote -f ~/.anyRemote/amarok.cfg")
awful.util.spawn_with_shell("~/scripts/trm")
awful.util.spawn_with_shell("xchat")
awful.util.spawn_with_shell("psi")
awful.util.spawn_with_shell("firefox-bin")
awful.util.spawn_with_shell("gvim +Project")
awful.util.spawn_with_shell("kchmviewer")
awful.util.spawn_with_shell("amarok")
awful.util.spawn_with_shell("kmix")
awful.util.spawn_with_shell("kbluetoothd")
awful.util.spawn_with_shell("sudo killall mplayer")
Чтобы запускать приложения только один раз, а не при каждом перезапуске Awesome, создайте такой скрипт:
#! /bin/bash # Запустить программу, если она ещё не запущена. if [ ! "`ps -A | grep $1`" ]; then $@; fi
Сохраните скрипт под именем "run_once" где-нибудь в $PATH и сделайте исполняемым. Затем используйте его для автозапуска:
awful.util.spawn_with_shell("run_once amarok")
В качестве альтернативы отдельному shell-скрипту можно добавить в rc.lua следующий код (который к тому же будет игнорировать приложения, запущенные другими пользователями):
function run_once(prg)
if not prg then
return
end
awful.util.spawn_with_shell("x=" .. prg .. "; pgrep -u $USERNAME -x " .. prg .. " || (" .. prg .. ")")
end
run_once("amarok")
Способ, использующий директорию автозапуска
-- Автозапуск
function autostart(dir)
if not dir then
do return nil end
end
local fd = io.popen("ls -1 -F " .. dir)
if not fd then
do return nil end
end
for file in fd:lines() do
local c= string.sub(file,-1) -- последний символ
if c=='*' then -- исполнямые файлы
executable = string.sub( file, 1,-2 )
print("Автозапуск Awesome: Запускается: " .. executable)
awful.util.spawn_with_shell(dir .. "/" .. executable .. "") -- запуск в фоновом режиме
elseif c=='@' then -- символьные ссылки
print("Автозапуск Awesome: Игнорируется символьная ссылка: " .. file)
else
print ("Автозапуск Awesome: Игнорируется неисполняемый файл " .. file)
end
end
io.close(fd)
end
autostart_dir = os.getenv("HOME") .. "/.config/autostart"
autostart(autostart_dir)
Учтите (и по возможности исправьте) следующие недостатки:
- файлы в директории автозапуска будут выполняться при каждом чтении конфигурационного файла, что может привести к неожиданным последствиям, если Вы делаете это несколько раз за сеанс. Чтобы избежать повторных запусков, обрабатывайте их в соответствующем скрипте.
- функция игнорирует символьные ссылки.