Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Screen sharing through Slack/Teams or similar #5083

Closed
JonasKs opened this issue Mar 9, 2020 · 8 comments
Closed

Screen sharing through Slack/Teams or similar #5083

JonasKs opened this issue Mar 9, 2020 · 8 comments

Comments

@JonasKs
Copy link

JonasKs commented Mar 9, 2020

Has anyone been successful in sharing the screen through Slack or Teams?
The official Teams client crashes if I attempt to do so, Slack only show my mouse on a black screen.

I believe Zoom worked when I tried a few months back. I’ll confirm next week.

@1da1a172
Copy link

How did you get zoom screen sharing to work?

@cherusk
Copy link

cherusk commented Mar 14, 2020

Yes, this is a very generic issue and I wanted to open it myself today. Haven't seen any solution on sway roadmap, would be great to get visibility on whether this can be tackled in one sweep and by when it's planned.

@cherusk
Copy link

cherusk commented Mar 14, 2020

@JonasKs , might turn this into a feature request!

@JonasKs
Copy link
Author

JonasKs commented Mar 14, 2020

Honestly i haven’t tried zoom in a few months, so now I’m not sure if my memory is tricking me. Going to edit my comment and try Zoom again this week.

@cherusk
Copy link

cherusk commented Mar 17, 2020

Found quite a decent impromptu workaround which suffices until sway more native screen sharing matures.

  1. put all your "communicators", all software that requires screen sharing (slack, google meet) into some seperate, micro run time that rendering with help of some X server on your host. I'd suggest https://github.com/mviereck/x11docker as it's super light weight and convenient. Also put a remote desktop client software of your choice into that run time entitiy
  2. Spin up some remote desktop serving agent on your host, my choice was https://github.com/any1/wayvnc (requires sway 1.4 though!)
  3. Connect from your runtime via VNC (or whatever protocol of your choice) to your host running sway.
  4. Now you can share screen in your micro runtime the screen showing the host VNC session

@JonasKs
Copy link
Author

JonasKs commented Mar 17, 2020

That's an interesting approach indeed. I'll check it out!

@ddevault
Copy link
Member

Closing because this isn't actionable.

wfleming added a commit to wfleming/dotfiles that referenced this issue Jun 15, 2020
I've spent some time this week setting up a new laptop, and as usual for
some reason I consider a new machine a great time to re-evaluate my
entire setup. One of the things I wanted to re-evaluate was my window
manager, and I wondered: "is Wayland good enough to use now?" The answer
turned out to be that it is so, so, close, and if it weren't for one
deal-breaker annoyance I would be all-in.

I started by looking at the current available tiling compositors for
Wayland. [Waymonad] is (unsurprisingly) the philisophical descendant of
Xmonad for Wayland, but from some light inspection it looks much less
mature to me than some of the alternatives, it hasn't attracted the same
kind of community that Xmonad has AFAICT, and although I'm happy to
spend some time learning a new tool, right now I have minimal interest
in figuring out a new window manager without docs or a community from
reading source code.

So the obvious choice seems to be [sway], which is mostly an [i3] clone
for Wayland, and as i3 is a reasonably close cousin to Xmonad in X11 (I
think it's the usual choice for people who want a tiling window manager
but don't want to write Haskell), so I decided to give it a shot.

So I took a stab at setting up sway, and it's really great! My only real
complaint is that I somewhat prefer Xmonad's approach to managing
windows with designated layouts to i3/sway's approach to managing
windows by splitting and moving containers. Xmonad's approach is
simpler, while i3's is both more complex but also more flexible. (To be
fair, Xmonad is more of a window manager framework than just a window
manager, so I'm sure there are people with much more flexible Xmonad
setups: mine is not much different from the out-of-the-box experience,
so that's what I'm talking about.) But I'm getting used to the new
approach, and it's growing on me.

On the plus side, the overall experience of "managing" a sway
environment is *much* nicer than needing to massage an X11 environment
into working order.  Display management is built-in and just works,
there's no need for extra tools like my [`msu` script][msu], or the
several ways I trigger it.  There's less mucking about with
`xorg.conf.d` configs to get inputs like trackpads behving sanely (so
far). Getting a decent status bar to play nicely with the window manager
was also much less futzing around. Applications pretty much all just
work. It feels responsive and just generally less flakey than X11.

Ah, but the deal-breaker. One area where Wayland is well behind X11 is
the development of protocols that applications can use for
screen-sharing. They exist, but AFAICT they're unevenly supported by
compositors and even more unevenly supported by applications. I spent an
afternoon trying various approaches, but for the life of me I could not
get Zoom to do anything like screen sharing of my sway desktop. And
unfortunately with everybody being entirely remote in the midst of a
pandemic, "sharing my screen on a Zoom call" is a non-negotiable
requirement for me several times a week right now.

But I like the advantages of sway enough that after a few days of
playing with it I am loathe to go back to my old setup, so this is the
awful compromise I've landed on for now: I've put together an i3/polybar
setup for X11 that is almost the same as my sway/waybar setup for
Wayland. And I'm going to try and use both: I'll start my day in an X
session on days when I expect to be on calls, but try to spend time in
Wayland if I don't expect to be be screen-sharing. Hopefully the
screen-sharing situation will improve and I can drop this crufty dual
setup and delete a bunch of X11 cruft from my dotfiles.

Wayland definitely seems like the future, I guess that future just isn't
quite here for those of us who prefer tiling window managers (and thus
don't want to use GNOME). In some ways it reminds me of Systemd: it
feels less "unixy" because it's not organized around very focused
programs that interact with each other, but instead tends towards a more
monolithic implementation of a bunch of related functionality. And it
has some definitely questionable technical details. But the lived
experience of *using it* is so much better than what came before that it
seems obvious that it's what should be focused on.

For my own future reference, here is what I played with to try and get
screensharing working on Sway:

- swaywm/sway#4358 & swaywm/sway#3282
  - `xdg-desktop-portal-wlr` is apparently supposed to add appropriate
  support for screensharing, but it didn't work for me. I didn't bother
  trying to use a patched FF, so I'm not surprised that didn't work.
  Some post I saw somewhere suggested that Zoom actually detects its on
  GNOME, so maybe it would work here if I forced it to think it's on
  GNOME? Didn't try that, should do that.
  - The slightly crazier suggestion there was to use a v4l2loopback
  device to record your desktop as a "webcam" and then just pick that as
  your video camera in zoom. Clever, but awkard and hacky. I also ran
  into errors with having `wf-recorder` record using v4l2. (I don't
  think ammen99/wf-recorder#92 was the issue,
  `ffmpeg` said the code was available, the error was a bit more like
  ammen99/wf-recorder#70 but the kernel module
  was also there and the device was available.)
- https://gitlab.com/jamedjo/gnome-dbus-emulation-wlr - saw this
  mentioned in one of the Sway issues linked above. It's a Ruby
  project that apparently presents dbus services that look like GNOME
  services to trick apps like Zoom into thinking their on GNOME? Again,
  didnt' work for me.
- swaywm/sway#5083 has the truly crazy idea of
  running zoom, etc. via x11docker, running a VNC server on your host,
  and then connecting the x11docker to your desktop via VNC and sharing
  that.  I did not do that, I think I prefer to just switch back to X11.

[Waymonad]: https://github.com/waymonad/waymonad
[Sway]: https://github.com/swaywm/sway
[i3]: https://github.com/i3/i3
[msu]: https://github.com/wfleming/dotfiles/blob/arch-linux/home_nodot/bin/msu
@trougnouf
Copy link

Some applications work with Teams on Chromium when they are both running through xwayland.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

5 participants