;;;; +----------------------------------------------------------------+ ;;;; | DBUS | ;;;; +----------------------------------------------------------------+ (load (sb-ext:posix-getenv "ASDF")) (asdf:load-system 'dbus) (defpackage #:listening-response (:use #:cl #:dbus) (:export #:publish-example)) (in-package #:listening-response) (define-dbus-object root (:path "/")) (define-dbus-signal-handler (root response) () (:interface "org.freedesktop.portal.Request") (format t "Got signal with arg ~S~%" "yup") (force-output)) (defun listen-for-responses () (handler-case (with-open-bus (bus (session-server-addresses)) (format t "Bus connection name: ~A~%" (bus-name bus)) (dbus:add-match bus :type :signal :interface "org.freedesktop.portal.Request") (publish-objects bus)) (end-of-file () :disconnected-by-bus))) ; org.freedesktop.portal.Request ;; yep, works with ;; dbus-send --session --type=signal / org.freedesktop.portal.Request.Response ;; again, will need to register object on the expected response path