post_install() {
    setcap cap_net_admin+ep /usr/bin/eruption-process-monitor

    systemctl daemon-reload
    systemctl --global daemon-reload
    # systemctl --user daemon-reload

    systemctl preset eruption
    systemctl preset eruption-fx-proxy
    systemctl preset eruption-audio-proxy
    systemctl preset eruption-process-monitor
    systemctl --global preset eruption-fx-proxy
    systemctl --global preset eruption-audio-proxy
    systemctl --global preset eruption-process-monitor

    systemctl enable --now eruption.service

    systemctl --global import-environment WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP DISPLAY XAUTHORITY
    systemctl --global enable --now eruption-fx-proxy.service
    systemctl --global enable --now eruption-audio-proxy.service
    systemctl --global enable --now eruption-process-monitor.service

    systemctl reload dbus.service
    udevadm control --reload-rules
}

post_upgrade() {
    setcap cap_net_admin+ep /usr/bin/eruption-process-monitor

    systemctl daemon-reload
    systemctl --global daemon-reload
    # systemctl --user daemon-reload

    systemctl try-restart eruption.service
    systemctl --global try-restart eruption-fx-proxy.service
    systemctl --global try-restart eruption-audio-proxy.service
    systemctl --global try-restart eruption-process-monitor.service

    systemctl reload dbus.service
    udevadm control --reload-rules
}

pre_remove() {
    systemctl --global stop eruption-fx-proxy.service
    systemctl --global stop eruption-audio-proxy.service
    systemctl --global stop eruption-process-monitor.service
    systemctl stop eruption.service
}

post_remove() {
    udevadm control --reload-rules
    systemctl daemon-reload
}
