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

Arch Linux + Hyprland 畫面是全黑的 #15

Open
wwxiaoqi opened this issue Dec 16, 2024 · 3 comments
Open

Arch Linux + Hyprland 畫面是全黑的 #15

wwxiaoqi opened this issue Dec 16, 2024 · 3 comments

Comments

@wwxiaoqi
Copy link

安装 wemeet-wayland-screenshare 使用还是一样

我的系統:

  • os: Arch linux
  • pipewire 1:1.2.7-1
  • wireplumber 0.5.7-1
  • xdg-desktop-portal 1.18.4-2
  • xdg-desktop-portal-wlr 0.7.1-1
  • xdg-desktop-portal-hyprland 1.3.8-1
详细版本
~ >>> pacman -Q | grep wemeet
wemeet-bin 3.19.2.400-3
wemeet-wayland-screenshare-git 3.19.2.400_hooked-8
~ >>> pacman -Q | grep xdg
flatpak-xdg-utils 1.0.6-1
libxdg-basedir 1.2.3-2
xdg-dbus-proxy 0.1.6-1
xdg-desktop-portal 1.18.4-2
xdg-desktop-portal-gtk 1.15.1-2
xdg-desktop-portal-hyprland 1.3.8-1
xdg-desktop-portal-wlr 0.7.1-1
xdg-user-dirs 0.18-2
xdg-utils 1.2.1-1
~ >>> pacman -Q | grep hypr
hyprcursor 0.1.10-1
hypridle 0.1.5-1
hyprland 0.45.2-3
hyprlang 0.6.0-1
hyprlock 0.5.0-1
hyprutils 0.2.6-1
hyprwayland-scanner 0.4.2-1
xdg-desktop-portal-hyprland 1.3.8-1
~ >>> pacman -Q | grep pipew
kpipewire 6.2.4-1
libpipewire 1:1.2.7-1
pipewire 1:1.2.7-1
pipewire-alsa 1:1.2.7-1
pipewire-audio 1:1.2.7-1
pipewire-jack 1:1.2.7-1
pipewire-pulse 1:1.2.7-1

使用

手动编译好后使用 LD_PRELOAD=$(readlink -f ./libhook.so) wemeet-x11 日志如下

Log Details
[1216/113757.675753:WARNING:resource_bundle_qt.cpp(119)] locale_file_path.empty() for locale 
Installed Qt WebEngine locales directory not found at location /usr/lib/wemeet/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine locales directory not found at location /opt/wemeet/bin/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
Path override failed for key ui::DIR_LOCALES and path '/home/xiaoqi/.QtWebEngineProcess'
Installed Qt WebEngine locales directory not found at location /usr/lib/wemeet/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine locales directory not found at location /opt/wemeet/bin/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
Path override failed for key ui::DIR_LOCALES and path '/home/xiaoqi/.QtWebEngineProcess'
[1216/113757.732512:WARNING:resource_bundle_qt.cpp(119)] locale_file_path.empty() for locale 
[1216/113757.732619:WARNING:resource_bundle_qt.cpp(119)] locale_file_path.empty() for locale 
[2:24:1216/113757.745695:ERROR:address_tracker_linux.cc(214)] Could not bind NETLINK socket: Address already in use (98)
[hook] payload thread started
[hook] stream node_id: 106
[hook] portal status: running
[hook SYNC] pipewire_fd acquired: 216
[hook SYNC] pipewire screencast object allocated
[payload SYNC] pipewire_fd acquired: 216
[payload SYNC] got pipewire_handle.
[payload] pipewire thread started.
[payload pw] stream state changed from unconnected to connecting
[payload pw] stream state changed from connecting to paused
[payload pw] param changed. received param type: Spa:Enum:ParamId:Props
[payload pw] ignoring non-format param
[payload pw] param changed. received param type: Spa:Enum:ParamId:Latency
[payload pw] ignoring non-format param
[payload pw] param changed. received param type: Spa:Enum:ParamId:Format
[payload pw] spa_format_video_raw_parse retval: 4
[payload pw] actual params: width: 2880 | height: 1800 | framerate: 0.000000 | max_framerate: 120.000000 | format: BGRx | param_good: 1
[payload SYNC] x11 sanitizer stopped.
[payload pw] stream state changed from paused to streaming
[payload pw] processed frame count: 20
[payload pw] processed frame count: 40
[payload pw] processed frame count: 60
[payload pw] processed frame count: 80
[payload pw] processed frame count: 100
[hook] signal pw stop.
[payload] pw stop signal received. pw stopped. 
[payload SYNC] pw stop confirmed.
[hook SYNC] pw stop confirmed.
[hook] stop gio main loop.
[payload SYNC] gio stop confirmed.
[hook SYNC] gio stop confirmed.
[payload pw] stream state changed from streaming to paused
[payload pw] param changed. received param type: Spa:Enum:ParamId:Format
[payload pw] ignoring non-format param
[payload pw] param changed. received param type: Spa:Enum:ParamId:Format
[payload pw] ignoring non-format param
[payload pw] stream state changed from paused to unconnected
@wwxiaoqi
Copy link
Author

观察 #9 (comment) 的运行日志和我这个日志很像,但是他是正常工作的。

output-001.mp4

@xuwd1
Copy link
Owner

xuwd1 commented Dec 16, 2024

如果这边指的是右上角窗口是全黑的话,这个是预期内的状态:

  • 腾讯会议的开发者们实现了这样的一个窗口,他在compositing DE上甚至原本会使得用户的鼠标无法点击到任何东西,或者整个桌面全黑
  • 正是本项目中的x11 sanitizer使得这个窗口可以被用户操作(如最小化等)
  • 在如hyprland这样的tiling WM上,你因此会一直看到这样的一个黑色窗口. 事实上,你完全可以自行将其关闭

update: 我突然理解到这里的意思是说如sway这样的tiling WM没有出现这样的问题,如果是这样的意思的话,是我之前理解错了. hyprland目前的确是我们兼容的各DE/WM中最难以处理的一个,前段时间已经意识到hyprland可能需要完全单独的x11 sanitizer逻辑来应对. 我有时间了会再研究一下这个问题尝试解决,不过在此之前,还请暂且将就使用,谢谢!

@xuwd1 xuwd1 closed this as completed Dec 16, 2024
@xuwd1
Copy link
Owner

xuwd1 commented Dec 16, 2024

reopening issue

@xuwd1 xuwd1 reopened this Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants