Files
dotfiles/.config/sway/bin/swayidle-conf

69 lines
1.3 KiB
Python
Executable File

#!/usr/bin/python3
import yaml
import sys
import os
config_files = [
'/etc/sway/idle.yml',
os.path.expanduser('~/.config/sway/idle.yml'),
]
env_config = os.environ.get('SWAYIDLE_CONFIG')
if env_config is not None:
config_files += env_config
options = {
'debug': '-d',
'wait': '-w',
}
config = {}
found = False
for f in config_files:
if not os.path.isfile(f):
continue
found = True
try:
with open(f) as conf:
newconf = yaml.load(conf, yaml.SafeLoader)
config.update(newconf)
except Exception as e:
sys.stderr('{}: Could not load {} ({})'.format(sys.argv[0], f, e))
sys.stderr.flush()
if not found:
sys.stderr('{}: WARNING: No config file found'.format(sys.argv[0]))
sys.stderr.flush()
args = ['swayidle']
for k in config:
c = config[k]
if c is None or c is False or c is []:
continue
if k == 'timeouts':
for t in c:
args.append('timeout')
args.append(str(t['timeout']))
args.append(t['command'])
if 'resume' in t:
args.append('resume')
args.append(t['resume'])
continue
if k in options and c:
args.append(options[k])
continue
args.append(k)
args.append(c)
args.extend(sys.argv[1:])
os.execvp('swayidle', args)