NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.31k stars 13.55k forks source link

ArmCord: fails to launch under Wayland #316944

Closed jdek closed 3 months ago

jdek commented 3 months ago

Describe the bug

ArmCord's wrapper seems unable to launch under Wayland, always chooses to launch under

Steps To Reproduce

Steps to reproduce the behavior:

  1. Make sure NIXOS_OZONE_WL and WAYLAND_DISPLAY are properly set:
    $ echo $NIXOS_OZONE_WL $WAYLAND_DISPLAY
    1 wayland-1
    $ echo "${NIXOS_OZONE_WL:+${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=UseOzonePlatform --enable-features=WebRTCPipeWireCapturer }}"
    --ozone-platform=wayland --enable-features=UseOzonePlatform --enable-features=WebRTCPipeWireCapturer
  2. Launch Armcord: armcord.
  3. ...
  4. It's on XWayland (as shown by hyprctl clients).

Expected behavior

I expect it to launch with Wayland instead of XWayland.

Additional context

Custom wrapper:

#!/bin/sh

export LD_LIBRARY_PATH="/nix/store/0g7r7krqiz6g3nb3651sfa5myd9gqkzf-alsa-lib-1.2.11/lib:/nix/store/6rigmq2ycbpgywmq9jjyhdr6vs8k8h8x-at-spi2-core-2.52.0/lib:/nix/store/6rigmq2ycbpgywmq9jjyhdr6vs8k8h8x-at-spi2-core-2.52.0/lib:/nix/store/6rigmq2ycbpgywmq9jjyhdr6vs8k8h8x-at-spi2-core-2.52.0/lib:/nix/store/b9f9c4ml2k6fg0pgc80d9y4a6byqflmp-cairo-1.18.0/lib:/nix/store/0bp09zmflpq2igy8cm2b83dl0rpmyw90-cups-2.4.7-lib/lib:/nix/store/jd41k79l3nxq4b7b7yvc0kmcjd3lq7sa-dbus-1.14.10-lib/lib:/nix/store/0bm4z6dh3v6nnr539xzsak0pn4wccb5l-expat-2.6.2/lib:/nix/store/0qs6lqxic761r65ffdv6jqn6yrsjsqn0-ffmpeg-6.1.1-lib/lib:/nix/store/azbphnp68h4fkm0fsbird88bn76ggjsh-fontconfig-2.15.0-lib/lib:/nix/store/c9n99v77q5wrk7dxr4xi16bn1l4cglly-freetype-2.13.2/lib:/nix/store/k2fmr13zj9rhkr29axhkaizjqn1llxaz-gdk-pixbuf-2.42.11/lib:/nix/store/c2v6ycn0sjcpx9ww8x7j4ima6xnpssry-glib-2.80.2/lib:/nix/store/6pzxmb82pda01y6zxncdmmp7lhafb75h-gtk+3-3.24.41/lib:/nix/store/7ammyzfh4i39dqxj3v0rxs21crrxp4nb-pango-1.52.2/lib:/nix/store/xjiifrz7ha6s29gp0p0j3w0155phxmia-systemd-255.6/lib:/nix/store/f3bmrmcdxxgxzsh8pgwg49z2zhfs9qfq-mesa-24.0.7/lib:/nix/store/lr06m26d9qh6ssa3x5zx2ll33wm44xid-nss-3.90.2/lib:/nix/store/05n35k0p8l969kfskxqhbqhy8il3a3cq-util-linux-minimal-2.40.1-lib/lib:/nix/store/y31zz9k1v2gqlzrs7p50llx8db6m2gdr-libdrm-2.4.120/lib:/nix/store/ssq1sh0jhjlnmfic15lqy97953qhlfyh-libnotify-0.8.3/lib:/nix/store/qlrbqz1k8c4dbr9xc3fgw9k04nqsw4ah-libsecret-0.21.4/lib:/nix/store/ha8i7q6xf4794idzrzh35vsycb5lmjzn-libpulseaudio-17.0/lib:/nix/store/1mv469gq5n0l32cb2lam7mkfl9s22dlg-libxkbcommon-1.7.0/lib:/nix/store/w86lxl2rjhzkn1q7wvg6r8kzk1xf39vy-libappindicator-gtk3-12.10.1+20.10.20200706.1/lib:/nix/store/x9fw7rbdb34gq0f8q750kw344lbv9nk1-libX11-1.8.9/lib:/nix/store/18kar5zwp16xyppfmigq92xzm1pkcqf1-libxcb-1.17.0/lib:/nix/store/y16mr4fhn8a8snp5177a6aznq42ci22c-libXcomposite-0.4.6/lib:/nix/store/53vv8bkh0nvrfifac45dvhhcs3ybywjb-libXcursor-1.2.2/lib:/nix/store/2y8irckx5v4fav7r7p9ghaz7rbwdmfb2-libXdamage-1.1.6/lib:/nix/store/gbjygp4wz7b5rgayckmqfc00hy34dqfn-libXext-1.3.6/lib:/nix/store/1jjjvxa4v0qqjhlc9ig3j6ljdlskm2kr-libXfixes-6.0.1/lib:/nix/store/8dznd000dbv8kjvq93zwj7b5xf5chf6z-libXi-1.8.1/lib:/nix/store/2rq584mkybbbvm1ciyams5s2lh8cdq32-libXrandr-1.5.4/lib:/nix/store/37bzg32wlrlknwbrsvjr4cxwmjh8dbzl-libXrender-0.9.11/lib:/nix/store/1dpwfla39ap6nsj6v8xj9s8vp5nv3cpv-libXScrnSaver-1.2.4/lib:/nix/store/hzwxpkddjfp13ghbbl4bn7zvqvkp7hpl-libxshmfence-1.3.2/lib:/nix/store/0ig3lz1130srhy0g92ss16pwswnzkdjp-libXtst-1.2.4/lib:/nix/store/7rnc20sb0h5zxqm5vims6mvi6gr3iy27-wayland-1.22.0/lib:/nix/store/yrhd00i06g1mc8pykv7yb19mzb4f9bzl-pipewire-1.0.6/lib:${LD_LIBRARY_PATH}"
export PATH="${PATH}:/nix/store/6a6205zvzyqgmad3a43j6mlyh0kwkac1-xdg-utils-1.2.1/bin"

/nix/store/5k5qr7267p39s4j4zxdbmgkr1h07hlb1-armcord-3.2.7/opt/ArmCord/armcord \
    ${NIXOS_OZONE_WL:+${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=UseOzonePlatform --enable-features=WebRTCPipeWireCapturer }}

Test case:

armcord & sleep 1; echo "normal" > log.txt; hyprctl clients | grep -C 5 "initialTitle: ArmCord" >> log.txt; pkill armcord
./my-armcord & sleep 1; echo "custom wrapper" >> log.txt; hyprctl clients | grep -C 5 "initialTitle: ArmCord" >> log.txt; pkill armcord

Log output:

normal
    floating: 0
    monitor: 0
    class: ArmCord
    title: ArmCord
    initialClass: ArmCord
    initialTitle: ArmCord
    pid: 860188
    xwayland: 1
    pinned: 0
    fullscreen: 0
    fullscreenmode: 0
custom wrapper
    floating: 0
    monitor: 0
    class: ArmCord
    title: ArmCord
    initialClass: ArmCord
    initialTitle: ArmCord
    pid: 860451
    xwayland: 0
    pinned: 0
    fullscreen: 0
    fullscreenmode: 0

Notify maintainers

@wrmilling

Metadata

Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.32, NixOS, 24.05 (Uakari), 24.05.20240526.a9fc3b0`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - nixpkgs: `/nix/store/272aza5vpfgnzf8id3g6gs6sx6i3w6d1-source`

Add a :+1: reaction to issues you find important.

eclairevoyant commented 3 months ago

probably need makeShellWrapper instead of makeBinaryWrapper in the package

wrmilling commented 3 months ago

Thanks for jumping on a PR @eclairevoyant, will review this evening.