On 12/5/22 12:41, Elias Kueny wrote:
Hello,
I'm trying to run an online videoconferencing tool in chromium in a guix
shell with a container, so I expose my system as little as possible. All
is well without the --container option, but I'm not sure what to expose
to make it work in the container too.
I'm on guix system. I'm starting the software with: `guix shell
--container -N -P --no-cwd --preserve='^DISPLAY$'
--preserve='^XAUTHORITY$' --share=$XAUTHORITY --share=/dev/video0
ungoogled-chromium -- chromium --app="https://meet.jit.si"`.
`--preserve='^DISPLAY$' --preserve='^XAUTHORITY$' --share=$XAUTHORITY`
lets chromium open an X window and share the scren.
`--share=/dev/video0` gives access to the webcam.
What is the step to allow the microphone and speakers?
About the sound, I believe you will need to expose the pulseaudio and/or
pipewire sockets. You can reference bubblewrap configuration since it
also works by sharing/exposing files.
https://wiki.archlinux.org/title/Bubblewrap/Examples#Chromium
I'm not particularly familiar with how audio devices are working. I read
they are in /dev/snd, but sharing this or even the whole of /dev/
doesn't make the microphone and speakers available (although the browser
is now asking me for the permission to access them, so it seems aware I
have them). I also tried adding tinyalsa and pulseaudio to the container
in case that's what's missing, but to no avail. I didn't explicitely
install anything related to audio (but I have %desktop-services in my
operating-system definition), so if it's a software that is missing, I
don't know which one.
I believe in the case of ungoogled-chromium that pulseaudio is part of
the inputs already.
Thank you in advance!
It would be nice to have a tool for defining guix containers by
permissions (with camera, with audio, etc) like bubblejail/firejail.
That is a topic for a later mail.