诱使 Slack 认为您没有多个显示器

exf*_*zik 15 ubuntu kde multi-monitor slack-desktop

据我所知,当您有多个屏幕时,无法在 Linux Slack 应用程序中选择单个屏幕进行共享。所以在我的 3 屏幕设置中,屏幕共享实际上无法使用。

所以我想知道是否有一种方法可以通过某种配置文件/环境变量等“欺骗”Slack(或任何其他Linux应用程序)认为我只有一个屏幕?

我曾尝试使用 KDE 的“特殊应用程序设置”功能将 Slack 锁定到一个屏幕,但这并没有做到。

还有其他建议吗?

我正在运行 Kubuntu 18.04。

谢谢!

小智 5

这不是我的答案,但这个工作对我来说:

我通过使用“v4l2loopback”找到了一种解决方法。如下所示,通过使用“v4l2loopback”,ffmpeg 可以将屏幕捕获的电影输出到 v4l2 设备。然后,在 Slack 应用程序中,您可以共享您的屏幕作为您的相机输入。

$ sudo modprobe v4l2loopback exclusive_caps=1
$ ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 \
 -i :0.0+0,0 -f v4l2  -vcodec rawvideo -pix_fmt rgb24 /dev/video1
Run Code Online (Sandbox Code Playgroud)
  • 将“1920x1080”更改为要捕获的屏幕尺寸。
  • 将“+0,0”更改为屏幕的起点。
  • 更改/dev/video1为您的 v4l2loopback 设备sudo modprobe v4l2loopback exclusive_caps=1

因此,如果您/dev/video1通过 v4l2loopback 制作并且在左右两侧有两个“1920x1080”大小的监视器屏幕。

获取左侧屏幕:

$ ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0+0,0 -f v4l2 \
 -vcodec rawvideo -pix_fmt rgb24 /dev/video1
Run Code Online (Sandbox Code Playgroud)

为了获得正确的屏幕:

$ ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0+1920,0 -f v4l2 \
  -vcodec rawvideo -pix_fmt rgb24 /dev/video1
Run Code Online (Sandbox Code Playgroud)

该研究员还制作了以下命令行工具以更简单的方式执行这些命令:https : //github.com/BlueSkyDetector/set_v4l2loopback_screen

笔记:

  • 我必须v4l2loopback-dkms在 Ubuntu 18.04上安装:

    $ sudo apt-get install v4l2loopback-dkms

  • modprobe/dev/video0为我创建,因为我没有安装任何其他相机