Merge pull request #223929 from Enzime/fix/1password-wayland

Fix `NIXOS_OZONE_WL` not working with 1Password
This commit is contained in:
Maximilian Bosch 2023-04-02 17:44:56 +02:00 committed by GitHub
commit cd9eead62d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -4,7 +4,7 @@
, version
, src
, meta
, makeWrapper
, makeShellWrapper
, wrapGAppsHook
, alsa-lib
, at-spi2-atk
@ -49,7 +49,7 @@ let
in stdenv.mkDerivation {
inherit pname version src meta;
nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
nativeBuildInputs = [ makeShellWrapper wrapGAppsHook ];
buildInputs = [ glib ];
dontConfigure = true;
@ -120,12 +120,14 @@ in stdenv.mkDerivation {
'';
preFixup = ''
# makeWrapper defaults to makeBinaryWrapper due to wrapGAppsHook
# but we need a shell wrapper specifically for `NIXOS_OZONE_WL`.
# Electron is trying to open udev via dlopen()
# and for some reason that doesn't seem to be impacted from the rpath.
# Adding udev to LD_LIBRARY_PATH fixes that.
# Make xdg-open overrideable at runtime.
makeWrapper $out/share/1password/1password $out/bin/1password \
''${gappsWrapperArgs[@]} \
makeShellWrapper $out/share/1password/1password $out/bin/1password \
"''${gappsWrapperArgs[@]}" \
--suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]} \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"