diff --git a/autostart/services/autostart.target b/autostart/services/autostart.target index 28fc65d..1c05fbb 100644 --- a/autostart/services/autostart.target +++ b/autostart/services/autostart.target @@ -1,4 +1,7 @@ [Unit] +BindsTo=windowmanager.target +After=windowmanager.target + Wants=blueman.service Wants=dpms.service Wants=dunst.service diff --git a/autostart/services/blueman.service b/autostart/services/blueman.service index 20801a9..11b8339 100644 --- a/autostart/services/blueman.service +++ b/autostart/services/blueman.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] ExecStart=/usr/bin/blueman-applet diff --git a/autostart/services/dpms.service b/autostart/services/dpms.service index d6cb9bb..f8ceb91 100644 --- a/autostart/services/dpms.service +++ b/autostart/services/dpms.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] Type=oneshot diff --git a/autostart/services/dunst.service b/autostart/services/dunst.service index 2764e5b..b4458b5 100644 --- a/autostart/services/dunst.service +++ b/autostart/services/dunst.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] ExecStart=/usr/bin/dunst -config %h/.config/dunstrc diff --git a/autostart/services/firefox.service b/autostart/services/firefox.service index 5e97d02..5abe6ab 100644 --- a/autostart/services/firefox.service +++ b/autostart/services/firefox.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] ExecStart=/usr/bin/firefox --setDefaultBrowser -P default diff --git a/autostart/services/gpg-agent.service b/autostart/services/gpg-agent.service index 50c97a6..9fe843f 100644 --- a/autostart/services/gpg-agent.service +++ b/autostart/services/gpg-agent.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] Type=forking diff --git a/autostart/services/i3.service b/autostart/services/i3.service new file mode 100644 index 0000000..1df55ff --- /dev/null +++ b/autostart/services/i3.service @@ -0,0 +1,5 @@ +[Service] +Type=exec +ExecStart=i3 --config %h/.i3/config + +Restart=no diff --git a/autostart/services/keepassx.service b/autostart/services/keepassx.service index 230cb96..b55e0c8 100644 --- a/autostart/services/keepassx.service +++ b/autostart/services/keepassx.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target ConditionEnvironment=MACHINE_HAS_KEEPASSX=true [Service] diff --git a/autostart/services/keyboard.service b/autostart/services/keyboard.service index 45a5735..c1a64ca 100644 --- a/autostart/services/keyboard.service +++ b/autostart/services/keyboard.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] Type=oneshot diff --git a/autostart/services/laptop-lid.service b/autostart/services/laptop-lid.service index 893bb07..3955ae5 100644 --- a/autostart/services/laptop-lid.service +++ b/autostart/services/laptop-lid.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target ConditionEnvironment=MACHINE_TYPE=laptop diff --git a/autostart/services/nextcloud.service b/autostart/services/nextcloud.service index c145821..056c5a2 100644 --- a/autostart/services/nextcloud.service +++ b/autostart/services/nextcloud.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target ConditionEnvironment=MACHINE_HAS_NEXTCLOUD=true diff --git a/autostart/services/nm-applet.service b/autostart/services/nm-applet.service index 2832b60..537b74c 100644 --- a/autostart/services/nm-applet.service +++ b/autostart/services/nm-applet.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] ExecStart=/usr/bin/nm-applet diff --git a/autostart/services/pasystray.service b/autostart/services/pasystray.service index a7e1892..3f2666e 100644 --- a/autostart/services/pasystray.service +++ b/autostart/services/pasystray.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] ExecStart=/usr/bin/pasystray diff --git a/autostart/services/redshift.service b/autostart/services/redshift.service index b40ba28..59a1940 100644 --- a/autostart/services/redshift.service +++ b/autostart/services/redshift.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] ExecStart=/usr/bin/redshift-gtk -c %h/.config/redshift.conf diff --git a/autostart/services/restic.timer b/autostart/services/restic.timer index 4bb9055..8a79c72 100644 --- a/autostart/services/restic.timer +++ b/autostart/services/restic.timer @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Timer] OnCalendar=Mon..Fri 09:00:00 diff --git a/autostart/services/screencfg.service b/autostart/services/screencfg.service index 6130875..4fcdf0c 100644 --- a/autostart/services/screencfg.service +++ b/autostart/services/screencfg.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target ConditionEnvironment=MACHINE_DEFAULT_SCREENPROFILE [Service] diff --git a/autostart/services/spotify.service b/autostart/services/spotify.service index 417b339..93a3af2 100644 --- a/autostart/services/spotify.service +++ b/autostart/services/spotify.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] ExecStart=/usr/bin/spotify diff --git a/autostart/services/touchpad.service b/autostart/services/touchpad.service index e20d137..6c82388 100644 --- a/autostart/services/touchpad.service +++ b/autostart/services/touchpad.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target ConditionEnvironment=MACHINE_TYPE=laptop [Service] diff --git a/autostart/services/wallpaper.timer b/autostart/services/wallpaper.timer index 05613b2..fd423b2 100644 --- a/autostart/services/wallpaper.timer +++ b/autostart/services/wallpaper.timer @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Timer] OnActiveSec=0s diff --git a/autostart/services/windowmanager.target b/autostart/services/windowmanager.target new file mode 100644 index 0000000..96c36d5 --- /dev/null +++ b/autostart/services/windowmanager.target @@ -0,0 +1,3 @@ +[Unit] +Requires=i3.service +After=i3.service diff --git a/autostart/services/xresources.service b/autostart/services/xresources.service index 321dd03..7940daf 100644 --- a/autostart/services/xresources.service +++ b/autostart/services/xresources.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] Type=oneshot diff --git a/autostart/services/yubikey-touch-detector.service b/autostart/services/yubikey-touch-detector.service index df71f0d..654bb92 100644 --- a/autostart/services/yubikey-touch-detector.service +++ b/autostart/services/yubikey-touch-detector.service @@ -1,5 +1,6 @@ [Unit] BindsTo=autostart.target +After=windowmanager.target [Service] ExecStart=/usr/bin/yubikey-touch-detector -libnotify diff --git a/x/xinitrc b/x/xinitrc index 3b278eb..fdb18b9 100644 --- a/x/xinitrc +++ b/x/xinitrc @@ -20,13 +20,13 @@ fi start_wm() { log "starting i3" - exec i3 -c "$HOME/.i3/config" >> "$LOGDIR/i3/i3.log" + systemctl --user start windowmanager.target + sleep inf # exec systemd-run --user --unit i3_user --pty --setenv=DISPLAY=${DISPLAY} i3 -c "$HOME/.i3/config" >> "$LOGDIR/i3/i3.log" } autostart() { log "Starting systemd user target \"autostart.target\"" - systemctl --user start autostart.target >>"${LOGFILE}" 2>&1 } exec >> "$LOGFILE" 2>&1