diff --git a/.gitignore b/.gitignore index 6c986a4..fec3278 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ build/ .cache backup.tar +autostart diff --git a/Makefile b/Makefile index b2fbd47..6d5169f 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,11 @@ testv: build .PHONY: deploy deploy: build - rsync -avmh --delete --exclude 'settings.lua' --include '*.lua' --include '*.so' --include '*.png' --include '*/' --include '*.rasi' --include '*.sh' --exclude '*' ./ ~/.config/awesome/ + rsync -avmh --delete \ + --exclude 'settings.lua' --exclude 'autostart' \ + --include '*.lua' --include '*.so' --include '*.png' --include '*/' --include '*.rasi' --include '*.sh' \ + --exclude '*' \ + ./ ~/.config/awesome/ .PHONY: build build: diff --git a/rc.lua b/rc.lua index daaffbd..c8e2e1d 100644 --- a/rc.lua +++ b/rc.lua @@ -48,3 +48,4 @@ end) local on_screen_connect = require('src.theme.wibar') require('awful').screen.connect_for_each_screen(function(s) on_screen_connect(s) end) require('awful').spawn.with_shell('xset s 0 0; xset dpms 0 0 0') +require('src.autostart') diff --git a/src/autostart.lua b/src/autostart.lua new file mode 100644 index 0000000..e365acd --- /dev/null +++ b/src/autostart.lua @@ -0,0 +1,26 @@ +local io = require('io') +local spawn = require('awful').spawn.spawn +local readable = require('gears.filesystem').file_readable +local confdir = require('src.util.path').conf_dir + +local xres_name = 'awesome.did_autostart' +-- check +local xres_fp = io.popen('xrdb -query') +if xres_fp == nil then return end +local xres = xres_fp:read('*a') +if xres:match(xres_name) then return end +-- set +xres_fp = io.popen('xrdb -merge', 'w') +if xres_fp == nil then return end +xres_fp:write(xres_name, ':true') +xres_fp:close() + +local autostart_file = confdir .. '/autostart' +if readable(autostart_file) then + for line in io.lines(autostart_file, "*l") do + ---@cast line string + if line:len() > 0 then + spawn(line) + end + end +end