128 lines
4.5 KiB
Org Mode
128 lines
4.5 KiB
Org Mode
* [2024-06-28 Fri]
|
|
** well, i'm setting up sbcl and sly?
|
|
because i imagine using Common Lisp for my attempt at building screen
|
|
sharing for the XR glasses
|
|
|
|
for the cool runtime access, right?
|
|
** well, just flake shell and (use-package sly) is enough
|
|
for .lisp files to get stuff
|
|
|
|
yes, i'm still using C-M-f and stuff to move around sexps but things are fine
|
|
|
|
so, what's next?
|
|
well, this is nice high level description
|
|
dbus
|
|
https://www.freedesktop.org/wiki/Software/dbus/
|
|
|
|
and here's something to start usage
|
|
https://blog.macrolet.net/posts/DBus-and-PolicyKit-from-Common-Lisp.html
|
|
from https://github.com/death/dbus
|
|
|
|
and even lots of examples, but i think i will need a big book on Common Lisp to learn new things?
|
|
* [2024-06-29 Sat]
|
|
** going through the dbus guide, sounds neat
|
|
https://develop.kde.org/docs/features/d-bus/introduction_to_dbus/
|
|
|
|
that qdbus and qdbus-viewer are in
|
|
#+begin_src bash
|
|
$ nix shell nixpkgs#kdePackages.qttools
|
|
#+end_src
|
|
|
|
** now let's read about calling methods
|
|
|
|
* the receiving of the signals
|
|
|
|
* all the different tabs i had
|
|
|
|
** searching github for 'get-managed-objects usage
|
|
https://github.com/search?q=get-managed-objects&type=code
|
|
|
|
** searchin github for 'define-singlan-handler usage examples
|
|
https://github.com/search?q=dbus%3Adefine-dbus-signal-handler&type=code
|
|
|
|
** example in cl-notify of calling a method 'with-introspected-object
|
|
https://github.com/Lautaro-Garcia/cl-notify/blob/main/src/dbus-protocol.lisp#L27
|
|
#+begin_src lisp
|
|
(defmacro with-dbus-method-inovaction ((result-var method &rest args) &body body)
|
|
(alexandria:with-gensyms (bus notifications-object)
|
|
`(dbus:with-open-bus (,bus (dbus:session-server-addresses))
|
|
(dbus:with-introspected-object (,notifications-object ,bus "/org/freedesktop/Notifications" "org.freedesktop.Notifications")
|
|
(let ((,result-var (,notifications-object "org.freedesktop.Notifications" ,method ,@args)))
|
|
,@body)))))
|
|
#+end_src
|
|
|
|
** example in cl-notify of working with signals
|
|
https://github.com/Lautaro-Garcia/cl-notify/blob/main/src/signals.lisp
|
|
|
|
they register single handler, and add callbacks dynamically & call
|
|
them from the registered function
|
|
|
|
** dbus library example for publishing objects
|
|
https://github.com/death/dbus/blob/master/examples/publish.lisp
|
|
|
|
** my request for help with interactive async calls
|
|
https://github.com/death/dbus/issues/31
|
|
|
|
** old ticket on dbus repo about enabling introspection
|
|
https://github.com/death/dbus/issues/23
|
|
|
|
** example of signal-handler in stumpwm-thingy
|
|
https://github.com/lokedhs/stumpwm-dbus/blob/9cf0b52876111e777da27a42e3c81269b97c0005/src/pidgin.lisp#L16
|
|
|
|
** ref for symbold in dbus package
|
|
https://quickref.common-lisp.net/dbus.html#The-dbus_002fconnections-system
|
|
|
|
** blog article with basics of usage
|
|
https://blog.macrolet.net/posts/DBus-and-PolicyKit-from-Common-Lisp.html
|
|
|
|
** big article about iolib
|
|
https://pages.cs.wisc.edu/~psilord/blog/data/iolib-tutorial/tutorial.html
|
|
|
|
it's the one that's used to create multiplexer for communication
|
|
i tried to figure out what it means to have event-loops
|
|
|
|
** docs on dbus Screenshots portal
|
|
https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.Screenshot.html
|
|
|
|
the methods and stuff
|
|
|
|
** docs on dbus type system
|
|
https://dbus.freedesktop.org/doc/dbus-specification.html#type-system
|
|
|
|
i.e how to understand types of methods and properties
|
|
|
|
#+begin_src lisp
|
|
CL-USER> (dbus:sigexp "xsaysas")
|
|
(:INT64 :STRING (:ARRAY :BYTE) :STRING (:ARRAY :STRING))
|
|
#+end_src
|
|
|
|
function signature explanation can show what should lisp types be
|
|
https://github.com/death/dbus/issues/17#issuecomment-418920440
|
|
|
|
** example of flameshot how they get Screenshot via dbus
|
|
https://github.com/flameshot-org/flameshot/blob/c1dac52231024174faa68a29577129ebca125dff/src/utils/screengrabber.cpp#L59
|
|
|
|
** dbus methods for Notification
|
|
https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html#signals
|
|
|
|
|
|
** dbus methods of ScreenCast
|
|
https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.ScreenCast.html
|
|
how to start them etc
|
|
|
|
** dbus spec on Request & Response for the async methods
|
|
https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.Request.html#org-freedesktop-portal-request
|
|
|
|
** repo for xdg-portal for wayland
|
|
https://github.com/emersion/xdg-desktop-portal-wlr
|
|
|
|
** the python snippet to check that ScreenCast via xdg-portal works
|
|
https://gitlab.gnome.org/-/snippets/19
|
|
|
|
* [2024-07-20 Sat]
|
|
|
|
** and now i want to try to get display of stuff into gtk window, i guess
|
|
|
|
** doc about cl bindings to gtk3
|
|
https://www.crategus.com/books/cl-gtk/gtk-tutorial.html#example-window-simple-c
|