diff --git a/autostart-manage/before.sh b/autostart-manage/before.sh new file mode 100644 index 0000000..b2e3c84 --- /dev/null +++ b/autostart-manage/before.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +service_file="$HOME/.config/systemd/user/autostart@.service" +if [ ! -f "$service_file" ]; then + _deploy_service_file "$service_file" +fi + +target_file="$HOME/.config/systemd/user/autostart.target" +if [ ! -f "$target_file" ]; then + _deploy_target_file "$target_file" +fi diff --git a/autostart-manage/lib/systemd_files.sh b/autostart-manage/lib/systemd_files.sh new file mode 100644 index 0000000..d5eb682 --- /dev/null +++ b/autostart-manage/lib/systemd_files.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +_deploy_service_file() { + cat < "$1" +[Unit] +Description=Autostart several tools and services +StartLimitIntervalSec=120 +StartLimitBurst=10 + +[Service] +KillMode=process +ExecStart=/bin/sh -c ". \$HOME/.profile && autostart-manage exec '%i'" +Restart=on-failure +RestartSec=5s +EOF +} + +_deploy_target_file() { + cat < "$1" +[Unit] +Description=Current graphical user session +Documentation=man:systemd.special(7) +RefuseManualStart=no +StopWhenUnneeded=no +EOF +}