(use extras dbus) (define udisks-context (make-context bus: system-bus interface: 'org.freedesktop.UDisks service: 'org.freedesktop.UDisks path: '/org/freedesktop/UDisks)) ;; This works ;; (print (call udisks-context "EnumerateDevices")) (enable-polling-thread! bus: system-bus) (register-method udisks-context "DeviceAdded" (lambda args (printf "DeviceAdded args: ~S" args))) (poll-for-message bus: system-bus) ;; $ csi -s udisks.scm ;; ;; Error: (assq) bad argument type: #f ;; ;; Call history: ;; ;; (##core#quote org.freedesktop.UDisks) ;; (quote org.freedesktop.UDisks) ;; (##core#quote org.freedesktop.UDisks) ;; (quote /org/freedesktop/UDisks) ;; (##core#quote /org/freedesktop/UDisks) ;; (make-context bus: system-bus interface: (quote org.freedesktop.UDisks) service: (quote org.freedesk...... ;; (enable-polling-thread! bus: system-bus) ;; (enable-polling-thread! bus: system-bus) ;; (register-method udisks-context "DeviceAdded" (lambda args (printf "DeviceAdded args: ~S" args))) ;; (lambda args (printf "DeviceAdded args: ~S" args)) ;; (##core#lambda args (printf "DeviceAdded args: ~S" args)) ;; (##core#begin (printf "DeviceAdded args: ~S" args)) ;; (printf "DeviceAdded args: ~S" args) ;; (register-method udisks-context "DeviceAdded" (lambda args (printf "DeviceAdded args: ~S" args))) ;; (poll-for-message bus: system-bus) ;; (poll-for-message bus: system-bus) <--