#36318·deno

Cannot run WebGPU Deno Desktop apps, even through Steam

Author: TheHans255Created Jul 26, 2026Updated Sep 16, 2026
Labelsbugdesktop

Version: Deno 2.9.2

System:

  • 64-bit AMD Ryzen 7 9800X3D
  • 64 GB RAM
  • AMD Radeon RX 7900 XTX
  • NixOS unstable (26.11, revision 1d4e0f865d68258aada31e68e6d79c8c463f3b34)
  • DE: Hyprland 0.55.4
  • Using nix-ld to run unpatched Linux binaries

Steps to Reproduce:

Expected results:

  • A new window appears, cleared to teal

Actual results:

./deno-desktop-sandbox: error while loading shared libraries: libxdo.so.3: cannot open shared object file: No such file or directory

Full strace of this process:

$ strace ./deno-desktop-sandbox
execve("./deno-desktop-sandbox", ["./deno-desktop-sandbox"], 0x7ffc6e695f10 /* 97 vars */) = 0
mmap(NULL, 56, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7d2faeaa4000
openat(AT_FDCWD, "/run/current-system/sw/share/nix-ld/lib/ld.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\375\1\0\0\0\0\0"..., 64) = 64
mmap(NULL, 680, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7d2faeaa3000
mmap(NULL, 241664, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7d2faea68000
mmap(0x7d2faea68000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x7d2faea68000
mmap(0x7d2faea69000, 176128, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x7d2faea69000
mmap(0x7d2faea94000, 45056, PROT_READ, MAP_PRIVATE|MAP_FIXED, 3, 0x2c000) = 0x7d2faea94000
mmap(0x7d2faea9f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x37000) = 0x7d2faea9f000
mmap(0x7d2faeaa2000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7d2faeaa2000
munmap(0x7d2faeaa3000, 680)             = 0
close(3)                                = 0
brk(NULL)                               = 0x5c57300aa000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7d2faea66000
access("/etc/ld-nix.so.preload", R_OK)  = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/current-system/sw/share/nix-ld/lib/glibc-hwcaps/x86-64-v4/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/run/current-system/sw/share/nix-ld/lib/glibc-hwcaps/x86-64-v4/", 0x7ffd33833880, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/current-system/sw/share/nix-ld/lib/glibc-hwcaps/x86-64-v3/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/run/current-system/sw/share/nix-ld/lib/glibc-hwcaps/x86-64-v3/", 0x7ffd33833880, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/current-system/sw/share/nix-ld/lib/glibc-hwcaps/x86-64-v2/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/run/current-system/sw/share/nix-ld/lib/glibc-hwcaps/x86-64-v2/", 0x7ffd33833880, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/current-system/sw/share/nix-ld/lib/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/run/current-system/sw/share/nix-ld/lib/", {st_mode=S_IFDIR|0555, st_size=36864, ...}, 0) = 0
openat(AT_FDCWD, "/nix/store/ias8xacs1h3jy7xgwi2awvim61k2ji6c-glibc-2.42-67/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/ias8xacs1h3jy7xgwi2awvim61k2ji6c-glibc-2.42-67/lib/glibc-hwcaps/x86-64-v4/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/ias8xacs1h3jy7xgwi2awvim61k2ji6c-glibc-2.42-67/lib/glibc-hwcaps/x86-64-v4/", 0x7ffd33833880, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/ias8xacs1h3jy7xgwi2awvim61k2ji6c-glibc-2.42-67/lib/glibc-hwcaps/x86-64-v3/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/ias8xacs1h3jy7xgwi2awvim61k2ji6c-glibc-2.42-67/lib/glibc-hwcaps/x86-64-v3/", 0x7ffd33833880, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/ias8xacs1h3jy7xgwi2awvim61k2ji6c-glibc-2.42-67/lib/glibc-hwcaps/x86-64-v2/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/ias8xacs1h3jy7xgwi2awvim61k2ji6c-glibc-2.42-67/lib/glibc-hwcaps/x86-64-v2/", 0x7ffd33833880, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/ias8xacs1h3jy7xgwi2awvim61k2ji6c-glibc-2.42-67/lib/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/ias8xacs1h3jy7xgwi2awvim61k2ji6c-glibc-2.42-67/lib/", {st_mode=S_IFDIR|0555, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/nix/store/hps7pxvcgq32x46yx5a2nx53js5j41vb-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v4/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/hps7pxvcgq32x46yx5a2nx53js5j41vb-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v4/", 0x7ffd33833880, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/hps7pxvcgq32x46yx5a2nx53js5j41vb-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v3/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/hps7pxvcgq32x46yx5a2nx53js5j41vb-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v3/", 0x7ffd33833880, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/hps7pxvcgq32x46yx5a2nx53js5j41vb-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v2/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/hps7pxvcgq32x46yx5a2nx53js5j41vb-xgcc-15.2.0-libgcc/lib/glibc-hwcaps/x86-64-v2/", 0x7ffd33833880, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/nix/store/hps7pxvcgq32x46yx5a2nx53js5j41vb-xgcc-15.2.0-libgcc/lib/libxdo.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/nix/store/hps7pxvcgq32x46yx5a2nx53js5j41vb-xgcc-15.2.0-libgcc/lib/", {st_mode=S_IFDIR|0555, st_size=4096, ...}, 0) = 0
writev(2, [{iov_base="./deno-desktop-sandbox", iov_len=22}, {iov_base=": ", iov_len=2}, {iov_base="error while loading shared libra"..., iov_len=36}, {iov_base=": ", iov_len=2}, {iov_base="libxdo.so.3", iov_len=11}, {iov_base=": ", iov_len=2}, {iov_base="cannot open shared object file", iov_len=30}, {iov_base=": ", iov_len=2}, {iov_base="No such file or directory", iov_len=25}, {iov_base="\n", iov_len=1}], 10./deno-desktop-sandbox: error while loading shared libraries: libxdo.so.3: cannot open shared object file: No such file or directory
) = 133
exit_group(127)                         = ?
+++ exited with 127 +++

I have not been able to locate a NixOS package that provides libxdo.so.3 - the xdo and xdotool packages do not contain it.

EDIT: The same issue also happens when attempting to run the resulting binary through Steam (it crashes immediately without showing a window). So this is not a NixOS exclusive problem.