diff options
15 files changed, 389 insertions, 603 deletions
@@ -1,6 +1,6 @@ pkgbase = sxmo-utils-git pkgdesc = Utility scripts, programs, and configs that hold the sxmo UI environment together - pkgver = 1.14.1.r4.e8ddbc8 + pkgver = 1.15.1.r20.6a024f2 pkgrel = 1 url = https://git.sr.ht/~mil/sxmo-utils arch = x86_64 @@ -13,31 +13,25 @@ pkgbase = sxmo-utils-git makedepends = scdoc makedepends = git source = git+https://git.sr.ht/~mil/sxmo-utils + source = 0001-Use-sh-to-resolve-hooks-in-services.patch + source = 0002-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch + source = 0003-Add-PartOf-to-services-so-they-stop-when-the-graphic.patch + source = 0004-Fix-quoting-of-strings-in-service-files.patch + source = 0005-Add-hook-to-manage-services.patch + source = 0006-start-stop-graphical-session.target.patch source = 00-sxmo.rules source = 10-sxmo.conf source = sxmo-setpermissions.service - source = 0001-alias-superd-to-systemd-user.patch - source = 0002-Use-sh-to-resolve-hooks-in-services.patch - source = 0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch - source = 0004-Remove-services-that-systemd-automatically-starts-fr.patch - source = 0005-Separate-services-that-are-provided-by-external-pack.patch - source = 0006-Add-BindsTo-to-services-so-they-stop-when-the-graphi.patch - source = 0007-start-stop-graphical-session.target.patch - source = 0008-Fix-quoting-of-strings-in-service-files.patch - source = 0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch sha512sums = SKIP + sha512sums = 0e5abaaa638d544e83f674fdfbccdec705faa541d3dd272d22580c1997cb1e40785a1d3dbe1ec0f7aad21d07c6ebdf715eb028dba8aab8f9e9f08a01005bd7d8 + sha512sums = f315c6fbfc842a9ced93c8f493ce601f46fd0a4a0974bef22730e3e693aeff6b4c259ddc0165a6a891c6889b016c33ed5b640d787b16a1ca5525fa9f8a8b0096 + sha512sums = 9790135846977e6d0ff681858db99e3c2dc8040a505db5b24f5cc5eefb474971db627f7a2af4ab60130e865f2c024543915f30b57a485cf56ece98dca94759ee + sha512sums = 20be8a30ddcd0c3acc22c3a8171e397d34cef8a3b32ad5e624105826c3ad9d1ad561a00ddbab32d931753fd782faaf2ffa1f231b1158404a2e5723189d189079 + sha512sums = 8d60d253b5399f64a565c244a8ef210a646ed5e00ef2cc234e3170103ee5629d10fdb7847fa6cf01d41da9cb904a7ed1a72c3e7c915fd46b3646555a354f00e1 + sha512sums = f31200582fcb3888509788a88459f27249dc2340937265fd81be54d567c92c8ed19a6b74d0dc29b82645fc27c98e67e7fc085ee8bb5843b16b0af6c759aaa601 sha512sums = 8a21e62b7ff0982a5406e98510a3004c62f883b9fae0cad5b63f6a7df520896b65c726321da515dab754a91ed94280922e3f424ecc983c1a33eb1ec287b268a2 sha512sums = b69a09f98f8a5cad8164cd48c5f6a78f2ce0e9818fb77ccf2a3e243cd0f2023e438022b20aad9e6b5edd90e1bb862326db79dc423630682d4c43e897090d3da1 sha512sums = 532c3045f52f872704876bdf56afbc7470c5d17e46655dd4040d545b6d3eb34a8791909e554c560471f9494c7382107839bcff1e48be242d5eea0092482165cd - sha512sums = 2d58ebb5c6109161a3646266f992b310de164075e55f1cd7f23e56535c1786cd539194de6681ee03387bdb4c08d96677f2de046bc8c2e18bc9ac9d5a0b4c26db - sha512sums = 720cde09229189fe6f25d60107415cec02494f93feaabe41d0a935c7fe2ff1145f1d0aca3f354ea4defd9816c2cf88616605e39d0364124f579932838e556798 - sha512sums = b63d548f357d786f28f0371ea451329ed2ee2f05d6337dc81db2903bb519f2abe820d7d49d0b46028939b691f6f9550bfb5566199340e1f4219f35098e671674 - sha512sums = 0619e8ad0a55b2b26c149fc4d13c60f0334cba6c04289c940df794a4cae20824e056f4a9cc5b423570a55c90ba9ab2c434e47d79d5881fbeb36ee4383198d232 - sha512sums = fd2a7e20a6920c92a437ce5962b3fb101961e4428c5f2758627e5a4abf6dc733e0838ad43a0e8711a3d10359d1ba99f3fce7842c66f8082ed611f4487256d68c - sha512sums = 60c7cc94765c8b0bb309a4babe17d3a2dc6e5fa72b93ecd61bb631eb6f20ab500ebadb45892a0903108b89b9d1c2f654568b5db30ca043cf823bc518e084ba92 - sha512sums = 6b2fe273ead62c202f1925f609f95de92ae8babff69a8eaaa70209d1113749aaf59b3a0308c3cceceb0f315504e2610ae2a07923aa9863cd9296c725996876fc - sha512sums = 6f1c5427f43446850c432027c5ec75d9dac5b7609afb7f8acdc014da3ccdc1639d0aace6e442a81f4cc783a1df0a18191b485850e88f0e5c8895555ca76866c6 - sha512sums = 45c8e299be85cb7f1e3e3989df6cf5d0b08291d36abad5372649a9ce996be6e00dda64d7dd1a0445d2c121e59cc246683df16793973921b75245d7abf30a8282 pkgname = sxmo-utils-git depends = bc @@ -64,12 +58,14 @@ pkgname = sxmo-utils-git depends = libpulse depends = pulseaudio depends = pulseaudio-alsa + depends = brightnessctl depends = conky + depends = dunst depends = libnotify - depends = light depends = lisgd depends = mpv depends = ttf-dejavu-nerd + depends = upower optdepends = bemenu-ncurses: sxmo menus over ssh optdepends = bonsai: better multikey script optdepends = clickclack: haptic feedback diff --git a/0001-Use-sh-to-resolve-hooks-in-services.patch b/0001-Use-sh-to-resolve-hooks-in-services.patch new file mode 100644 index 000000000000..07607b514d87 --- /dev/null +++ b/0001-Use-sh-to-resolve-hooks-in-services.patch @@ -0,0 +1,35 @@ +From b911477916ae71e5af06be8bda7f374c0c0daada Mon Sep 17 00:00:00 2001 +From: ArenM <aren@peacevolution.org> +Date: Wed, 20 Apr 2022 20:37:03 -0400 +Subject: [PATCH sxmo-utils 1/6] Use sh to resolve hooks in services + +systemd uses a path configured at build time, so we need to use a shell +to launch hooks in order to find them correctly. +--- + configs/services/sxmo_desktop_widget.service | 2 +- + configs/services/sxmo_hook_lisgd.service | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configs/services/sxmo_desktop_widget.service b/configs/services/sxmo_desktop_widget.service +index c161bb1..199d9a6 100644 +--- a/configs/services/sxmo_desktop_widget.service ++++ b/configs/services/sxmo_desktop_widget.service +@@ -4,4 +4,4 @@ Description=Sxmo: start desktop widget (ie. clock) + [Service] + Type=simple + Restart=always +-ExecStart=sxmo_hook_desktop_widget.sh ++ExecStart=sh -c sxmo_hook_desktop_widget.sh +diff --git a/configs/services/sxmo_hook_lisgd.service b/configs/services/sxmo_hook_lisgd.service +index 202510c..182d995 100644 +--- a/configs/services/sxmo_hook_lisgd.service ++++ b/configs/services/sxmo_hook_lisgd.service +@@ -4,4 +4,4 @@ Description=run user defined lisgd start hook + [Service] + Type=simple + Restart=always +-ExecStart=sxmo_hook_lisgdstart.sh ++ExecStart=sh -c sxmo_hook_lisgdstart.sh +-- +2.43.0 + diff --git a/0001-alias-superd-to-systemd-user.patch b/0001-alias-superd-to-systemd-user.patch deleted file mode 100644 index deb30825a43e..000000000000 --- a/0001-alias-superd-to-systemd-user.patch +++ /dev/null @@ -1,71 +0,0 @@ -From fbcf02f44aeca0e0722d4c4b6732eae7179a93c5 Mon Sep 17 00:00:00 2001 -From: ArenM <aren@peacevolution.org> -Date: Wed, 16 Nov 2022 09:53:04 -0500 -Subject: [PATCH sxmo-utils 1/9] alias superd to systemd --user - ---- - configs/default_hooks/sxmo_hook_contextmenu.sh | 2 +- - configs/default_hooks/sxmo_hook_start.sh | 7 +------ - scripts/core/sxmo_appmenu.sh | 2 +- - scripts/core/sxmo_common.sh | 1 + - 4 files changed, 4 insertions(+), 8 deletions(-) - -diff --git a/configs/default_hooks/sxmo_hook_contextmenu.sh b/configs/default_hooks/sxmo_hook_contextmenu.sh -index 07956f4..d89ac47 100755 ---- a/configs/default_hooks/sxmo_hook_contextmenu.sh -+++ b/configs/default_hooks/sxmo_hook_contextmenu.sh -@@ -15,7 +15,7 @@ XPROPOUT="$(sxmo_wm.sh focusedwindow)" - WMCLASS="${1:-$(printf %s "$XPROPOUT" | grep app: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')}" - - superd_service_isrunning() { -- superctl status "$1" | grep -q started -+ systemctl --user is-active --quiet "$1" 2>/dev/null - } - - sxmo_service_isrunning() { -diff --git a/configs/default_hooks/sxmo_hook_start.sh b/configs/default_hooks/sxmo_hook_start.sh -index 194814d..8140d6d 100755 ---- a/configs/default_hooks/sxmo_hook_start.sh -+++ b/configs/default_hooks/sxmo_hook_start.sh -@@ -9,12 +9,7 @@ - # Create xdg user directories, such as ~/Pictures - xdg-user-dirs-update - --sxmo_daemons.sh start daemon_manager superd -v -- --# let time to superd to start correctly --while ! superctl status > /dev/null 2>&1; do -- sleep 0.5 --done -+printenv | cut -d '=' -f 1 | xargs systemctl --user import-environment - - # Load our sound daemons - -diff --git a/scripts/core/sxmo_appmenu.sh b/scripts/core/sxmo_appmenu.sh -index e45a54c..07da1e2 100755 ---- a/scripts/core/sxmo_appmenu.sh -+++ b/scripts/core/sxmo_appmenu.sh -@@ -19,7 +19,7 @@ confirm() { - } - - supertoggle_daemon() { -- if superctl status "$1" | grep -q started; then -+ if systemctl --user is-active "$1" 2>/dev/null; then - superctl stop "$1" - sxmo_notify_user.sh "$1 Stopped" - else -diff --git a/scripts/core/sxmo_common.sh b/scripts/core/sxmo_common.sh -index 16e7799..4c181d5 100755 ---- a/scripts/core/sxmo_common.sh -+++ b/scripts/core/sxmo_common.sh -@@ -16,6 +16,7 @@ command -v shopt > /dev/null && shopt -s expand_aliases - alias dmenu="sxmo_dmenu.sh" - alias bemenu="sxmo_dmenu.sh" - alias jq="gojq" # better performances -+alias superctl="systemctl --user" - - if ! command -v sxmobar > /dev/null; then - sxmobar() { --- -2.39.2 - diff --git a/0002-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch b/0002-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch new file mode 100644 index 000000000000..0f4f5d936b31 --- /dev/null +++ b/0002-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch @@ -0,0 +1,24 @@ +From 09ba55bd9935cc7c47e6e200f75c7ef6562e8057 Mon Sep 17 00:00:00 2001 +From: ArenM <aren@peacevolution.org> +Date: Sat, 23 Apr 2022 13:28:59 -0400 +Subject: [PATCH sxmo-utils 2/6] Use KillMode=process so systemd doesn't stop + apps + +Systemd kills processes by cgroup, not session, so the setsid calls in +sxmo_hook_lisgdstart.sh don't prevent this. +--- + configs/services/sxmo_hook_lisgd.service | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configs/services/sxmo_hook_lisgd.service b/configs/services/sxmo_hook_lisgd.service +index 182d995..c671235 100644 +--- a/configs/services/sxmo_hook_lisgd.service ++++ b/configs/services/sxmo_hook_lisgd.service +@@ -5,3 +5,4 @@ Description=run user defined lisgd start hook + Type=simple + Restart=always + ExecStart=sh -c sxmo_hook_lisgdstart.sh ++KillMode=process +-- +2.43.0 + diff --git a/0002-Use-sh-to-resolve-hooks-in-services.patch b/0002-Use-sh-to-resolve-hooks-in-services.patch deleted file mode 100644 index 7ce388221259..000000000000 --- a/0002-Use-sh-to-resolve-hooks-in-services.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 4e4fa35e0538611fd4260bbd750e4367a4035be4 Mon Sep 17 00:00:00 2001 -From: ArenM <aren@peacevolution.org> -Date: Wed, 20 Apr 2022 20:37:03 -0400 -Subject: [PATCH sxmo-utils 2/9] Use sh to resolve hooks in services - -systemd uses a path configured at build time, so we need to use a shell -to launch hooks in order to find them correctly. ---- - configs/superd/services/sxmo_desktop_widget.service | 2 +- - configs/superd/services/sxmo_hook_lisgd.service | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configs/superd/services/sxmo_desktop_widget.service b/configs/superd/services/sxmo_desktop_widget.service -index c161bb1..199d9a6 100644 ---- a/configs/superd/services/sxmo_desktop_widget.service -+++ b/configs/superd/services/sxmo_desktop_widget.service -@@ -4,4 +4,4 @@ Description=Sxmo: start desktop widget (ie. clock) - [Service] - Type=simple - Restart=always --ExecStart=sxmo_hook_desktop_widget.sh -+ExecStart=sh -c sxmo_hook_desktop_widget.sh -diff --git a/configs/superd/services/sxmo_hook_lisgd.service b/configs/superd/services/sxmo_hook_lisgd.service -index 202510c..182d995 100644 ---- a/configs/superd/services/sxmo_hook_lisgd.service -+++ b/configs/superd/services/sxmo_hook_lisgd.service -@@ -4,4 +4,4 @@ Description=run user defined lisgd start hook - [Service] - Type=simple - Restart=always --ExecStart=sxmo_hook_lisgdstart.sh -+ExecStart=sh -c sxmo_hook_lisgdstart.sh --- -2.39.2 - diff --git a/0006-Add-BindsTo-to-services-so-they-stop-when-the-graphi.patch b/0003-Add-PartOf-to-services-so-they-stop-when-the-graphic.patch index 962d56c03746..253d863316fd 100644 --- a/0006-Add-BindsTo-to-services-so-they-stop-when-the-graphi.patch +++ b/0003-Add-PartOf-to-services-so-they-stop-when-the-graphic.patch @@ -1,7 +1,7 @@ -From 70b602bca76652ee21c6807b6fefee0836cc1211 Mon Sep 17 00:00:00 2001 +From 5a9247d3eb92cd18be0991de6dbd5298a4764fef Mon Sep 17 00:00:00 2001 From: ArenM <aren@peacevolution.org> Date: Sat, 18 Feb 2023 15:13:53 -0500 -Subject: [PATCH sxmo-utils 6/9] Add BindsTo to services so they stop when the +Subject: [PATCH sxmo-utils 3/6] Add PartOf to services so they stop when the graphical session ends --- @@ -25,192 +25,192 @@ Subject: [PATCH sxmo-utils 6/9] Add BindsTo to services so they stop when the 17 files changed, 17 insertions(+) diff --git a/configs/services/autocutsel-primary.service b/configs/services/autocutsel-primary.service -index 9574e09..869e422 100644 +index 9574e09..3a65320 100644 --- a/configs/services/autocutsel-primary.service +++ b/configs/services/autocutsel-primary.service @@ -1,5 +1,6 @@ [Unit] Description=automated xcutsel -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/autocutsel.service b/configs/services/autocutsel.service -index c97dc64..a9ad01b 100644 +index c97dc64..99223ad 100644 --- a/configs/services/autocutsel.service +++ b/configs/services/autocutsel.service @@ -1,5 +1,6 @@ [Unit] Description=automated xcutsel -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/bonsaid.service b/configs/services/bonsaid.service -index f17fa1a..1093453 100644 +index f17fa1a..52c2823 100644 --- a/configs/services/bonsaid.service +++ b/configs/services/bonsaid.service @@ -1,5 +1,6 @@ [Unit] Description=Bonsai daemon -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo-x11-status.service b/configs/services/sxmo-x11-status.service -index f27a613..4934697 100644 +index f27a613..a263e21 100644 --- a/configs/services/sxmo-x11-status.service +++ b/configs/services/sxmo-x11-status.service @@ -1,5 +1,6 @@ [Unit] Description=periodically set the status bar content -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_autosuspend.service b/configs/services/sxmo_autosuspend.service -index 86ce1bc..b1949f8 100644 +index 86ce1bc..c32bed7 100644 --- a/configs/services/sxmo_autosuspend.service +++ b/configs/services/sxmo_autosuspend.service @@ -1,5 +1,6 @@ [Unit] Description=daemon for autosuspending -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_battery_monitor.service b/configs/services/sxmo_battery_monitor.service -index 1918ba5..54d902a 100644 +index 1918ba5..621733f 100644 --- a/configs/services/sxmo_battery_monitor.service +++ b/configs/services/sxmo_battery_monitor.service @@ -1,5 +1,6 @@ [Unit] Description=Sxmo: monitors the battery -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_conky.service b/configs/services/sxmo_conky.service -index de8b83e..79b7e93 100644 +index de8b83e..a4fca14 100644 --- a/configs/services/sxmo_conky.service +++ b/configs/services/sxmo_conky.service @@ -1,5 +1,6 @@ [Unit] Description=Conky -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_desktop_widget.service b/configs/services/sxmo_desktop_widget.service -index 199d9a6..5322b35 100644 +index 199d9a6..aca4df0 100644 --- a/configs/services/sxmo_desktop_widget.service +++ b/configs/services/sxmo_desktop_widget.service @@ -1,5 +1,6 @@ [Unit] Description=Sxmo: start desktop widget (ie. clock) -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_hook_lisgd.service b/configs/services/sxmo_hook_lisgd.service -index c671235..277b410 100644 +index c671235..3fcff2b 100644 --- a/configs/services/sxmo_hook_lisgd.service +++ b/configs/services/sxmo_hook_lisgd.service @@ -1,5 +1,6 @@ [Unit] Description=run user defined lisgd start hook -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_menumode_toggler.service b/configs/services/sxmo_menumode_toggler.service -index d6c949e..6264bf4 100644 +index d6c949e..8a6d339 100644 --- a/configs/services/sxmo_menumode_toggler.service +++ b/configs/services/sxmo_menumode_toggler.service @@ -1,5 +1,6 @@ [Unit] Description=Sxmo: sets menu buttons for sway -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_modemmonitor.service b/configs/services/sxmo_modemmonitor.service -index 53171ef..9daf547 100644 +index 53171ef..b80c05d 100644 --- a/configs/services/sxmo_modemmonitor.service +++ b/configs/services/sxmo_modemmonitor.service @@ -1,5 +1,6 @@ [Unit] Description=daemon for monitoring modem-related dbuses (calls, sms, mms, etc.) -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_networkmonitor.service b/configs/services/sxmo_networkmonitor.service -index cc30f48..dcc4887 100644 +index cc30f48..80c33e5 100644 --- a/configs/services/sxmo_networkmonitor.service +++ b/configs/services/sxmo_networkmonitor.service @@ -1,5 +1,6 @@ [Unit] Description=Sxmo: watch network changes and update the status bar -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_notificationmonitor.service b/configs/services/sxmo_notificationmonitor.service -index 4d6033a..78d9c13 100644 +index 4d6033a..52dcca7 100644 --- a/configs/services/sxmo_notificationmonitor.service +++ b/configs/services/sxmo_notificationmonitor.service @@ -1,5 +1,6 @@ [Unit] Description=display notifications popup messages -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_soundmonitor.service b/configs/services/sxmo_soundmonitor.service -index 1f759f3..cf6f6c0 100644 +index 1f759f3..04c0d3a 100644 --- a/configs/services/sxmo_soundmonitor.service +++ b/configs/services/sxmo_soundmonitor.service @@ -1,5 +1,6 @@ [Unit] Description=Sxmo: watch audio changes and update the status bar -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/sxmo_wob.service b/configs/services/sxmo_wob.service -index 600646f..97a2e23 100644 +index 600646f..5bacf13 100644 --- a/configs/services/sxmo_wob.service +++ b/configs/services/sxmo_wob.service @@ -1,5 +1,6 @@ [Unit] Description=A lightweight overlay volume/backlight/progress/anything bar for Wayland -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/unclutter-xfixes.service b/configs/services/unclutter-xfixes.service -index 3125786..c6de932 100644 +index 3125786..66746b4 100644 --- a/configs/services/unclutter-xfixes.service +++ b/configs/services/unclutter-xfixes.service @@ -1,5 +1,6 @@ [Unit] Description=Hides mouse pointer while not in use -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple diff --git a/configs/services/unclutter.service b/configs/services/unclutter.service -index f987ac3..f0c262c 100644 +index f987ac3..0f5d2f6 100644 --- a/configs/services/unclutter.service +++ b/configs/services/unclutter.service @@ -1,5 +1,6 @@ [Unit] Description=Hides mouse pointer while not in use -+BindsTo=graphical-session.target ++PartOf=graphical-session.target [Service] Type=simple -- -2.39.2 +2.43.0 diff --git a/0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch b/0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch deleted file mode 100644 index deb04493f32e..000000000000 --- a/0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 35dd52a0933be47ba01d865a89bc2a9352640702 Mon Sep 17 00:00:00 2001 -From: ArenM <aren@peacevolution.org> -Date: Sat, 23 Apr 2022 13:28:59 -0400 -Subject: [PATCH sxmo-utils 3/9] Use KillMode=process so systemd doesn't stop - apps - -Systemd kills processes by cgroup, not session, so the setsid calls in -the inputhandler don't prevent this. ---- - configs/superd/services/sxmo_hook_lisgd.service | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configs/superd/services/sxmo_hook_lisgd.service b/configs/superd/services/sxmo_hook_lisgd.service -index 182d995..c671235 100644 ---- a/configs/superd/services/sxmo_hook_lisgd.service -+++ b/configs/superd/services/sxmo_hook_lisgd.service -@@ -5,3 +5,4 @@ Description=run user defined lisgd start hook - Type=simple - Restart=always - ExecStart=sh -c sxmo_hook_lisgdstart.sh -+KillMode=process --- -2.39.2 - diff --git a/0008-Fix-quoting-of-strings-in-service-files.patch b/0004-Fix-quoting-of-strings-in-service-files.patch index 1d5b3d84fa41..71c9dd795b9e 100644 --- a/0008-Fix-quoting-of-strings-in-service-files.patch +++ b/0004-Fix-quoting-of-strings-in-service-files.patch @@ -1,7 +1,7 @@ -From 2734e9a561ad5c192acb45d21335c1f64a3a2db3 Mon Sep 17 00:00:00 2001 +From 920c70568dc53df8f14c72aa37fb36e0f110fba7 Mon Sep 17 00:00:00 2001 From: ArenM <aren@peacevolution.org> Date: Wed, 5 Apr 2023 17:42:36 -0400 -Subject: [PATCH sxmo-utils 8/9] Fix quoting of strings in service files +Subject: [PATCH sxmo-utils 4/6] Fix quoting of strings in service files Systemd doesn't like these variables without curly braces around them. --- @@ -10,10 +10,10 @@ Systemd doesn't like these variables without curly braces around them. 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/services/bonsaid.service b/configs/services/bonsaid.service -index 1093453..cc474f5 100644 +index 52c2823..9d56207 100644 --- a/configs/services/bonsaid.service +++ b/configs/services/bonsaid.service -@@ -5,5 +5,5 @@ BindsTo=graphical-session.target +@@ -5,5 +5,5 @@ PartOf=graphical-session.target [Service] Type=simple Restart=always @@ -22,15 +22,15 @@ index 1093453..cc474f5 100644 +ExecStartPre=rm -f ${XDG_RUNTIME_DIR}/bonsai +ExecStart=bonsaid -t ${XDG_CONFIG_HOME}/sxmo/bonsai_tree.json diff --git a/configs/services/sxmo_conky.service b/configs/services/sxmo_conky.service -index 79b7e93..15160ac 100644 +index a4fca14..774591e 100644 --- a/configs/services/sxmo_conky.service +++ b/configs/services/sxmo_conky.service -@@ -5,4 +5,4 @@ BindsTo=graphical-session.target +@@ -5,4 +5,4 @@ PartOf=graphical-session.target [Service] Type=simple Restart=always -ExecStart=conky -c "$XDG_CONFIG_HOME"/sxmo/conky.conf +ExecStart=conky -c "${XDG_CONFIG_HOME}/sxmo/conky.conf" -- -2.39.2 +2.43.0 diff --git a/0004-Remove-services-that-systemd-automatically-starts-fr.patch b/0004-Remove-services-that-systemd-automatically-starts-fr.patch deleted file mode 100644 index 8d79159b5bdc..000000000000 --- a/0004-Remove-services-that-systemd-automatically-starts-fr.patch +++ /dev/null @@ -1,34 +0,0 @@ -From fc4aa1e203a142e46142bc6d013ae09b5bb3be9a Mon Sep 17 00:00:00 2001 -From: ArenM <aren@peacevolution.org> -Date: Sat, 18 Feb 2023 14:40:03 -0500 -Subject: [PATCH sxmo-utils 4/9] Remove services that systemd automatically - starts from the start hook - ---- - configs/default_hooks/sxmo_hook_start.sh | 10 ---------- - 1 file changed, 10 deletions(-) - -diff --git a/configs/default_hooks/sxmo_hook_start.sh b/configs/default_hooks/sxmo_hook_start.sh -index 8140d6d..9697d8d 100755 ---- a/configs/default_hooks/sxmo_hook_start.sh -+++ b/configs/default_hooks/sxmo_hook_start.sh -@@ -11,16 +11,6 @@ xdg-user-dirs-update - - printenv | cut -d '=' -f 1 | xargs systemctl --user import-environment - --# Load our sound daemons -- --if [ "$(command -v pulseaudio)" ]; then -- superctl start pulseaudio --elif [ "$(command -v pipewire)" ]; then -- # pipewire-pulse will start pipewire -- superctl start pipewire-pulse -- superctl start wireplumber --fi -- - # Periodically update some status bar components - sxmo_hook_statusbar.sh all - sxmo_daemons.sh start statusbar_periodics sxmo_run_aligned.sh 60 \ --- -2.39.2 - diff --git a/0005-Add-hook-to-manage-services.patch b/0005-Add-hook-to-manage-services.patch new file mode 100644 index 000000000000..73aaf568ce36 --- /dev/null +++ b/0005-Add-hook-to-manage-services.patch @@ -0,0 +1,208 @@ +From e6c38034a069ad6e0e451d8bf7418e6b743d6575 Mon Sep 17 00:00:00 2001 +From: Aren Moynihan <aren@peacevolution.org> +Date: Fri, 13 Oct 2023 17:23:28 -0400 +Subject: [PATCH sxmo-utils 5/6] Add hook to manage services + +This adds a layer of abstraction over superctl and systemctl, and +possibly others like s6 if someone wants to add that in the future. The +command format is mostly the same as it was with superd, but this allows +us to hide the differences between service managers. +--- + .../default_hooks/sxmo_hook_contextmenu.sh | 12 ++-- + configs/default_hooks/sxmo_hook_service.sh | 65 +++++++++++++++++++ + configs/default_hooks/sxmo_hook_start.sh | 7 +- + scripts/core/sxmo_appmenu.sh | 4 +- + scripts/core/sxmo_common.sh | 1 + + scripts/core/sxmo_winit.sh | 1 + + scripts/core/sxmo_xinit.sh | 1 + + 7 files changed, 75 insertions(+), 16 deletions(-) + create mode 100644 configs/default_hooks/sxmo_hook_service.sh + +diff --git a/configs/default_hooks/sxmo_hook_contextmenu.sh b/configs/default_hooks/sxmo_hook_contextmenu.sh +index 2445c2f..e0a8953 100755 +--- a/configs/default_hooks/sxmo_hook_contextmenu.sh ++++ b/configs/default_hooks/sxmo_hook_contextmenu.sh +@@ -14,10 +14,6 @@ + XPROPOUT="$(sxmo_wm.sh focusedwindow)" + WMCLASS="${1:-$(printf %s "$XPROPOUT" | grep app: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')}" + +-superd_service_isrunning() { +- superctl status "$1" | grep -q started +-} +- + sxmo_service_isrunning() { + sxmo_jobs.sh running "$1" > /dev/null + } +@@ -44,7 +40,7 @@ case "$WMCLASS" in + CHOICES=" + $icon_plk Modem PIN ^ 0 ^ sxmo_unlocksim.sh + $icon_phn Modem Monitor $( +- superd_service_isrunning sxmo_modemmonitor && ++ sxmo_hook_service.sh is-active sxmo_modemmonitor && + printf %b "$icon_ton ^ 1 ^ superctl stop sxmo_modemmonitor" || + printf %b "$icon_tof ^ 1 ^ superctl start sxmo_modemmonitor" + ) && sxmo_hook_statusbar.sh modem_monitor +@@ -72,9 +68,9 @@ case "$WMCLASS" in + printf %b "$icon_tof ^ 1 ^ sxmo_wm.sh inputevent stylus on" + ) + $icon_cfg Gestures $( +- superd_service_isrunning "sxmo_hook_lisgd" && ++ sxmo_hook_service.sh is-active "sxmo_hook_lisgd" && + printf "%s" "$icon_ton" || printf "%s" "$icon_tof" +- ) ^ 1 ^ supertoggle_daemon 'sxmo_hook_lisgd' && (rm $XDG_CACHE_HOME/sxmo/sxmo.nogesture 2>/dev/null || touch $XDG_CACHE_HOME/sxmo/sxmo.nogesture) ++ ) ^ 1 ^ toggle_service 'sxmo_hook_lisgd' && (rm $XDG_CACHE_HOME/sxmo/sxmo.nogesture 2>/dev/null || touch $XDG_CACHE_HOME/sxmo/sxmo.nogesture) + $icon_cfg Toggle Bar ^ 0 ^ sxmo_wm.sh togglebar + $icon_bth Bluetooth $( + rfkill list bluetooth | grep -q "yes" && +@@ -642,7 +638,7 @@ case "$WMCLASS" in + ;; + org.gnome.maps) + CHOICES=" +- $icon_gps Toggle Geoclue ^ 0 ^ superctl status geoclue-agent |grep started >/dev/null && superctl stop geoclue-agent || superctl start geoclue-agent ++ $icon_gps Toggle Geoclue ^ 0 ^ toggle_service geoclue-agent + $icon_zmi Zoom in ^ 1 ^ sxmo_type -M ctrl = + $icon_zmo Zoom out ^ 1 ^ sxmo_type -M ctrl -k minus + $icon_fnd Explore POI ^ 0 ^ sxmo_type -M ctrl -M Shift F +diff --git a/configs/default_hooks/sxmo_hook_service.sh b/configs/default_hooks/sxmo_hook_service.sh +new file mode 100644 +index 0000000..18ae8b3 +--- /dev/null ++++ b/configs/default_hooks/sxmo_hook_service.sh +@@ -0,0 +1,65 @@ ++#! /bin/sh ++# SPDX-License-Identifier: AGPL-3.0-only ++# Copyright 2023 Sxmo Contributors ++ ++# include common definitions ++# shellcheck source=scripts/core/sxmo_common.sh ++. sxmo_common.sh ++# prevent infinite recursion ++unalias superd ++ ++set -e ++ ++if [ -n "$SXMO_SERVICE_MANAGER" ]; then ++ MANAGER="$SXMO_SERVICE_MANAGER" ++elif command -v systemctl > /dev/null; then ++ MANAGER=systemd ++elif command -v superd > /dev/null; then ++ MANAGER=superd ++fi ++ ++case "$1" in ++ restart|start|status|stop|is-active|sxmo_starting|sxmo_stopping) ;; ++ *) ++ cat <<EOF ++sxmo_hook_service.sh is a thin wrapper around the superctl / systemctl commands ++that provides a single interface for the rest of the sxmo to use. ++ ++Usage: sxmo_hook_service.sh <restart|start|status|stop|is-active> [args] ++ ++Unknown subcommand: $1 ++EOF ++ exit 127 ++ ;; ++esac ++ ++case "$MANAGER" in ++ superd) ++ case "$1" in ++ sxmo_starting) ++ sxmo_jobs.sh start daemon_manager superd ++ # wait for superd to start ++ while ! superctl status > /dev/null 2>&1; do ++ sleep 0.5 ++ done ++ ;; ++ sxmo_stopping) ;; ++ "is-active") superctl status "$1" | grep -q started ;; ++ *) superctl "$@" ;; ++ esac ++ ;; ++ systemd) ++ # systemd waits for processes to start, run start asyncrounously ++ # to prevent hanging the start hook ++ case "$1" in ++ sxmo_starting) ++ printenv | cut -d '=' -f 1 | xargs systemctl --user import-environment ++ ;; ++ sxmo_stopping) ++ systemctl --user unset-environment \ ++ WAYLAND_DISPLAY DISPLAY SXMO_WM XDG_CURRENT_DESKTOP ++ ;; ++ start) systemctl --user "$@" & ;; ++ *) systemctl --user "$@" ;; ++ esac ++esac +diff --git a/configs/default_hooks/sxmo_hook_start.sh b/configs/default_hooks/sxmo_hook_start.sh +index 35bc59a..1a79d63 100755 +--- a/configs/default_hooks/sxmo_hook_start.sh ++++ b/configs/default_hooks/sxmo_hook_start.sh +@@ -9,12 +9,7 @@ + # Create xdg user directories, such as ~/Pictures + xdg-user-dirs-update + +-sxmo_jobs.sh start daemon_manager superd +- +-# let time to superd to start correctly +-while ! superctl status > /dev/null 2>&1; do +- sleep 0.5 +-done ++sxmo_hook_service.sh sxmo_starting + + # Not dangerous if "locker" isn't an available state + sxmo_state.sh set locker +diff --git a/scripts/core/sxmo_appmenu.sh b/scripts/core/sxmo_appmenu.sh +index 10c2f51..a7c7733 100755 +--- a/scripts/core/sxmo_appmenu.sh ++++ b/scripts/core/sxmo_appmenu.sh +@@ -18,8 +18,8 @@ confirm() { + fi + } + +-supertoggle_daemon() { +- if superctl status "$1" | grep -q started; then ++toggle_service() { ++ if sxmo_hook_service.sh is-active "$1"; then + superctl stop "$1" + sxmo_notify_user.sh "$1 Stopped" + else +diff --git a/scripts/core/sxmo_common.sh b/scripts/core/sxmo_common.sh +index 4eb0a1f..b6cabf9 100755 +--- a/scripts/core/sxmo_common.sh ++++ b/scripts/core/sxmo_common.sh +@@ -16,6 +16,7 @@ command -v shopt > /dev/null && shopt -s expand_aliases + alias dmenu="sxmo_dmenu.sh" + alias bemenu="sxmo_dmenu.sh" + alias jq="gojq" # better performances ++alias superctl=sxmo_hook_service.sh + + if ! command -v sxmobar > /dev/null; then + sxmobar() { +diff --git a/scripts/core/sxmo_winit.sh b/scripts/core/sxmo_winit.sh +index 220daac..a8c381f 100755 +--- a/scripts/core/sxmo_winit.sh ++++ b/scripts/core/sxmo_winit.sh +@@ -23,6 +23,7 @@ with_dbus() { + } + + cleanup() { ++ sxmo_hook_service.sh sxmo_stopping + sxmo_jobs.sh stop all + pkill bemenu + pkill wvkbd +diff --git a/scripts/core/sxmo_xinit.sh b/scripts/core/sxmo_xinit.sh +index 9a491ba..f490aa4 100755 +--- a/scripts/core/sxmo_xinit.sh ++++ b/scripts/core/sxmo_xinit.sh +@@ -45,6 +45,7 @@ with_dbus() { + } + + cleanup() { ++ sxmo_hook_service.sh sxmo_stopping + sxmo_jobs.sh stop all + pkill svkbd + pkill dmenu +-- +2.43.0 + diff --git a/0005-Separate-services-that-are-provided-by-external-pack.patch b/0005-Separate-services-that-are-provided-by-external-pack.patch deleted file mode 100644 index 4345cf6b0c16..000000000000 --- a/0005-Separate-services-that-are-provided-by-external-pack.patch +++ /dev/null @@ -1,199 +0,0 @@ -From 15e251ee6c53a195b8de0e699ae9dd9bf2fb6fa2 Mon Sep 17 00:00:00 2001 -From: ArenM <aren@peacevolution.org> -Date: Sat, 18 Feb 2023 15:01:06 -0500 -Subject: [PATCH sxmo-utils 5/9] Separate services that are provided by - external packages - -These services are provided by the packages for these things on distros -that use systemd, so if the packager replaces superd with systemd they -must be removed. ---- - Makefile | 15 ++++++++++++--- - .../services => external-services}/dunst.service | 0 - .../services => external-services}/mako.service | 0 - .../mmsd-tng.service | 0 - .../pipewire-pulse.service | 0 - .../pipewire.service | 0 - .../pulseaudio.service | 0 - .../services => external-services}/vvmd.service | 0 - .../wireplumber.service | 0 - .../services/autocutsel-primary.service | 0 - configs/{superd => }/services/autocutsel.service | 0 - configs/{superd => }/services/bonsaid.service | 0 - .../{superd => }/services/sxmo-x11-status.service | 0 - .../services/sxmo_autosuspend.service | 0 - .../services/sxmo_battery_monitor.service | 0 - configs/{superd => }/services/sxmo_conky.service | 0 - .../services/sxmo_desktop_widget.service | 0 - .../{superd => }/services/sxmo_hook_lisgd.service | 0 - .../services/sxmo_menumode_toggler.service | 0 - .../services/sxmo_modemmonitor.service | 0 - .../services/sxmo_networkmonitor.service | 0 - .../services/sxmo_notificationmonitor.service | 0 - .../services/sxmo_soundmonitor.service | 0 - configs/{superd => }/services/sxmo_wob.service | 0 - .../services/unclutter-xfixes.service | 0 - configs/{superd => }/services/unclutter.service | 0 - 26 files changed, 12 insertions(+), 3 deletions(-) - rename configs/{superd/services => external-services}/dunst.service (100%) - rename configs/{superd/services => external-services}/mako.service (100%) - rename configs/{superd/services => external-services}/mmsd-tng.service (100%) - rename configs/{superd/services => external-services}/pipewire-pulse.service (100%) - rename configs/{superd/services => external-services}/pipewire.service (100%) - rename configs/{superd/services => external-services}/pulseaudio.service (100%) - rename configs/{superd/services => external-services}/vvmd.service (100%) - rename configs/{superd/services => external-services}/wireplumber.service (100%) - rename configs/{superd => }/services/autocutsel-primary.service (100%) - rename configs/{superd => }/services/autocutsel.service (100%) - rename configs/{superd => }/services/bonsaid.service (100%) - rename configs/{superd => }/services/sxmo-x11-status.service (100%) - rename configs/{superd => }/services/sxmo_autosuspend.service (100%) - rename configs/{superd => }/services/sxmo_battery_monitor.service (100%) - rename configs/{superd => }/services/sxmo_conky.service (100%) - rename configs/{superd => }/services/sxmo_desktop_widget.service (100%) - rename configs/{superd => }/services/sxmo_hook_lisgd.service (100%) - rename configs/{superd => }/services/sxmo_menumode_toggler.service (100%) - rename configs/{superd => }/services/sxmo_modemmonitor.service (100%) - rename configs/{superd => }/services/sxmo_networkmonitor.service (100%) - rename configs/{superd => }/services/sxmo_notificationmonitor.service (100%) - rename configs/{superd => }/services/sxmo_soundmonitor.service (100%) - rename configs/{superd => }/services/sxmo_wob.service (100%) - rename configs/{superd => }/services/unclutter-xfixes.service (100%) - rename configs/{superd => }/services/unclutter.service (100%) - -diff --git a/Makefile b/Makefile -index 0eba191..9c730fb 100644 ---- a/Makefile -+++ b/Makefile -@@ -2,6 +2,13 @@ DESTDIR= - PREFIX:=/usr - SHAREDIR=$(PREFIX)/share - MANDIR=$(SHAREDIR)/man -+ -+# use $(PREFIX)/lib/systemd/user for systemd integration -+SERVICEDIR:=$(PREFIX)/share/superd/services -+ -+# Install services for packages outside sxmo -+EXTERNAL_SERVICES:=1 -+ - SCDOC=scdoc - - .PHONY: install shellcheck -@@ -93,9 +100,11 @@ install-scripts: $(PROGRAMS) - mkdir -p "$(DESTDIR)$(PREFIX)/share/sxmo/appscripts" - cd scripts/appscripts && find . -name 'sxmo_*.sh' | xargs -I{} ln -fs "$(PREFIX)/bin/{}" "$(DESTDIR)$(PREFIX)/share/sxmo/appscripts/{}" && cd ../.. - -- -- mkdir -p "$(DESTDIR)$(PREFIX)/share/superd/services" -- install -m 0644 -t $(DESTDIR)$(PREFIX)/share/superd/services configs/superd/services/* -+ mkdir -p "$(DESTDIR)$(SERVICEDIR)" -+ install -m 0644 -t "$(DESTDIR)$(SERVICEDIR)" configs/services/* -+ if [ "$(EXTERNAL_SERVICES)" = "1" ]; then \ -+ install -m 0644 -t "$(DESTDIR)$(SERVICEDIR)" configs/external-services/*; \ -+ fi - - @echo "-------------------------------------------------------------------">&2 - @echo "NOTICE 1: Do not forget to add sxmo-setpermissions to your init system, e.g. for openrc: rc-update add sxmo-setpermissions default && rc-service sxmo-setpermissions start" >&2 -diff --git a/configs/superd/services/dunst.service b/configs/external-services/dunst.service -similarity index 100% -rename from configs/superd/services/dunst.service -rename to configs/external-services/dunst.service -diff --git a/configs/superd/services/mako.service b/configs/external-services/mako.service -similarity index 100% -rename from configs/superd/services/mako.service -rename to configs/external-services/mako.service -diff --git a/configs/superd/services/mmsd-tng.service b/configs/external-services/mmsd-tng.service -similarity index 100% -rename from configs/superd/services/mmsd-tng.service -rename to configs/external-services/mmsd-tng.service -diff --git a/configs/superd/services/pipewire-pulse.service b/configs/external-services/pipewire-pulse.service -similarity index 100% -rename from configs/superd/services/pipewire-pulse.service -rename to configs/external-services/pipewire-pulse.service -diff --git a/configs/superd/services/pipewire.service b/configs/external-services/pipewire.service -similarity index 100% -rename from configs/superd/services/pipewire.service -rename to configs/external-services/pipewire.service -diff --git a/configs/superd/services/pulseaudio.service b/configs/external-services/pulseaudio.service -similarity index 100% -rename from configs/superd/services/pulseaudio.service -rename to configs/external-services/pulseaudio.service -diff --git a/configs/superd/services/vvmd.service b/configs/external-services/vvmd.service -similarity index 100% -rename from configs/superd/services/vvmd.service -rename to configs/external-services/vvmd.service -diff --git a/configs/superd/services/wireplumber.service b/configs/external-services/wireplumber.service -similarity index 100% -rename from configs/superd/services/wireplumber.service -rename to configs/external-services/wireplumber.service -diff --git a/configs/superd/services/autocutsel-primary.service b/configs/services/autocutsel-primary.service -similarity index 100% -rename from configs/superd/services/autocutsel-primary.service -rename to configs/services/autocutsel-primary.service -diff --git a/configs/superd/services/autocutsel.service b/configs/services/autocutsel.service -similarity index 100% -rename from configs/superd/services/autocutsel.service -rename to configs/services/autocutsel.service -diff --git a/configs/superd/services/bonsaid.service b/configs/services/bonsaid.service -similarity index 100% -rename from configs/superd/services/bonsaid.service -rename to configs/services/bonsaid.service -diff --git a/configs/superd/services/sxmo-x11-status.service b/configs/services/sxmo-x11-status.service -similarity index 100% -rename from configs/superd/services/sxmo-x11-status.service -rename to configs/services/sxmo-x11-status.service -diff --git a/configs/superd/services/sxmo_autosuspend.service b/configs/services/sxmo_autosuspend.service -similarity index 100% -rename from configs/superd/services/sxmo_autosuspend.service -rename to configs/services/sxmo_autosuspend.service -diff --git a/configs/superd/services/sxmo_battery_monitor.service b/configs/services/sxmo_battery_monitor.service -similarity index 100% -rename from configs/superd/services/sxmo_battery_monitor.service -rename to configs/services/sxmo_battery_monitor.service -diff --git a/configs/superd/services/sxmo_conky.service b/configs/services/sxmo_conky.service -similarity index 100% -rename from configs/superd/services/sxmo_conky.service -rename to configs/services/sxmo_conky.service -diff --git a/configs/superd/services/sxmo_desktop_widget.service b/configs/services/sxmo_desktop_widget.service -similarity index 100% -rename from configs/superd/services/sxmo_desktop_widget.service -rename to configs/services/sxmo_desktop_widget.service -diff --git a/configs/superd/services/sxmo_hook_lisgd.service b/configs/services/sxmo_hook_lisgd.service -similarity index 100% -rename from configs/superd/services/sxmo_hook_lisgd.service -rename to configs/services/sxmo_hook_lisgd.service -diff --git a/configs/superd/services/sxmo_menumode_toggler.service b/configs/services/sxmo_menumode_toggler.service -similarity index 100% -rename from configs/superd/services/sxmo_menumode_toggler.service -rename to configs/services/sxmo_menumode_toggler.service -diff --git a/configs/superd/services/sxmo_modemmonitor.service b/configs/services/sxmo_modemmonitor.service -similarity index 100% -rename from configs/superd/services/sxmo_modemmonitor.service -rename to configs/services/sxmo_modemmonitor.service -diff --git a/configs/superd/services/sxmo_networkmonitor.service b/configs/services/sxmo_networkmonitor.service -similarity index 100% -rename from configs/superd/services/sxmo_networkmonitor.service -rename to configs/services/sxmo_networkmonitor.service -diff --git a/configs/superd/services/sxmo_notificationmonitor.service b/configs/services/sxmo_notificationmonitor.service -similarity index 100% -rename from configs/superd/services/sxmo_notificationmonitor.service -rename to configs/services/sxmo_notificationmonitor.service -diff --git a/configs/superd/services/sxmo_soundmonitor.service b/configs/services/sxmo_soundmonitor.service -similarity index 100% -rename from configs/superd/services/sxmo_soundmonitor.service -rename to configs/services/sxmo_soundmonitor.service -diff --git a/configs/superd/services/sxmo_wob.service b/configs/services/sxmo_wob.service -similarity index 100% -rename from configs/superd/services/sxmo_wob.service -rename to configs/services/sxmo_wob.service -diff --git a/configs/superd/services/unclutter-xfixes.service b/configs/services/unclutter-xfixes.service -similarity index 100% -rename from configs/superd/services/unclutter-xfixes.service -rename to configs/services/unclutter-xfixes.service -diff --git a/configs/superd/services/unclutter.service b/configs/services/unclutter.service -similarity index 100% -rename from configs/superd/services/unclutter.service -rename to configs/services/unclutter.service --- -2.39.2 - diff --git a/0006-start-stop-graphical-session.target.patch b/0006-start-stop-graphical-session.target.patch new file mode 100644 index 000000000000..e1a8549baa24 --- /dev/null +++ b/0006-start-stop-graphical-session.target.patch @@ -0,0 +1,41 @@ +From 3ba6d0415e24febb1dcf26c1f4ec6d144f32b8e2 Mon Sep 17 00:00:00 2001 +From: ArenM <aren@peacevolution.org> +Date: Fri, 22 Apr 2022 18:24:27 -0400 +Subject: [PATCH sxmo-utils 6/6] start / stop graphical-session.target + +--- + configs/default_hooks/sxmo_hook_service.sh | 2 ++ + configs/services/sxmo-session.target | 6 ++++++ + 2 files changed, 8 insertions(+) + create mode 100644 configs/services/sxmo-session.target + +diff --git a/configs/default_hooks/sxmo_hook_service.sh b/configs/default_hooks/sxmo_hook_service.sh +index 18ae8b3..3ce6d8f 100644 +--- a/configs/default_hooks/sxmo_hook_service.sh ++++ b/configs/default_hooks/sxmo_hook_service.sh +@@ -54,8 +54,10 @@ case "$MANAGER" in + case "$1" in + sxmo_starting) + printenv | cut -d '=' -f 1 | xargs systemctl --user import-environment ++ systemctl --user start sxmo-session.target + ;; + sxmo_stopping) ++ systemctl --user stop graphical-session.target + systemctl --user unset-environment \ + WAYLAND_DISPLAY DISPLAY SXMO_WM XDG_CURRENT_DESKTOP + ;; +diff --git a/configs/services/sxmo-session.target b/configs/services/sxmo-session.target +new file mode 100644 +index 0000000..1bea6c3 +--- /dev/null ++++ b/configs/services/sxmo-session.target +@@ -0,0 +1,6 @@ ++[Unit] ++Description=Graphical sxmo session ++Documentation=man:systemd.special ++BindsTo=graphical-session.target ++Wants=graphical-session-pre.target ++After=graphical-session-pre.target +-- +2.43.0 + diff --git a/0007-start-stop-graphical-session.target.patch b/0007-start-stop-graphical-session.target.patch deleted file mode 100644 index 7c8697ac572e..000000000000 --- a/0007-start-stop-graphical-session.target.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 42b25bdd8c5c44305d5a78f498f2b61e87fccd13 Mon Sep 17 00:00:00 2001 -From: ArenM <aren@peacevolution.org> -Date: Fri, 22 Apr 2022 18:24:27 -0400 -Subject: [PATCH sxmo-utils 7/9] start / stop graphical-session.target - ---- - configs/default_hooks/sxmo_hook_start.sh | 1 + - configs/services/sxmo-session.target | 6 ++++++ - scripts/core/sxmo_winit.sh | 1 + - scripts/core/sxmo_xinit.sh | 1 + - 4 files changed, 9 insertions(+) - create mode 100644 configs/services/sxmo-session.target - -diff --git a/configs/default_hooks/sxmo_hook_start.sh b/configs/default_hooks/sxmo_hook_start.sh -index 9697d8d..74443e4 100755 ---- a/configs/default_hooks/sxmo_hook_start.sh -+++ b/configs/default_hooks/sxmo_hook_start.sh -@@ -10,6 +10,7 @@ - xdg-user-dirs-update - - printenv | cut -d '=' -f 1 | xargs systemctl --user import-environment -+systemctl --user start sxmo-session.target - - # Periodically update some status bar components - sxmo_hook_statusbar.sh all -diff --git a/configs/services/sxmo-session.target b/configs/services/sxmo-session.target -new file mode 100644 -index 0000000..1bea6c3 ---- /dev/null -+++ b/configs/services/sxmo-session.target -@@ -0,0 +1,6 @@ -+[Unit] -+Description=Graphical sxmo session -+Documentation=man:systemd.special -+BindsTo=graphical-session.target -+Wants=graphical-session-pre.target -+After=graphical-session-pre.target -diff --git a/scripts/core/sxmo_winit.sh b/scripts/core/sxmo_winit.sh -index fa78061..b160f84 100755 ---- a/scripts/core/sxmo_winit.sh -+++ b/scripts/core/sxmo_winit.sh -@@ -35,6 +35,7 @@ start() { - } - - cleanup() { -+ systemctl --user stop graphical-session.target sxmo-session.target - sxmo_daemons.sh stop all - pkill bemenu - pkill wvkbd -diff --git a/scripts/core/sxmo_xinit.sh b/scripts/core/sxmo_xinit.sh -index 4a71c48..cfa1921 100755 ---- a/scripts/core/sxmo_xinit.sh -+++ b/scripts/core/sxmo_xinit.sh -@@ -57,6 +57,7 @@ start() { - } - - cleanup() { -+ systemctl --user stop graphical-session.target sxmo-session.target - sxmo_daemons.sh stop all - pkill svkbd - pkill dmenu --- -2.39.2 - diff --git a/0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch b/0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch deleted file mode 100644 index 0dbeb28e1bbc..000000000000 --- a/0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch +++ /dev/null @@ -1,88 +0,0 @@ -From ad6b44cda0c8cc509abaff2634196b6edea66e13 Mon Sep 17 00:00:00 2001 -From: ArenM <aren@peacevolution.org> -Date: Wed, 5 Apr 2023 18:55:53 -0400 -Subject: [PATCH sxmo-utils 9/9] Simplify handling of XDG_RUNTIME_DIR - -Previously if this detected that sxmo was not running, it would unset -XDG_RUNTIME_DIR. This would prevent anyone from having sxmo installed -but not using it. ---- - configs/profile.d/sxmo_init.sh | 36 +++++++++++++--------------------- - 1 file changed, 14 insertions(+), 22 deletions(-) - -diff --git a/configs/profile.d/sxmo_init.sh b/configs/profile.d/sxmo_init.sh -index fdf5dd9..a8bb2e2 100644 ---- a/configs/profile.d/sxmo_init.sh -+++ b/configs/profile.d/sxmo_init.sh -@@ -9,9 +9,9 @@ - _sxmo_is_running() { - unset SXMO_WM - -- if [ -f "${XDG_RUNTIME_DIR}"/sxmo.swaysock ]; then -+ if [ -f "${_RUNTIME_DIR}"/sxmo.swaysock ]; then - unset SWAYSOCK -- if SWAYSOCK="$(cat "${XDG_RUNTIME_DIR}"/sxmo.swaysock)" \ -+ if SWAYSOCK="$(cat "${_RUNTIME_DIR}"/sxmo.swaysock)" \ - swaymsg 2>/dev/null; then - printf "Detected the Sway environment\n" >&2 - export SXMO_WM=sway -@@ -29,22 +29,6 @@ _sxmo_is_running() { - return 1 - } - --_sxmo_find_runtime_dir() { -- # Take what we gave to you -- if [ -n "$XDG_RUNTIME_DIR" ]; then -- printf %s "$XDG_RUNTIME_DIR" -- return -- fi -- -- if [ -d "/var/run/user/$(id -u)" ]; then -- printf "/var/run/user/%s" "$(id -u)" -- return -- fi -- -- # Fallback to a shared memory location -- printf "/dev/shm/user/%s" "$(id -u)" --} -- - _sxmo_load_environments() { - # Determine current operating system see os-release(5) - # https://www.linux.org/docs/man5/os-release.html -@@ -60,7 +44,6 @@ _sxmo_load_environments() { - export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}" - export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" - export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" -- XDG_RUNTIME_DIR="$(_sxmo_find_runtime_dir)" - export XDG_RUNTIME_DIR - export XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" - export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" -@@ -124,13 +107,22 @@ $PATH" - } - - _sxmo_grab_session() { -- XDG_RUNTIME_DIR="$(_sxmo_find_runtime_dir)" -- export XDG_RUNTIME_DIR -+ if [ -n "$XDG_RUNTIME_DIR" ]; then -+ _RUNTIME_DIR="$XDG_RUNTIME_DIR" -+ elif [ -d "/var/run/user/$(id -u)" ]; then -+ _RUNTIME_DIR="/var/run/user/%s" "$(id -u)" -+ else -+ _RUNTIME_DIR="/dev/shm/user/%s" "$(id -u)" -+ fi -+ - if ! _sxmo_is_running; then -- unset XDG_RUNTIME_DIR -+ unset _RUNTIME_DIR - return - fi - -+ export XDG_RUNTIME_DIR="$_RUNTIME_DIR" -+ unset _RUNTIME_DIR -+ - _sxmo_load_environments - - if [ -f "$XDG_RUNTIME_DIR"/dbus.bus ]; then --- -2.39.2 - @@ -2,7 +2,7 @@ # Contributor: dni <office@dnilabs.com> pkgname=('sxmo-utils-git' 'sxmo-utils-sway-git') -pkgver=1.14.1.r4.e8ddbc8 +pkgver=1.15.1.r20.6a024f2 pkgrel=1 pkgdesc="Utility scripts, programs, and configs that hold the sxmo UI environment together" url="https://git.sr.ht/~mil/sxmo-utils" @@ -10,31 +10,25 @@ arch=('x86_64' 'aarch64') license=('AGPL3') makedepends=('libx11' 'xorgproto' 'linux-headers' 'busybox' 'scdoc' 'git') source=("git+https://git.sr.ht/~mil/sxmo-utils" + '0001-Use-sh-to-resolve-hooks-in-services.patch' + '0002-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch' + '0003-Add-PartOf-to-services-so-they-stop-when-the-graphic.patch' + '0004-Fix-quoting-of-strings-in-service-files.patch' + '0005-Add-hook-to-manage-services.patch' + '0006-start-stop-graphical-session.target.patch' '00-sxmo.rules' '10-sxmo.conf' - 'sxmo-setpermissions.service' - '0001-alias-superd-to-systemd-user.patch' - '0002-Use-sh-to-resolve-hooks-in-services.patch' - '0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch' - '0004-Remove-services-that-systemd-automatically-starts-fr.patch' - '0005-Separate-services-that-are-provided-by-external-pack.patch' - '0006-Add-BindsTo-to-services-so-they-stop-when-the-graphi.patch' - '0007-start-stop-graphical-session.target.patch' - '0008-Fix-quoting-of-strings-in-service-files.patch' - '0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch') + 'sxmo-setpermissions.service') sha512sums=('SKIP' + '0e5abaaa638d544e83f674fdfbccdec705faa541d3dd272d22580c1997cb1e40785a1d3dbe1ec0f7aad21d07c6ebdf715eb028dba8aab8f9e9f08a01005bd7d8' + 'f315c6fbfc842a9ced93c8f493ce601f46fd0a4a0974bef22730e3e693aeff6b4c259ddc0165a6a891c6889b016c33ed5b640d787b16a1ca5525fa9f8a8b0096' + '9790135846977e6d0ff681858db99e3c2dc8040a505db5b24f5cc5eefb474971db627f7a2af4ab60130e865f2c024543915f30b57a485cf56ece98dca94759ee' + '20be8a30ddcd0c3acc22c3a8171e397d34cef8a3b32ad5e624105826c3ad9d1ad561a00ddbab32d931753fd782faaf2ffa1f231b1158404a2e5723189d189079' + '8d60d253b5399f64a565c244a8ef210a646ed5e00ef2cc234e3170103ee5629d10fdb7847fa6cf01d41da9cb904a7ed1a72c3e7c915fd46b3646555a354f00e1' + 'f31200582fcb3888509788a88459f27249dc2340937265fd81be54d567c92c8ed19a6b74d0dc29b82645fc27c98e67e7fc085ee8bb5843b16b0af6c759aaa601' '8a21e62b7ff0982a5406e98510a3004c62f883b9fae0cad5b63f6a7df520896b65c726321da515dab754a91ed94280922e3f424ecc983c1a33eb1ec287b268a2' 'b69a09f98f8a5cad8164cd48c5f6a78f2ce0e9818fb77ccf2a3e243cd0f2023e438022b20aad9e6b5edd90e1bb862326db79dc423630682d4c43e897090d3da1' - '532c3045f52f872704876bdf56afbc7470c5d17e46655dd4040d545b6d3eb34a8791909e554c560471f9494c7382107839bcff1e48be242d5eea0092482165cd' - '2d58ebb5c6109161a3646266f992b310de164075e55f1cd7f23e56535c1786cd539194de6681ee03387bdb4c08d96677f2de046bc8c2e18bc9ac9d5a0b4c26db' - '720cde09229189fe6f25d60107415cec02494f93feaabe41d0a935c7fe2ff1145f1d0aca3f354ea4defd9816c2cf88616605e39d0364124f579932838e556798' - 'b63d548f357d786f28f0371ea451329ed2ee2f05d6337dc81db2903bb519f2abe820d7d49d0b46028939b691f6f9550bfb5566199340e1f4219f35098e671674' - '0619e8ad0a55b2b26c149fc4d13c60f0334cba6c04289c940df794a4cae20824e056f4a9cc5b423570a55c90ba9ab2c434e47d79d5881fbeb36ee4383198d232' - 'fd2a7e20a6920c92a437ce5962b3fb101961e4428c5f2758627e5a4abf6dc733e0838ad43a0e8711a3d10359d1ba99f3fce7842c66f8082ed611f4487256d68c' - '60c7cc94765c8b0bb309a4babe17d3a2dc6e5fa72b93ecd61bb631eb6f20ab500ebadb45892a0903108b89b9d1c2f654568b5db30ca043cf823bc518e084ba92' - '6b2fe273ead62c202f1925f609f95de92ae8babff69a8eaaa70209d1113749aaf59b3a0308c3cceceb0f315504e2610ae2a07923aa9863cd9296c725996876fc' - '6f1c5427f43446850c432027c5ec75d9dac5b7609afb7f8acdc014da3ccdc1639d0aace6e442a81f4cc783a1df0a18191b485850e88f0e5c8895555ca76866c6' - '45c8e299be85cb7f1e3e3989df6cf5d0b08291d36abad5372649a9ce996be6e00dda64d7dd1a0445d2c121e59cc246683df16793973921b75245d7abf30a8282') + '532c3045f52f872704876bdf56afbc7470c5d17e46655dd4040d545b6d3eb34a8791909e554c560471f9494c7382107839bcff1e48be242d5eea0092482165cd') pkgver() { cd "sxmo-utils" @@ -90,12 +84,15 @@ package_sxmo-utils-git() { 'pulseaudio-alsa' # Core GUI dependencies + 'brightnessctl' 'conky' + 'dunst' 'libnotify' - 'light' 'lisgd' 'mpv' - 'ttf-dejavu-nerd') + 'ttf-dejavu-nerd' + 'upower' + ) optdepends=('bemenu-ncurses: sxmo menus over ssh' 'bonsai: better multikey script' 'clickclack: haptic feedback' @@ -114,7 +111,7 @@ package_sxmo-utils-git() { DESTDIR="$pkgdir" \ EXTERNAL_SERVICES=0 \ SERVICEDIR=/usr/lib/systemd/user \ - install-scripts + install-scripts install-docs # Allow access to ModemManager and NetworkManager install -Dm644 -t "$pkgdir/usr/share/polkit-1/rules.d" "00-sxmo.rules" |