summary refs log tree commit diff
path: root/pkgs/build-support/build-fhs-userenv-bubblewrap
diff options
context:
space:
mode:
authorK900 <me@0upti.me>2023-02-11 17:30:18 +0300
committerK900 <me@0upti.me>2023-02-11 17:33:06 +0300
commit9788650f521f1c4c07edd5f364ed1c51b970f554 (patch)
tree119219b7eda41085c58ea20b01d03d89977f76ab /pkgs/build-support/build-fhs-userenv-bubblewrap
parent3a264219eecc4c6e581bc6b43c75443ec921d04e (diff)
downloadnixpkgs-9788650f521f1c4c07edd5f364ed1c51b970f554.tar
nixpkgs-9788650f521f1c4c07edd5f364ed1c51b970f554.tar.gz
nixpkgs-9788650f521f1c4c07edd5f364ed1c51b970f554.tar.bz2
nixpkgs-9788650f521f1c4c07edd5f364ed1c51b970f554.tar.lz
nixpkgs-9788650f521f1c4c07edd5f364ed1c51b970f554.tar.xz
nixpkgs-9788650f521f1c4c07edd5f364ed1c51b970f554.tar.zst
nixpkgs-9788650f521f1c4c07edd5f364ed1c51b970f554.zip
buildFHSUserEnv: fix permissions on /tmp/.X11-unix
This is kinda cursed, but it makes things like `steam-run gamescope` work OOTB.
Diffstat (limited to 'pkgs/build-support/build-fhs-userenv-bubblewrap')
-rw-r--r--pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix13
1 files changed, 13 insertions, 0 deletions
diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
index 5bffa2b2050..048233d728c 100644
--- a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
+++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
@@ -137,6 +137,18 @@ let
       fi
     done
 
+    declare -a x11_args
+    # Always mount a tmpfs on /tmp/.X11-unix
+    # Rationale: https://github.com/flatpak/flatpak/blob/be2de97e862e5ca223da40a895e54e7bf24dbfb9/common/flatpak-run.c#L277
+    x11_args+=(--tmpfs /tmp/.X11-unix)
+
+    # Try to guess X socket path. This doesn't cover _everything_, but it covers some things.
+    if [[ "$DISPLAY" == :* ]]; then
+      display_nr=''${DISPLAY#?}
+      local_socket=/tmp/.X11-unix/X$display_nr
+      x11_args+=(--ro-bind-try "$local_socket" "$local_socket")
+    fi
+
     cmd=(
       ${bubblewrap}/bin/bwrap
       --dev-bind /dev /dev
@@ -171,6 +183,7 @@ let
       "''${ro_mounts[@]}"
       "''${symlinks[@]}"
       "''${auto_mounts[@]}"
+      "''${x11_args[@]}"
       ${concatStringsSep "\n  " extraBwrapArgs}
       ${init runScript}/bin/${name}-init ${initArgs}
     )