From 5b27988454369843b3fe34f63906200fd828ad12 Mon Sep 17 00:00:00 2001 From: Bernd Schoolmann Date: Wed, 16 Jul 2025 17:21:12 +0200 Subject: [PATCH] [PM-10448] Enable wayland where possible in Linux Desktop (#10359) * Enable wayland where possible * Update electron to 34.4.0 * Re-add snap libdbus fix * Flatpak permissions for wayland * Bump electron version to 35.5.1 * Switch to x11 socket from x11-fallback * Fix package.json --- apps/desktop/electron-builder.json | 3 ++- apps/desktop/resources/com.bitwarden.desktop.devel.yaml | 3 +++ .../resources/{memory-dump-wrapper.sh => linux-wrapper.sh} | 7 +++++-- apps/desktop/scripts/after-pack.js | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) rename apps/desktop/resources/{memory-dump-wrapper.sh => linux-wrapper.sh} (62%) diff --git a/apps/desktop/electron-builder.json b/apps/desktop/electron-builder.json index 0c2ec58bc3e..832ab9d0bd3 100644 --- a/apps/desktop/electron-builder.json +++ b/apps/desktop/electron-builder.json @@ -262,7 +262,8 @@ }, "u2f-devices" ], - "stagePackages": ["default"] + "stagePackages": ["default"], + "allowNativeWayland": true }, "protocols": [ { diff --git a/apps/desktop/resources/com.bitwarden.desktop.devel.yaml b/apps/desktop/resources/com.bitwarden.desktop.devel.yaml index 3aeebfd809d..858fb6e1af2 100644 --- a/apps/desktop/resources/com.bitwarden.desktop.devel.yaml +++ b/apps/desktop/resources/com.bitwarden.desktop.devel.yaml @@ -8,6 +8,9 @@ command: bitwarden.sh finish-args: - --share=ipc - --share=network + - --socket=wayland + # This should be fallback-x11, but on gnome/mutter, zwlr_data_control_manager_v1 is not implemented + # so we need to use x11 as a fallback to make copy paste work - --socket=x11 - --device=dri - --env=XDG_CURRENT_DESKTOP=Unity diff --git a/apps/desktop/resources/memory-dump-wrapper.sh b/apps/desktop/resources/linux-wrapper.sh similarity index 62% rename from apps/desktop/resources/memory-dump-wrapper.sh rename to apps/desktop/resources/linux-wrapper.sh index 6737cc312f4..dd53eb9811c 100644 --- a/apps/desktop/resources/memory-dump-wrapper.sh +++ b/apps/desktop/resources/linux-wrapper.sh @@ -13,6 +13,9 @@ then export LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libdbus-1.so.3" fi -# pass through all args -$APP_PATH/bitwarden-app "$@" +PARAMS="--enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto" +if [ "$USE_X11" = "true" ]; then + PARAMS="" +fi +$APP_PATH/bitwarden-app $PARAMS "$@" diff --git a/apps/desktop/scripts/after-pack.js b/apps/desktop/scripts/after-pack.js index 997edf2ed6a..5fc42f31ac3 100644 --- a/apps/desktop/scripts/after-pack.js +++ b/apps/desktop/scripts/after-pack.js @@ -25,7 +25,7 @@ async function run(context) { fse.moveSync(oldBin, newBin); console.log("Moved binary to bitwarden-app"); - const wrapperScript = path.join(__dirname, "../resources/memory-dump-wrapper.sh"); + const wrapperScript = path.join(__dirname, "../resources/linux-wrapper.sh"); const wrapperBin = path.join(appOutDir, context.packager.executableName); fse.copyFileSync(wrapperScript, wrapperBin); fse.chmodSync(wrapperBin, "755");