Slack 与 WebRTCPipeWireCapture Wyaland 黑屏共享,但适用于 chrome

use*_*334 4 wayland slack 23.10

我在用

\n
    \n
  • 乌班图23.10
  • \n
  • 松弛 4.35.121
  • \n
  • 管线0.3.79-2
  • \n
  • AMD GPU
  • \n
\n
\xe2\x9e\x9c  ~ echo $XDG_SESSION_TYPE                        \nwayland\n\n\xe2\x9e\x9c  ~ sudo lspci -k | grep -EA3 'VGA|3D|Display'\npcilib: Error reading /sys/bus/pci/devices/0000:00:08.3/label: Operation not permitted\n03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6650 XT / 6700S / 6800S] (rev c0)\n        Subsystem: ASUSTeK Computer Inc. Navi 23 [Radeon RX 6650 XT]\n        Kernel driver in use: amdgpu\n        Kernel modules: amdgpu\n--\n07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt [Radeon 680M] (rev c7)\n        Subsystem: ASUSTeK Computer Inc. Rembrandt [Radeon 680M]\n        Kernel driver in use: amdgpu\n        Kernel modules: amdgpu\n
Run Code Online (Sandbox Code Playgroud)\n

管线

\n
\xe2\x9e\x9c  ~ dpkg -l | grep -i pipewire                                 \nii  gnome-remote-desktop                             45.0-1                                    amd64        Remote desktop daemon for GNOME using PipeWire\nii  gstreamer1.0-pipewire:amd64                      0.3.79-2                                  amd64        GStreamer 1.0 plugin for the PipeWire multimedia server\nii  libpipewire-0.3-0:amd64                          0.3.79-2                                  amd64        libraries for the PipeWire multimedia server\nii  libpipewire-0.3-common                           0.3.79-2                                  all          libraries for the PipeWire multimedia server - common files\nii  libpipewire-0.3-modules:amd64                    0.3.79-2                                  amd64        libraries for the PipeWire multimedia server - modules\nii  libspa-0.2-bluetooth:amd64                       0.3.79-2                                  amd64        libraries for the PipeWire multimedia server - bluetooth plugins\nii  libspa-0.2-modules:amd64                         0.3.79-2                                  amd64        libraries for the PipeWire multimedia server Simple Plugin API - modules\nii  pipewire:amd64                                   0.3.79-2                                  amd64        audio and video processing engine multimedia server\nii  pipewire-alsa:amd64                              0.3.79-2                                  amd64        PipeWire ALSA plugin\nii  pipewire-audio                                   0.3.79-2                                  all          recommended set of PipeWire packages for a standard audio desktop use\nii  pipewire-bin                                     0.3.79-2                                  amd64        PipeWire multimedia server - programs\nii  pipewire-pulse                                   0.3.79-2                                  amd64        PipeWire PulseAudio daemon\nii  wireplumber  \n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. slack 的 snap 版本有(或没有)slack --enable-features=WebRTCPipeWireCapturer在共享时显示黑屏
  2. \n
  3. 屏幕共享适用于 Xorg
  4. \n
  5. 屏幕共享适用于基于 chromium 的浏览器 (Brave)
  6. \n
  7. slack slack-desktop-4.34.121-amd64 的 Deb 版本 - 共享时黑屏
  8. \n
  9. 之前我在 6.12 内核 gnome 43 上使用 Fedora 37,并且 slack 能够共享屏幕,所以这绝对是可能的
  10. \n
\n

我在日志中看到,有一些子进程带有禁用 WebRTCPipeWireCapturer 的标志

\n
user+   26075  7.3  0.5 1178928616 180012 ?   SLl  11:27   0:02 /snap/slack/110/usr/lib/slack/slack --no-sandbox --enable-features=WebRTCPipeWireCapturer --executed-from=/home/user --pid=25496\nuser+   26082  0.0  0.1 33988524 49408 ?      S    11:27   0:00 /snap/slack/110/usr/lib/slack/slack --type=zygote --no-zygote-sandbox --no-sandbox\nuser+   26083  0.0  0.1 33988520 49280 ?      S    11:27   0:00 /snap/slack/110/usr/lib/slack/slack --type=zygote --no-sandbox\nuser+   26099  0.0  0.0 33588712 3200 ?       Sl   11:27   0:00 /snap/slack/110/usr/lib/slack/chrome_crashpad_handler --monitor-self-annotation=ptype=crashpad-handler --no-upload-gzip --database=/home/user/snap/slack/110/.config/Slack/Crashpad --url=https://slack.com/apps/sentryproxy/api/5277886/minidump/?sentry_key=fd30fe469dbf4aec9db40548e5acf91e --annotation=_productName=Slack --annotation=_version=4.35.121 --annotation=lsb-release=Ubuntu Core 18 --annotation=plat=Linux --annotation=prod=Electron --annotation=sentry___initialScope={"release":"Slack@4.35.121","environment":"production","user":{"id":"e1f78694-1d56-4017-a027-beab0ea663ae"},"tags":{"uuid":"e1f78694-1d56-4017-a027-beab0ea663ae"}} --annotation=ver=27.0.0 --initial-client-fd=43 --shared-client-connection\nuser+   26126  2.2  0.2 34046980 72972 ?      Sl   11:27   0:00 /snap/slack/110/usr/lib/slack/slack --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --enable-logging --crashpad-handler-pid=26099 --enable-crash-reporter=f0b3e071-ce2a-4a61-89db-a168791729e9,no_channel --user-data-dir=/home/user/snap/slack/110/.config/Slack --standard-schemes=app,slack-webapp-dev --secure-schemes=app,slack-webapp-dev --bypasscsp-schemes=slack-webapp-dev --cors-schemes=slack-webapp-dev --fetch-schemes=slack-webapp-dev --service-worker-schemes=slack-webapp-dev --streaming-schemes --enable-logging --log-file=/home/user/snap/slack/110/.config/Slack/logs/default/electron_debug.log --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,8702521800839048508,11262088157928811340,262144 --disable-features=AllowAggressiveThrottlingWithWebSocket,CalculateNativeWinOcclusion,HardwareMediaKeyHandling,IntensiveWakeUpThrottling,LogJsConsoleMessages,RequestInitiatorSiteLockEnfocement,SpareRendererForSitePerProcess,WebRTCPipeWireCapturer,WebRtcHideLocalIpsWithMdns,WinRetrieveSuggestionsOnlyOnDemand\nuser+   26179 37.9  1.3 1191407300 418572 ?   Sl   11:27   0:11 /snap/slack/110/usr/lib/slack/slack --type=renderer --crashpad-handler-pid=26099 --enable-crash-reporter=f0b3e071-ce2a-4a61-89db-a168791729e9,no_channel --user-data-dir=/home/user/snap/slack/110/.config/Slack --standard-schemes=app,slack-webapp-dev --secure-schemes=app,slack-webapp-dev --bypasscsp-schemes=slack-webapp-dev --cors-schemes=slack-webapp-dev --fetch-schemes=slack-webapp-dev --service-worker-schemes=slack-webapp-dev --streaming-schemes --app-path=/snap/slack/110/usr/lib/slack/resources/app.asar --enable-sandbox --enable-blink-features=ExperimentalJSProfiler --disable-blink-features --first-renderer-process --no-sandbox --autoplay-policy=no-user-gesture-required --enable-logging --force-color-profile=srgb --log-file=/home/user/snap/slack/110/.config/Slack/logs/default/electron_debug.log --lang=en-US --num-raster-threads=4 --enable-main-frame-before-activation --renderer-client-id=4 --time-ticks-at-unix-epoch=-1698307092377958 --launch-time-ticks=5365682318 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,8702521800839048508,11262088157928811340,262144 --disable-features=AllowAggressiveThrottlingWithWebSocket,CalculateNativeWinOcclusion,HardwareMediaKeyHandling,IntensiveWakeUpThrottling,LogJsConsoleMessages,RequestInitiatorSiteLockEnfocement,SpareRendererForSitePerProcess,WebRTCPipeWireCapturer,WebRtcHideLocalIpsWithMdns,WinRetrieveSuggestionsOnlyOnDemand --window-type=main\nuser+   26229  7.5  0.3 34636732 127500 ?     Sl   11:27   0:02 /snap/slack/110/usr/lib/slack/slack --type=gpu-process --no-sandbox --enable-logging --crashpad-handler-pid=26099 --enable-crash-reporter=f0b3e071-ce2a-4a61-89db-a168791729e9,no_channel --user-data-dir=/home/user/snap/slack/110/.config/Slack --gpu-preferences=WAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAAAABgAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAGAAAAAAAAAAYAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAA== --use-gl=angle --use-angle=swiftshader-webgl --enable-logging --log-file=/home/user/snap/slack/110/.config/Slack/logs/default/electron_debug.log --shared-files --field-trial-handle=0,i,8702521800839048508,11262088157928811340,262144 --disable-features=AllowAggressiveThrottlingWithWebSocket,CalculateNativeWinOcclusion,HardwareMediaKeyHandling,IntensiveWakeUpThrottling,LogJsConsoleMessages,RequestInitiatorSiteLockEnfocement,SpareRendererForSitePerProcess,WebRTCPipeWireCapturer,WebRtcHideLocalIpsWithMdns,WinRetrieveSuggestionsOnlyOnDemand\nuser+   26318  5.7  0.2 34227536 64128 ?      Sl   11:27   0:01 /snap/slack/110/usr/lib/slack/slack --type=utility --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=none --no-sandbox --enable-logging --crashpad-handler-pid=26099 --enable-crash-reporter=f0b3e071-ce2a-4a61-89db-a168791729e9,no_channel --user-data-dir=/home/user/snap/slack/110/.config/Slack --standard-schemes=app,slack-webapp-dev --secure-schemes=app,slack-webapp-dev --bypasscsp-schemes=slack-webapp-dev --cors-schemes=slack-webapp-dev --fetch-schemes=slack-webapp-dev --service-worker-schemes=slack-webapp-dev --streaming-schemes --enable-logging --log-file=/home/user/snap/slack/110/.config/Slack/logs/default/electron_debug.log --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,8702521800839048508,11262088157928811340,262144 --disable-features=AllowAggressiveThrottlingWithWebSocket,CalculateNativeWinOcclusion,HardwareMediaKeyHandling,IntensiveWakeUpThrottling,LogJsConsoleMessages,RequestInitiatorSiteLockEnfocement,SpareRendererForSitePerProcess,WebRTCPipeWireCapturer,WebRtcHideLocalIpsWithMdns,WinRetrieveSuggestionsOnlyOnDemand\nuser+   26366  0.0  0.0  17784  2304 pts/0    S+   11:28   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox slack\n
Run Code Online (Sandbox Code Playgroud)\n

小智 6

较新的 slack 明确禁用了 WebRTCPipeWireCapturer,但您可以通过直接编辑 JS 资源文件来解决这个问题。有一些完整性检查,并且它需要具有相同的长度,否则 Slack 根本无法启动,但以下命令对我有用4.35.121。当然需要像以前一样传入命令行选项--enable-features=WebRTCPipeWireCapturer和/或将其放入桌面文件中。

sudo sed -i'.backup' -e 's/,"WebRTCPipeWireCapturer"/,"LebRTCPipeWireCapturer"/' /usr/lib/slack/resources/app.asar
Run Code Online (Sandbox Code Playgroud)

桌面文件可以存在~/.local/share/applications/slack.desktop并且不会被更新破坏,但每次更新后都需要重复app.asar修补。