diff --git a/setup.sh b/setup.sh index 0cc57eb..ada93cc 100755 --- a/setup.sh +++ b/setup.sh @@ -181,8 +181,19 @@ _disable_dm_dinit() { done } +_runit_sv() { + if [ -d /etc/sv ]; then echo "/etc/sv" + elif [ -d /etc/runit/sv ]; then echo "/etc/runit/sv" + else + error "Cannot find runit service configuration files directory" + return 1 + fi +} + _runit_runsvdir() { - if [ -d /run/runit/service ]; then echo "/run/runit/service" + if [ -d /service ]; then echo "/service" # legacy/upstream symlink + elif [ -d /var/service ]; then echo "/var/service" + elif [ -d /run/runit/service ]; then echo "/run/runit/service" elif [ -d /etc/runit/runsvdir/default ]; then echo "/etc/runit/runsvdir/default" else error "Cannot find runit service directory" @@ -230,16 +241,23 @@ enable_sddm() { ;; runit) + local sv local runsvdir + sv=$(_runit_sv) runsvdir=$(_runit_runsvdir) - if [ ! -d /etc/sv/sddm ]; then - error "/etc/sv/sddm not found - is sddm-runit (or equivalent) installed?" + if [ -f /etc/os-release ] && grep -q 'ID=artix' /etc/os-release; then + sudo pacman --needed -S sddm-runit + info "sddm-runit installed for Artix Linux" + fi + + if [ ! -d "$sv/sddm" ]; then + error "$sv/sddm not found - is sddm-runit (or equivalent) installed?" return 1 fi _disable_dm_runit - sudo ln -sf /etc/sv/sddm "$runsvdir/sddm" + sudo ln -sf "$sv/sddm" "$runsvdir/" info "sddm symlinked into $runsvdir" ;; @@ -268,7 +286,7 @@ enable_sddm() { echo "" echo " systemd - sudo systemctl enable --now sddm" echo " openrc - sudo rc-update add sddm default" - echo " runit - sudo ln -s /etc/sv/sddm /run/runit/service/" + echo " runit - sudo ln -s /etc/sv/sddm /var/service/ || sudo ln -s /etc/runit/sv/sddm /run/runit/service/" echo " dinit - sudo ln -s /etc/dinit.d/sddm /etc/dinit.d/boot.d/sddm" return 1 ;;