summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO36
-rw-r--r--0001-Use-sh-to-resolve-hooks-in-services.patch35
-rw-r--r--0001-alias-superd-to-systemd-user.patch71
-rw-r--r--0002-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch24
-rw-r--r--0002-Use-sh-to-resolve-hooks-in-services.patch35
-rw-r--r--0003-Add-PartOf-to-services-so-they-stop-when-the-graphic.patch (renamed from 0006-Add-BindsTo-to-services-so-they-stop-when-the-graphi.patch)74
-rw-r--r--0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch24
-rw-r--r--0004-Fix-quoting-of-strings-in-service-files.patch (renamed from 0008-Fix-quoting-of-strings-in-service-files.patch)14
-rw-r--r--0004-Remove-services-that-systemd-automatically-starts-fr.patch34
-rw-r--r--0005-Add-hook-to-manage-services.patch208
-rw-r--r--0005-Separate-services-that-are-provided-by-external-pack.patch199
-rw-r--r--0006-start-stop-graphical-session.target.patch41
-rw-r--r--0007-start-stop-graphical-session.target.patch64
-rw-r--r--0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch88
-rw-r--r--PKGBUILD45
15 files changed, 389 insertions, 603 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 3258a33a734f..7f607b86395c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
-
diff --git a/PKGBUILD b/PKGBUILD
index 2332dbbd5a86..98108801171c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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"