mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-05 21:15:38 -05:00
Add DMS dbus notification service file
This commit is contained in:
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -599,6 +599,9 @@ jobs:
|
|||||||
|
|
||||||
install -Dm644 assets/systemd/dms.service %{buildroot}%{_userunitdir}/dms.service
|
install -Dm644 assets/systemd/dms.service %{buildroot}%{_userunitdir}/dms.service
|
||||||
|
|
||||||
|
# Install DBus service activation file
|
||||||
|
install -Dm644 assets/dbus/org.freedesktop.Notifications.service %{buildroot}%{_datadir}/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
|
|
||||||
install -Dm644 assets/dms-open.desktop %{buildroot}%{_datadir}/applications/dms-open.desktop
|
install -Dm644 assets/dms-open.desktop %{buildroot}%{_datadir}/applications/dms-open.desktop
|
||||||
install -Dm644 assets/danklogo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
install -Dm644 assets/danklogo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
||||||
|
|
||||||
@@ -628,6 +631,7 @@ jobs:
|
|||||||
%doc README.md CONTRIBUTING.md
|
%doc README.md CONTRIBUTING.md
|
||||||
%{_datadir}/quickshell/dms/
|
%{_datadir}/quickshell/dms/
|
||||||
%{_userunitdir}/dms.service
|
%{_userunitdir}/dms.service
|
||||||
|
%{_datadir}/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
%{_datadir}/applications/dms-open.desktop
|
%{_datadir}/applications/dms-open.desktop
|
||||||
%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
||||||
|
|
||||||
|
|||||||
20
Makefile
20
Makefile
@@ -18,7 +18,7 @@ SHELL_INSTALL_DIR=$(DATA_DIR)/quickshell/dms
|
|||||||
ASSETS_DIR=assets
|
ASSETS_DIR=assets
|
||||||
APPLICATIONS_DIR=$(DATA_DIR)/applications
|
APPLICATIONS_DIR=$(DATA_DIR)/applications
|
||||||
|
|
||||||
.PHONY: all build clean install install-bin install-shell install-completions install-systemd install-icon install-desktop uninstall uninstall-bin uninstall-shell uninstall-completions uninstall-systemd uninstall-icon uninstall-desktop help
|
.PHONY: all build clean install install-bin install-shell install-completions install-systemd install-dbus install-icon install-desktop uninstall uninstall-bin uninstall-shell uninstall-completions uninstall-systemd uninstall-dbus uninstall-icon uninstall-desktop help
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
@@ -65,6 +65,11 @@ install-systemd:
|
|||||||
@if [ -n "$(SUDO_USER)" ]; then chown $(SUDO_USER):$(SUDO_USER) $(SYSTEMD_USER_DIR)/dms.service; fi
|
@if [ -n "$(SUDO_USER)" ]; then chown $(SUDO_USER):$(SUDO_USER) $(SYSTEMD_USER_DIR)/dms.service; fi
|
||||||
@echo "Systemd service installed to $(SYSTEMD_USER_DIR)/dms.service"
|
@echo "Systemd service installed to $(SYSTEMD_USER_DIR)/dms.service"
|
||||||
|
|
||||||
|
install-dbus:
|
||||||
|
@echo "Installing DBus service activation file..."
|
||||||
|
@install -D -m 644 $(ASSETS_DIR)/dbus/org.freedesktop.Notifications.service $(DATA_DIR)/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
|
@echo "DBus service installed"
|
||||||
|
|
||||||
install-icon:
|
install-icon:
|
||||||
@echo "Installing icon..."
|
@echo "Installing icon..."
|
||||||
@install -D -m 644 $(ASSETS_DIR)/danklogo.svg $(ICON_DIR)/danklogo.svg
|
@install -D -m 644 $(ASSETS_DIR)/danklogo.svg $(ICON_DIR)/danklogo.svg
|
||||||
@@ -77,11 +82,11 @@ install-desktop:
|
|||||||
@update-desktop-database -q $(APPLICATIONS_DIR) 2>/dev/null || true
|
@update-desktop-database -q $(APPLICATIONS_DIR) 2>/dev/null || true
|
||||||
@echo "Desktop entry installed"
|
@echo "Desktop entry installed"
|
||||||
|
|
||||||
install: build install-bin install-shell install-completions install-systemd install-icon install-desktop
|
install: build install-bin install-shell install-completions install-systemd install-dbus install-icon install-desktop
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Installation complete!"
|
@echo "Installation complete!"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "=== The DMS Team! ==="
|
@echo "=== Cheers, the DMS Team! ==="
|
||||||
|
|
||||||
# Uninstallation targets
|
# Uninstallation targets
|
||||||
uninstall-bin:
|
uninstall-bin:
|
||||||
@@ -107,6 +112,11 @@ uninstall-systemd:
|
|||||||
@echo "Systemd service removed"
|
@echo "Systemd service removed"
|
||||||
@echo "Note: Stop/disable service manually if running: systemctl --user stop dms"
|
@echo "Note: Stop/disable service manually if running: systemctl --user stop dms"
|
||||||
|
|
||||||
|
uninstall-dbus:
|
||||||
|
@echo "Removing DBus service activation file..."
|
||||||
|
@rm -f $(DATA_DIR)/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
|
@echo "DBus service removed"
|
||||||
|
|
||||||
uninstall-icon:
|
uninstall-icon:
|
||||||
@echo "Removing icon..."
|
@echo "Removing icon..."
|
||||||
@rm -f $(ICON_DIR)/danklogo.svg
|
@rm -f $(ICON_DIR)/danklogo.svg
|
||||||
@@ -119,7 +129,7 @@ uninstall-desktop:
|
|||||||
@update-desktop-database -q $(APPLICATIONS_DIR) 2>/dev/null || true
|
@update-desktop-database -q $(APPLICATIONS_DIR) 2>/dev/null || true
|
||||||
@echo "Desktop entry removed"
|
@echo "Desktop entry removed"
|
||||||
|
|
||||||
uninstall: uninstall-systemd uninstall-desktop uninstall-icon uninstall-completions uninstall-shell uninstall-bin
|
uninstall: uninstall-systemd uninstall-dbus uninstall-desktop uninstall-icon uninstall-completions uninstall-shell uninstall-bin
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Uninstallation complete!"
|
@echo "Uninstallation complete!"
|
||||||
|
|
||||||
@@ -138,6 +148,7 @@ help:
|
|||||||
@echo " install-shell - Install only shell files"
|
@echo " install-shell - Install only shell files"
|
||||||
@echo " install-completions - Install only shell completions"
|
@echo " install-completions - Install only shell completions"
|
||||||
@echo " install-systemd - Install only systemd service"
|
@echo " install-systemd - Install only systemd service"
|
||||||
|
@echo " install-dbus - Install only DBus service activation file"
|
||||||
@echo " install-icon - Install only icon"
|
@echo " install-icon - Install only icon"
|
||||||
@echo " install-desktop - Install only desktop entry"
|
@echo " install-desktop - Install only desktop entry"
|
||||||
@echo ""
|
@echo ""
|
||||||
@@ -147,6 +158,7 @@ help:
|
|||||||
@echo " uninstall-shell - Remove only shell files"
|
@echo " uninstall-shell - Remove only shell files"
|
||||||
@echo " uninstall-completions - Remove only shell completions"
|
@echo " uninstall-completions - Remove only shell completions"
|
||||||
@echo " uninstall-systemd - Remove only systemd service"
|
@echo " uninstall-systemd - Remove only systemd service"
|
||||||
|
@echo " uninstall-dbus - Remove only DBus service activation file"
|
||||||
@echo " uninstall-icon - Remove only icon"
|
@echo " uninstall-icon - Remove only icon"
|
||||||
@echo " uninstall-desktop - Remove only desktop entry"
|
@echo " uninstall-desktop - Remove only desktop entry"
|
||||||
@echo ""
|
@echo ""
|
||||||
|
|||||||
4
assets/dbus/org.freedesktop.Notifications.service
Normal file
4
assets/dbus/org.freedesktop.Notifications.service
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[D-BUS Service]
|
||||||
|
Name=org.freedesktop.Notifications
|
||||||
|
Exec=/usr/bin/dms run --session
|
||||||
|
SystemdService=dms.service
|
||||||
@@ -6,6 +6,7 @@ Requisite=graphical-session.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
|
BusName=org.freedesktop.Notifications
|
||||||
ExecStart=/usr/bin/dms run --session
|
ExecStart=/usr/bin/dms run --session
|
||||||
ExecReload=/usr/bin/pkill -USR1 -x dms
|
ExecReload=/usr/bin/pkill -USR1 -x dms
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ override_dh_auto_install:
|
|||||||
if [ -d quickshell ]; then \
|
if [ -d quickshell ]; then \
|
||||||
cp -r quickshell/* debian/dms-git/usr/share/quickshell/dms/; \
|
cp -r quickshell/* debian/dms-git/usr/share/quickshell/dms/; \
|
||||||
install -Dm644 assets/systemd/dms.service debian/dms-git/usr/lib/systemd/user/dms.service; \
|
install -Dm644 assets/systemd/dms.service debian/dms-git/usr/lib/systemd/user/dms.service; \
|
||||||
|
install -Dm644 assets/dbus/org.freedesktop.Notifications.service debian/dms-git/usr/share/dbus-1/services/org.freedesktop.Notifications.service; \
|
||||||
install -Dm644 assets/dms-open.desktop debian/dms-git/usr/share/applications/dms-open.desktop; \
|
install -Dm644 assets/dms-open.desktop debian/dms-git/usr/share/applications/dms-open.desktop; \
|
||||||
install -Dm644 assets/danklogo.svg debian/dms-git/usr/share/icons/hicolor/scalable/apps/danklogo.svg; \
|
install -Dm644 assets/danklogo.svg debian/dms-git/usr/share/icons/hicolor/scalable/apps/danklogo.svg; \
|
||||||
else \
|
else \
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ override_dh_auto_install:
|
|||||||
if [ -d DankMaterialShell-$(UPSTREAM_VERSION) ]; then \
|
if [ -d DankMaterialShell-$(UPSTREAM_VERSION) ]; then \
|
||||||
cp -r DankMaterialShell-$(UPSTREAM_VERSION)/quickshell/* debian/dms/usr/share/quickshell/dms/; \
|
cp -r DankMaterialShell-$(UPSTREAM_VERSION)/quickshell/* debian/dms/usr/share/quickshell/dms/; \
|
||||||
install -Dm644 DankMaterialShell-$(UPSTREAM_VERSION)/assets/systemd/dms.service debian/dms/usr/lib/systemd/user/dms.service; \
|
install -Dm644 DankMaterialShell-$(UPSTREAM_VERSION)/assets/systemd/dms.service debian/dms/usr/lib/systemd/user/dms.service; \
|
||||||
|
install -Dm644 DankMaterialShell-$(UPSTREAM_VERSION)/assets/dbus/org.freedesktop.Notifications.service debian/dms/usr/share/dbus-1/services/org.freedesktop.Notifications.service; \
|
||||||
install -Dm644 DankMaterialShell-$(UPSTREAM_VERSION)/assets/dms-open.desktop debian/dms/usr/share/applications/dms-open.desktop; \
|
install -Dm644 DankMaterialShell-$(UPSTREAM_VERSION)/assets/dms-open.desktop debian/dms/usr/share/applications/dms-open.desktop; \
|
||||||
install -Dm644 DankMaterialShell-$(UPSTREAM_VERSION)/assets/danklogo.svg debian/dms/usr/share/icons/hicolor/scalable/apps/danklogo.svg; \
|
install -Dm644 DankMaterialShell-$(UPSTREAM_VERSION)/assets/danklogo.svg debian/dms/usr/share/icons/hicolor/scalable/apps/danklogo.svg; \
|
||||||
else \
|
else \
|
||||||
|
|||||||
@@ -132,17 +132,16 @@ core/bin/${DMS_BINARY} completion fish > %{buildroot}%{_datadir}/fish/vendor_com
|
|||||||
# Install dgop binary
|
# Install dgop binary
|
||||||
install -Dm755 %{_builddir}/dgop %{buildroot}%{_bindir}/dgop
|
install -Dm755 %{_builddir}/dgop %{buildroot}%{_bindir}/dgop
|
||||||
|
|
||||||
# Install systemd user service
|
# Install systemd & dbus user service
|
||||||
install -Dm644 assets/systemd/dms.service %{buildroot}%{_userunitdir}/dms.service
|
install -Dm644 assets/systemd/dms.service %{buildroot}%{_userunitdir}/dms.service
|
||||||
|
install -Dm644 assets/dbus/org.freedesktop.Notifications.service %{buildroot}%{_datadir}/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
|
|
||||||
install -Dm644 assets/dms-open.desktop %{buildroot}%{_datadir}/applications/dms-open.desktop
|
install -Dm644 assets/dms-open.desktop %{buildroot}%{_datadir}/applications/dms-open.desktop
|
||||||
install -Dm644 assets/danklogo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
install -Dm644 assets/danklogo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
||||||
|
|
||||||
# Install shell files to shared data location
|
|
||||||
install -dm755 %{buildroot}%{_datadir}/quickshell/dms
|
install -dm755 %{buildroot}%{_datadir}/quickshell/dms
|
||||||
cp -r quickshell/* %{buildroot}%{_datadir}/quickshell/dms/
|
cp -r quickshell/* %{buildroot}%{_datadir}/quickshell/dms/
|
||||||
|
|
||||||
# Remove build files
|
|
||||||
rm -rf %{buildroot}%{_datadir}/quickshell/dms/.git*
|
rm -rf %{buildroot}%{_datadir}/quickshell/dms/.git*
|
||||||
rm -f %{buildroot}%{_datadir}/quickshell/dms/.gitignore
|
rm -f %{buildroot}%{_datadir}/quickshell/dms/.gitignore
|
||||||
rm -rf %{buildroot}%{_datadir}/quickshell/dms/.github
|
rm -rf %{buildroot}%{_datadir}/quickshell/dms/.github
|
||||||
@@ -163,6 +162,7 @@ fi
|
|||||||
%doc quickshell/README.md
|
%doc quickshell/README.md
|
||||||
%{_datadir}/quickshell/dms/
|
%{_datadir}/quickshell/dms/
|
||||||
%{_userunitdir}/dms.service
|
%{_userunitdir}/dms.service
|
||||||
|
%{_datadir}/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
%{_datadir}/applications/dms-open.desktop
|
%{_datadir}/applications/dms-open.desktop
|
||||||
%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
||||||
|
|
||||||
|
|||||||
@@ -90,6 +90,7 @@ install -d %{buildroot}%{_datadir}/fish/vendor_completions.d
|
|||||||
./dms completion fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/dms.fish || :
|
./dms completion fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/dms.fish || :
|
||||||
|
|
||||||
install -Dm644 assets/systemd/dms.service %{buildroot}%{_userunitdir}/dms.service
|
install -Dm644 assets/systemd/dms.service %{buildroot}%{_userunitdir}/dms.service
|
||||||
|
install -Dm644 assets/dbus/org.freedesktop.Notifications.service %{buildroot}%{_datadir}/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
|
|
||||||
install -Dm644 assets/dms-open.desktop %{buildroot}%{_datadir}/applications/dms-open.desktop
|
install -Dm644 assets/dms-open.desktop %{buildroot}%{_datadir}/applications/dms-open.desktop
|
||||||
install -Dm644 assets/danklogo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
install -Dm644 assets/danklogo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
||||||
@@ -130,6 +131,7 @@ fi
|
|||||||
%dir %{_datadir}/quickshell
|
%dir %{_datadir}/quickshell
|
||||||
%{_datadir}/quickshell/dms/
|
%{_datadir}/quickshell/dms/
|
||||||
%{_userunitdir}/dms.service
|
%{_userunitdir}/dms.service
|
||||||
|
%{_datadir}/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
%{_datadir}/applications/dms-open.desktop
|
%{_datadir}/applications/dms-open.desktop
|
||||||
%dir %{_datadir}/icons/hicolor
|
%dir %{_datadir}/icons/hicolor
|
||||||
%dir %{_datadir}/icons/hicolor/scalable
|
%dir %{_datadir}/icons/hicolor/scalable
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ install -d %{buildroot}%{_datadir}/fish/vendor_completions.d
|
|||||||
./dms completion fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/dms.fish || :
|
./dms completion fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/dms.fish || :
|
||||||
|
|
||||||
install -Dm644 assets/systemd/dms.service %{buildroot}%{_userunitdir}/dms.service
|
install -Dm644 assets/systemd/dms.service %{buildroot}%{_userunitdir}/dms.service
|
||||||
|
install -Dm644 assets/dbus/org.freedesktop.Notifications.service %{buildroot}%{_datadir}/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
|
|
||||||
install -Dm644 assets/dms-open.desktop %{buildroot}%{_datadir}/applications/dms-open.desktop
|
install -Dm644 assets/dms-open.desktop %{buildroot}%{_datadir}/applications/dms-open.desktop
|
||||||
install -Dm644 assets/danklogo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
install -Dm644 assets/danklogo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/danklogo.svg
|
||||||
@@ -100,6 +101,7 @@ fi
|
|||||||
%dir %{_datadir}/quickshell
|
%dir %{_datadir}/quickshell
|
||||||
%{_datadir}/quickshell/dms/
|
%{_datadir}/quickshell/dms/
|
||||||
%{_userunitdir}/dms.service
|
%{_userunitdir}/dms.service
|
||||||
|
%{_datadir}/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
%{_datadir}/applications/dms-open.desktop
|
%{_datadir}/applications/dms-open.desktop
|
||||||
%dir %{_datadir}/icons/hicolor
|
%dir %{_datadir}/icons/hicolor
|
||||||
%dir %{_datadir}/icons/hicolor/scalable
|
%dir %{_datadir}/icons/hicolor/scalable
|
||||||
|
|||||||
@@ -56,6 +56,10 @@ override_dh_auto_install:
|
|||||||
install -Dm644 dms-git-repo/assets/systemd/dms.service \
|
install -Dm644 dms-git-repo/assets/systemd/dms.service \
|
||||||
debian/dms-git/usr/lib/systemd/user/dms.service
|
debian/dms-git/usr/lib/systemd/user/dms.service
|
||||||
|
|
||||||
|
# Install DBus service activation file
|
||||||
|
install -Dm644 dms-git-repo/assets/dbus/org.freedesktop.Notifications.service \
|
||||||
|
debian/dms-git/usr/share/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
|
|
||||||
# Install desktop file and icon
|
# Install desktop file and icon
|
||||||
install -Dm644 dms-git-repo/assets/dms-open.desktop \
|
install -Dm644 dms-git-repo/assets/dms-open.desktop \
|
||||||
debian/dms-git/usr/share/applications/dms-open.desktop
|
debian/dms-git/usr/share/applications/dms-open.desktop
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ override_dh_auto_install:
|
|||||||
install -Dm644 DankMaterialShell-$(BASE_VERSION)/assets/systemd/dms.service \
|
install -Dm644 DankMaterialShell-$(BASE_VERSION)/assets/systemd/dms.service \
|
||||||
debian/dms/usr/lib/systemd/user/dms.service
|
debian/dms/usr/lib/systemd/user/dms.service
|
||||||
|
|
||||||
|
# Install DBus service activation file
|
||||||
|
install -Dm644 DankMaterialShell-$(BASE_VERSION)/assets/dbus/org.freedesktop.Notifications.service \
|
||||||
|
debian/dms/usr/share/dbus-1/services/org.freedesktop.Notifications.service
|
||||||
|
|
||||||
# Install desktop file and icon
|
# Install desktop file and icon
|
||||||
install -Dm644 DankMaterialShell-$(BASE_VERSION)/assets/dms-open.desktop \
|
install -Dm644 DankMaterialShell-$(BASE_VERSION)/assets/dms-open.desktop \
|
||||||
debian/dms/usr/share/applications/dms-open.desktop
|
debian/dms/usr/share/applications/dms-open.desktop
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ pragma ComponentBehavior: Bound
|
|||||||
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
import Quickshell.Services.Notifications
|
import Quickshell.Services.Notifications
|
||||||
import qs.Common
|
import qs.Common
|
||||||
import "../Common/markdown2html.js" as Markdown2Html
|
import "../Common/markdown2html.js" as Markdown2Html
|
||||||
@@ -253,6 +254,72 @@ Singleton {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Conflict detection for competing notification daemons
|
||||||
|
Timer {
|
||||||
|
id: conflictCheckTimer
|
||||||
|
interval: 3000
|
||||||
|
running: true
|
||||||
|
repeat: false
|
||||||
|
onTriggered: {
|
||||||
|
checkForCompetingDaemons.running = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Process {
|
||||||
|
id: checkForCompetingDaemons
|
||||||
|
command: ["sh", "-c", "pgrep -x 'mako|dunst|deadd-notification-center|swaync' || true"]
|
||||||
|
running: false
|
||||||
|
|
||||||
|
onExited: (exitCode, exitStatus) => {
|
||||||
|
if (stdout.trim() !== "") {
|
||||||
|
const pids = stdout.trim().split('\n');
|
||||||
|
console.warn("DMS: Detected competing notification daemon(s) running (PIDs: " + pids.join(", ") + ")");
|
||||||
|
console.warn("DMS: Attempting to terminate competing daemons...");
|
||||||
|
|
||||||
|
killCompetingDaemons.running = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Process {
|
||||||
|
id: killCompetingDaemons
|
||||||
|
command: ["sh", "-c", "pkill -x 'mako|dunst|deadd-notification-center|swaync' 2>/dev/null || true"]
|
||||||
|
running: false
|
||||||
|
|
||||||
|
onExited: (exitCode, exitStatus) => {
|
||||||
|
console.log("DMS: Attempted to terminate competing notification daemons");
|
||||||
|
Qt.callLater(() => {
|
||||||
|
verifyDaemonsKilled.running = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Process {
|
||||||
|
id: verifyDaemonsKilled
|
||||||
|
command: ["sh", "-c", "pgrep -x 'mako|dunst|deadd-notification-center|swaync' || true"]
|
||||||
|
running: false
|
||||||
|
|
||||||
|
onExited: (exitCode, exitStatus) => {
|
||||||
|
if (stdout.trim() !== "") {
|
||||||
|
const pids = stdout.trim().split('\n');
|
||||||
|
const pidList = pids.join(", ");
|
||||||
|
console.error("DMS: Failed to terminate competing notification daemons (PIDs: " + pidList + ")");
|
||||||
|
console.error("DMS: Notifications may not work correctly.");
|
||||||
|
console.error("DMS: To fix, run: systemctl --user mask mako.service dunst.service");
|
||||||
|
|
||||||
|
// Show user-visible alert via ToastService
|
||||||
|
ToastService.showWarning(
|
||||||
|
"Notification Conflict Detected",
|
||||||
|
"Another notification daemon (mako/dunst) is running. DMS attempted to stop it but failed.",
|
||||||
|
"systemctl --user mask mako.service dunst.service",
|
||||||
|
"notification-conflict"
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
console.log("DMS: Successfully claimed notification service");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
component NotifWrapper: QtObject {
|
component NotifWrapper: QtObject {
|
||||||
id: wrapper
|
id: wrapper
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user