diff options
author | ArenM | 2022-04-28 22:22:10 -0400 |
---|---|---|
committer | ArenM | 2023-04-05 21:20:25 -0400 |
commit | e39ac8fee0451598b8b9997962b935886a1cbcad (patch) | |
tree | afde85b41017beb9a6154b67cac6e1cb51f84adf | |
download | aur-e39ac8fee0451598b8b9997962b935886a1cbcad.tar.gz |
initial commit
This is forked from the sxmo-utils package in danctnix
https://github.com/dreemurrs-embedded/Pine64-Arch/blob/master/PKGBUILDS/sxmo/sxmo-utils/PKGBUILD
Notable changes include:
- Add patches to use systemd instead of superd
- Disable dwm variant. None of the sxmo versions of the suckless
utilities are in the aur, and I don't want to maintain aur versions
of them.
-rw-r--r-- | .SRCINFO | 105 | ||||
-rw-r--r-- | 00-sxmo.rules | 15 | ||||
-rw-r--r-- | 0001-alias-superd-to-systemd-user.patch | 71 | ||||
-rw-r--r-- | 0002-Use-sh-to-resolve-hooks-in-services.patch | 35 | ||||
-rw-r--r-- | 0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch | 24 | ||||
-rw-r--r-- | 0004-Remove-services-that-systemd-automatically-starts-fr.patch | 34 | ||||
-rw-r--r-- | 0005-Separate-services-that-are-provided-by-external-pack.patch | 199 | ||||
-rw-r--r-- | 0006-Add-BindsTo-to-services-so-they-stop-when-the-graphi.patch | 216 | ||||
-rw-r--r-- | 0007-start-stop-graphical-session.target.patch | 64 | ||||
-rw-r--r-- | 0008-Fix-quoting-of-strings-in-service-files.patch | 36 | ||||
-rw-r--r-- | 0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch | 88 | ||||
-rw-r--r-- | 10-sxmo.conf | 2 | ||||
-rw-r--r-- | PKGBUILD | 158 | ||||
-rw-r--r-- | sxmo-setpermissions.service | 6 |
14 files changed, 1053 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..b90771fa78ee --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,105 @@ +pkgbase = sxmo-utils-git + pkgdesc = Utility scripts, programs, and configs that hold the sxmo UI environment together + pkgver = 1.14.1.r4.e8ddbc8 + pkgrel = 1 + url = https://git.sr.ht/~mil/sxmo-utils + arch = x86_64 + arch = aarch64 + license = AGPL3 + makedepends = libx11 + makedepends = xorgproto + makedepends = linux-headers + makedepends = busybox + makedepends = scdoc + makedepends = git + source = git+https://git.sr.ht/~mil/sxmo-utils + 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 + sha512sums = SKIP + sha512sums = 8a21e62b7ff0982a5406e98510a3004c62f883b9fae0cad5b63f6a7df520896b65c726321da515dab754a91ed94280922e3f424ecc983c1a33eb1ec287b268a2 + sha512sums = b69a09f98f8a5cad8164cd48c5f6a78f2ce0e9818fb77ccf2a3e243cd0f2023e438022b20aad9e6b5edd90e1bb862326db79dc423630682d4c43e897090d3da1 + sha512sums = 532c3045f52f872704876bdf56afbc7470c5d17e46655dd4040d545b6d3eb34a8791909e554c560471f9494c7382107839bcff1e48be242d5eea0092482165cd + sha512sums = 5eeb6a2d1ab9c4811b5bf602f00e2cc075b86f6a301110730b81850865443696d7a99e19432a53048017295c1d13de46dd897bd646be168903f34ee80128be37 + sha512sums = 0a872028c1f3b9853a9c1e0c6c659612e1ecb8f1e83b6c1e3ef22e120c04d4347af9ab6987110fa22576b6fce20dd26cf5734725094df46e97bb89764a96f54e + sha512sums = 222696d8872dac5a6e72efb72fa058c116b6cbfbb889b727ba4abdaed5c4c5cbe64d5ff71fd1a90c16a14f4c4f9455440652b7c7a046a1b02fc1a444c3f950fb + sha512sums = d847b56a8a6a1f4e500f09ed1d7976a8ac7d24144e0c5265f5d72af46d211d32e676b69c33e3fd29ccbfb36080d521ea1719f41a8a06fd6a18318e01c5570ad5 + sha512sums = c7d9317313a9333e8cb52ef55b9d427146458ff0e592004f7e11a7c0d0457da92386886fd07add0c84de89099b03db19a525705c1d9395bf2575c0be65267587 + sha512sums = c74f51d2f6897ef0cb38f1ce7ac637352f9866f53bf491c2af86c80dbf73c4c80818dedd1d06cdb381ea73d115b875266a198f1a806ceda494ba735aade00215 + sha512sums = f8c5674aeea993387d32672014ec7cffc8616ecfa5027c6da5e737754ffdf4b8fd00d5a99a7f5a67683b21159236d3131b93ebd70b64ecc9aa0042898f3bd020 + +pkgname = sxmo-utils-git + depends = bc + depends = curl + depends = gawk + depends = gojq + depends = less + depends = net-tools + depends = pnc + depends = callaudiod + depends = opendoas + depends = geoclue + depends = inotify-tools + depends = mmsd-tng + depends = mnc + depends = modemmanager + depends = ncurses + depends = networkmanager + depends = vvmd + depends = xdg-user-dirs + depends = alsa-utils + depends = bluez + depends = bluez-utils + depends = libpulse + depends = pulseaudio + depends = pulseaudio-alsa + depends = conky + depends = dunst + depends = libnotify + depends = light + depends = lisgd + depends = mpv + depends = sxmo-ui + depends = ttf-dejavu-nerd + optdepends = bemenu-ncurses: sxmo menus over ssh + optdepends = bonsai: better multikey script + optdepends = clickclack: haptic feedback + optdepends = codemadness-frontends: Youtube & Reddit scripts + optdepends = iio-utils: proximitylock script + optdepends = mediainfo: sound recorder + optdepends = pipewire-pulse: recommended sound server + optdepends = sfeed: Rss and atom feeds + optdepends = vim: The default editor + optdepends = yt-dlp: Play videos from the web + provides = sxmo-utils + conflicts = sxmo-utils + backup = etc/doas.conf + +pkgname = sxmo-utils-sway-git + pkgdesc = Use sway as the window manager with sxmo + url = https://sr.ht/~mil/Sxmo/ + arch = any + depends = bemenu-wayland + depends = foot + depends = grim + depends = mako + depends = slurp + depends = sway + depends = swaybg + depends = swayidle + depends = sxmo-utils-git + depends = wl-clipboard + depends = wob + depends = wtype + depends = wvkbd + depends = xorg-xwayland + optdepends = sway-git: better touch event handling + provides = sxmo-utils-sway + conflicts = sxmo-utils-sway diff --git a/00-sxmo.rules b/00-sxmo.rules new file mode 100644 index 000000000000..8d3bbe2b7186 --- /dev/null +++ b/00-sxmo.rules @@ -0,0 +1,15 @@ +polkit.addRule(function(action, subject) { + if (action.id.indexOf("org.freedesktop.ModemManager1.") == 0 && + subject.isInGroup("network")) { + + return polkit.Result.YES; + } +}); + +polkit.addRule(function(action, subject) { + if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && + subject.isInGroup("network")) { + + return polkit.Result.YES; + } +}); diff --git a/0001-alias-superd-to-systemd-user.patch b/0001-alias-superd-to-systemd-user.patch new file mode 100644 index 000000000000..deb30825a43e --- /dev/null +++ b/0001-alias-superd-to-systemd-user.patch @@ -0,0 +1,71 @@ +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-sh-to-resolve-hooks-in-services.patch b/0002-Use-sh-to-resolve-hooks-in-services.patch new file mode 100644 index 000000000000..7ce388221259 --- /dev/null +++ b/0002-Use-sh-to-resolve-hooks-in-services.patch @@ -0,0 +1,35 @@ +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/0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch b/0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch new file mode 100644 index 000000000000..deb04493f32e --- /dev/null +++ b/0003-Use-KillMode-process-so-systemd-doesn-t-stop-apps.patch @@ -0,0 +1,24 @@ +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/0004-Remove-services-that-systemd-automatically-starts-fr.patch b/0004-Remove-services-that-systemd-automatically-starts-fr.patch new file mode 100644 index 000000000000..8d79159b5bdc --- /dev/null +++ b/0004-Remove-services-that-systemd-automatically-starts-fr.patch @@ -0,0 +1,34 @@ +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-Separate-services-that-are-provided-by-external-pack.patch b/0005-Separate-services-that-are-provided-by-external-pack.patch new file mode 100644 index 000000000000..4345cf6b0c16 --- /dev/null +++ b/0005-Separate-services-that-are-provided-by-external-pack.patch @@ -0,0 +1,199 @@ +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-Add-BindsTo-to-services-so-they-stop-when-the-graphi.patch b/0006-Add-BindsTo-to-services-so-they-stop-when-the-graphi.patch new file mode 100644 index 000000000000..962d56c03746 --- /dev/null +++ b/0006-Add-BindsTo-to-services-so-they-stop-when-the-graphi.patch @@ -0,0 +1,216 @@ +From 70b602bca76652ee21c6807b6fefee0836cc1211 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 + graphical session ends + +--- + configs/services/autocutsel-primary.service | 1 + + configs/services/autocutsel.service | 1 + + configs/services/bonsaid.service | 1 + + configs/services/sxmo-x11-status.service | 1 + + configs/services/sxmo_autosuspend.service | 1 + + configs/services/sxmo_battery_monitor.service | 1 + + configs/services/sxmo_conky.service | 1 + + configs/services/sxmo_desktop_widget.service | 1 + + configs/services/sxmo_hook_lisgd.service | 1 + + configs/services/sxmo_menumode_toggler.service | 1 + + configs/services/sxmo_modemmonitor.service | 1 + + configs/services/sxmo_networkmonitor.service | 1 + + configs/services/sxmo_notificationmonitor.service | 1 + + configs/services/sxmo_soundmonitor.service | 1 + + configs/services/sxmo_wob.service | 1 + + configs/services/unclutter-xfixes.service | 1 + + configs/services/unclutter.service | 1 + + 17 files changed, 17 insertions(+) + +diff --git a/configs/services/autocutsel-primary.service b/configs/services/autocutsel-primary.service +index 9574e09..869e422 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 + + [Service] + Type=simple +diff --git a/configs/services/autocutsel.service b/configs/services/autocutsel.service +index c97dc64..a9ad01b 100644 +--- a/configs/services/autocutsel.service ++++ b/configs/services/autocutsel.service +@@ -1,5 +1,6 @@ + [Unit] + Description=automated xcutsel ++BindsTo=graphical-session.target + + [Service] + Type=simple +diff --git a/configs/services/bonsaid.service b/configs/services/bonsaid.service +index f17fa1a..1093453 100644 +--- a/configs/services/bonsaid.service ++++ b/configs/services/bonsaid.service +@@ -1,5 +1,6 @@ + [Unit] + Description=Bonsai daemon ++BindsTo=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 +--- 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_autosuspend.service b/configs/services/sxmo_autosuspend.service +index 86ce1bc..b1949f8 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_battery_monitor.service b/configs/services/sxmo_battery_monitor.service +index 1918ba5..54d902a 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_conky.service b/configs/services/sxmo_conky.service +index de8b83e..79b7e93 100644 +--- a/configs/services/sxmo_conky.service ++++ b/configs/services/sxmo_conky.service +@@ -1,5 +1,6 @@ + [Unit] + Description=Conky ++BindsTo=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 +--- 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_hook_lisgd.service b/configs/services/sxmo_hook_lisgd.service +index c671235..277b410 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_menumode_toggler.service b/configs/services/sxmo_menumode_toggler.service +index d6c949e..6264bf4 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_modemmonitor.service b/configs/services/sxmo_modemmonitor.service +index 53171ef..9daf547 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_networkmonitor.service b/configs/services/sxmo_networkmonitor.service +index cc30f48..dcc4887 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_notificationmonitor.service b/configs/services/sxmo_notificationmonitor.service +index 4d6033a..78d9c13 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_soundmonitor.service b/configs/services/sxmo_soundmonitor.service +index 1f759f3..cf6f6c0 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 + + [Service] + Type=simple +diff --git a/configs/services/sxmo_wob.service b/configs/services/sxmo_wob.service +index 600646f..97a2e23 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 + + [Service] + Type=simple +diff --git a/configs/services/unclutter-xfixes.service b/configs/services/unclutter-xfixes.service +index 3125786..c6de932 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 + + [Service] + Type=simple +diff --git a/configs/services/unclutter.service b/configs/services/unclutter.service +index f987ac3..f0c262c 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 + + [Service] + Type=simple +-- +2.39.2 + diff --git a/0007-start-stop-graphical-session.target.patch b/0007-start-stop-graphical-session.target.patch new file mode 100644 index 000000000000..7c8697ac572e --- /dev/null +++ b/0007-start-stop-graphical-session.target.patch @@ -0,0 +1,64 @@ +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/0008-Fix-quoting-of-strings-in-service-files.patch b/0008-Fix-quoting-of-strings-in-service-files.patch new file mode 100644 index 000000000000..1d5b3d84fa41 --- /dev/null +++ b/0008-Fix-quoting-of-strings-in-service-files.patch @@ -0,0 +1,36 @@ +From 2734e9a561ad5c192acb45d21335c1f64a3a2db3 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 + +Systemd doesn't like these variables without curly braces around them. +--- + configs/services/bonsaid.service | 4 ++-- + configs/services/sxmo_conky.service | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configs/services/bonsaid.service b/configs/services/bonsaid.service +index 1093453..cc474f5 100644 +--- a/configs/services/bonsaid.service ++++ b/configs/services/bonsaid.service +@@ -5,5 +5,5 @@ BindsTo=graphical-session.target + [Service] + Type=simple + Restart=always +-ExecStartPre=rm -f $XDG_RUNTIME_DIR/bonsai +-ExecStart=bonsaid -t $XDG_CONFIG_HOME/sxmo/bonsai_tree.json ++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 +--- a/configs/services/sxmo_conky.service ++++ b/configs/services/sxmo_conky.service +@@ -5,4 +5,4 @@ BindsTo=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 + diff --git a/0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch b/0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch new file mode 100644 index 000000000000..0dbeb28e1bbc --- /dev/null +++ b/0009-Simplify-handling-of-XDG_RUNTIME_DIR.patch @@ -0,0 +1,88 @@ +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/10-sxmo.conf b/10-sxmo.conf new file mode 100644 index 000000000000..d86b866292f6 --- /dev/null +++ b/10-sxmo.conf @@ -0,0 +1,2 @@ +[Login] +HandlePowerKey=ignore diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..a68599acc4a8 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,158 @@ +# Maintainer: Aren <rn+aur@peacevolution.org> +# Contributor: dni <office@dnilabs.com> + +pkgname=('sxmo-utils-git' 'sxmo-utils-sway-git') +pkgver=1.14.1.r4.e8ddbc8 +pkgrel=1 +pkgdesc="Utility scripts, programs, and configs that hold the sxmo UI environment together" +url="https://git.sr.ht/~mil/sxmo-utils" +arch=('x86_64' 'aarch64') +license=('AGPL3') +makedepends=('libx11' 'xorgproto' 'linux-headers' 'busybox' 'scdoc' 'git') +source=("git+https://git.sr.ht/~mil/sxmo-utils" + '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') +sha512sums=('SKIP' + '8a21e62b7ff0982a5406e98510a3004c62f883b9fae0cad5b63f6a7df520896b65c726321da515dab754a91ed94280922e3f424ecc983c1a33eb1ec287b268a2' + 'b69a09f98f8a5cad8164cd48c5f6a78f2ce0e9818fb77ccf2a3e243cd0f2023e438022b20aad9e6b5edd90e1bb862326db79dc423630682d4c43e897090d3da1' + '532c3045f52f872704876bdf56afbc7470c5d17e46655dd4040d545b6d3eb34a8791909e554c560471f9494c7382107839bcff1e48be242d5eea0092482165cd' + '5eeb6a2d1ab9c4811b5bf602f00e2cc075b86f6a301110730b81850865443696d7a99e19432a53048017295c1d13de46dd897bd646be168903f34ee80128be37' + '0a872028c1f3b9853a9c1e0c6c659612e1ecb8f1e83b6c1e3ef22e120c04d4347af9ab6987110fa22576b6fce20dd26cf5734725094df46e97bb89764a96f54e' + '222696d8872dac5a6e72efb72fa058c116b6cbfbb889b727ba4abdaed5c4c5cbe64d5ff71fd1a90c16a14f4c4f9455440652b7c7a046a1b02fc1a444c3f950fb' + 'd847b56a8a6a1f4e500f09ed1d7976a8ac7d24144e0c5265f5d72af46d211d32e676b69c33e3fd29ccbfb36080d521ea1719f41a8a06fd6a18318e01c5570ad5' + 'c7d9317313a9333e8cb52ef55b9d427146458ff0e592004f7e11a7c0d0457da92386886fd07add0c84de89099b03db19a525705c1d9395bf2575c0be65267587' + 'c74f51d2f6897ef0cb38f1ce7ac637352f9866f53bf491c2af86c80dbf73c4c80818dedd1d06cdb381ea73d115b875266a198f1a806ceda494ba735aade00215' + 'f8c5674aeea993387d32672014ec7cffc8616ecfa5027c6da5e737754ffdf4b8fd00d5a99a7f5a67683b21159236d3131b93ebd70b64ecc9aa0042898f3bd020') + +pkgver() { + cd "sxmo-utils" + printf "%s" "$(git describe --long --tags | sed 's/\([^-]*-\)g/r\1/;s/-/./g')" +} + +prepare() { + cd "sxmo-utils" + + for patch in ../*.patch; do + echo "applying: $patch" + patch -p1 < "$patch" + done +} + +build() { + cd "sxmo-utils" + + make +} + +package_sxmo-utils-git() { + backup=('etc/doas.conf') + depends=( + # Shell utilities + 'bc' + 'curl' + 'gawk' + 'gojq' + 'less' + 'net-tools' # netstat command + 'pnc' + + # Core dependcies + 'callaudiod' + 'opendoas' + 'geoclue' + 'inotify-tools' + 'mmsd-tng' + 'mnc' # for suspend + 'modemmanager' + 'ncurses' # for the weather script + 'networkmanager' + 'vvmd' + 'xdg-user-dirs' + + # Audio + 'alsa-utils' + 'bluez' + 'bluez-utils' + 'libpulse' + 'pulseaudio' + 'pulseaudio-alsa' + + # Core GUI dependencies + 'conky' + 'dunst' + 'libnotify' + 'light' + 'lisgd' + 'mpv' + 'sxmo-ui' + 'ttf-dejavu-nerd') + optdepends=('bemenu-ncurses: sxmo menus over ssh' + 'bonsai: better multikey script' + 'clickclack: haptic feedback' + 'codemadness-frontends: Youtube & Reddit scripts' + 'iio-utils: proximitylock script' + 'mediainfo: sound recorder' + 'pipewire-pulse: recommended sound server' + 'sfeed: Rss and atom feeds' + 'vim: The default editor' + 'yt-dlp: Play videos from the web') + provides=('sxmo-utils') + conflicts=('sxmo-utils') + + make -C "sxmo-utils" \ + OPENRC=0 \ + DESTDIR="$pkgdir" \ + EXTERNAL_SERVICES=0 \ + SERVICEDIR=/usr/lib/systemd/user \ + install-scripts + + # Allow access to ModemManager and NetworkManager + install -Dm644 -t "$pkgdir/usr/share/polkit-1/rules.d" "00-sxmo.rules" + + # Prevent logind from handling the power button + install -Dm644 -t "$pkgdir/etc/systemd/logind.conf.d" "10-sxmo.conf" + + # Fixup mode to match polkit + install -d -o root -g 102 -m 750 "$pkgdir/usr/share/polkit-1/rules.d" + + # fix directory permissions, TODO this should be done upstream + chmod 750 "$pkgdir/etc/doas.d" + + # HACK: doas is built without --with-doas-confdir so install the sxmo config directly + install -Dm640 "$pkgdir/etc/doas.d/sxmo.conf" "$pkgdir/etc/doas.conf" + + install -Dm644 "$srcdir/sxmo-setpermissions.service" "$pkgdir/usr/lib/systemd/system/sxmo-setpermissions.service" +} + +package_sxmo-utils-sway-git() { + pkgdesc="Use sway as the window manager with sxmo" + url="https://sr.ht/~mil/Sxmo/" + arch=('any') + provides=('sxmo-utils-sway') + conflicts=('sxmo-utils-sway') + depends=('bemenu-wayland' + 'foot' + 'grim' + 'mako' + 'slurp' + 'sway' + 'swaybg' + 'swayidle' + 'sxmo-utils-git' + 'wl-clipboard' + 'wob' + 'wtype' + 'wvkbd' + 'xorg-xwayland') + optdepends=('sway-git: better touch event handling') + + make -C "sxmo-utils" DESTDIR="$pkgdir" install-sway +} diff --git a/sxmo-setpermissions.service b/sxmo-setpermissions.service new file mode 100644 index 000000000000..2686158f70c2 --- /dev/null +++ b/sxmo-setpermissions.service @@ -0,0 +1,6 @@ +[Unit] +Description=sxmo-pinephone +[Service] +ExecStart=/usr/bin/sxmo_setpermissions.sh +[Install] +WantedBy=multi-user.target |