Hello! Liliana Marie Prikler <liliana.prik...@gmail.com> skribis:
> this comes a little late, as Gnome folks have decided that evaluating > arbitrary Javascript over DBus is perhaps not always the wisest idea¹, Too bad, what could possibly go wrong? [...] > Once you set the unsafe flag in Looking Glass and promise to be a very > good girl, you can now extract environment variables. > > $ herd getenv gnome PATH > > ;;; (reply #t "\"/gnu/store/s43dhx83c3a2g79vs5anf3wdmv9lwpi3-glib- > 2.70.2-bin/bin:/run/setuid- > programs:/home/yuri/.config/guix/current/bin:$HOME/.guix- > profile/bin:$HOME/.guix-profile/sbin:/run/current- > system/profile/bin:/run/current-system/profile/sbin\"") > > > If you were naughty and didn't do the magic dance, you get a rather > unhelpful result instead. > > $ herd getenv gnome PATH > > ;;; (reply #f "") This is super cool and super useful. Is there some way we could achieve this (getenv/setenv in the GNOME Shell process) without resorting to JS? (💡 Did you know? On GNU/Hurd, each process implements the “msg” RPC interface, which, among other things, lets you inspect and change its environment variables! If you have a childhurd running, try something like: “msgport --getenv=PATH -p $$”.) > Anyway, we can now talk to DBus services from Shepherd, although doing > so is currently a bit of a pain in the buttocks. Much of this is due > to guile-ac-d-bus being somewhat obtuse and not having enough fibers in > it. That being said, I'm sure there's some other use-case out there > that is a good fit for this (wanna talk to loginctl for hibernation > perhaps?) Yes! Provided suitable Fibers integration, we could have services that automatically start/stop based on some notification received on the bus (devices plugged/unplugged, power or network condition changes, etc.). Pretty exciting. Thanks for sharing! Ludo’.