From 695a8c7f3f4832fb3e1182c5ca1886e5ef8fa7dc Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Thu, 22 Oct 2026 23:48:14 +0200 Subject: [PATCH 1/2] AppImage: don't bundle `libwayland-client`, which broke Wayland sessions Our AppImage distribution was including `libwayland-client.so.0` library from Ubuntu 22, which took precedence over the user's machine's wayland lib. So then we'd see errors like "can't get EGL platform display". This has already been fixed in AppImage itself, but cargo-packager uses an older `linuxdeploy` version that doesn't have that fix, so we still need to manually exclude it. Fixes #1155 Fixes #1072 --- Cargo.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 8f7fa46e4..53fae7c5f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -317,6 +317,11 @@ section = "utils" "./packaging/debian-copyright" = "/usr/share/doc/robrix/copyright" "./licenses/THIRD-PARTY-NOTICES.html" = "/usr/share/doc/robrix/THIRD-PARTY-NOTICES.html" +[package.metadata.packager.appimage] +## The host's Mesa EGL driver must use the host's own libwayland-client, so we don't bundle an older one. +## AppImage's excludelist skips it too, but the linuxdeploy that cargo-packager uses predates that. +excluded_libs = ["libwayland-client.so.0"] + [package.metadata.packager.appimage.files] "./packaging/rs.robius.robrix.metainfo.xml" = "/usr/share/metainfo/rs.robius.robrix.metainfo.xml" "./packaging/debian-copyright" = "/usr/share/doc/robrix/copyright" From 4aad7c718adee156ac3348a054aa8873be782b96 Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Thu, 22 Oct 2026 23:50:22 +0200 Subject: [PATCH 2/2] minor cleanup we forgot earlier --- src/home/light_themed_dock.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/home/light_themed_dock.rs b/src/home/light_themed_dock.rs index 1dfed36e9..593e5e760 100644 --- a/src/home/light_themed_dock.rs +++ b/src/home/light_themed_dock.rs @@ -114,7 +114,7 @@ script_mod! { pixel: fn() { let sdf = Sdf2d.viewport(self.pos * self.rect_size) sdf.box(1.0, 1.0, self.rect_size.x - 2.0, self.rect_size.y - 2.0, 4.0) - // Only the focused tab is vivid blue, so every other tab gets the normal hover color. + // Only the focused tab gets a special brighter style, so every other tab gets the normal hover color. sdf.fill(mix(self.color_bg_hover, self.color_bg_active_hover, self.current) * self.hover) let mid = self.rect_size * 0.5 @@ -183,7 +183,7 @@ script_mod! { // to a slightly lighter blue. color_active: COLOR_DOCK_TAB_BG_ACTIVE color_2_active: COLOR_DOCK_TAB_BG_ACTIVE_BOTTOM - // Unfocused active tabs are a pale blue, with a solid blue edge on their left. + // Unfocused active tabs have a more muted color than the focused one. color_active_unfocused: uniform(COLOR_DOCK_TAB_BG_ACTIVE_UNFOCUSED) color_edge_active_unfocused: uniform(COLOR_DOCK_TAB_EDGE_ACTIVE_UNFOCUSED) // Remove the border and rounded corners from the default Tab style @@ -207,7 +207,6 @@ script_mod! { .mix(color_active, self.active) sdf.fill_keep(fill) - // fill() blurs both sides inward, so we pad by a full blur to keep the edge 4px wide. sdf.rect(self.overlap_fix, 0.0, 4.0 + 1.0 / sdf.aa, self.rect_size.y) sdf.intersect() let edge = self.color_edge_active_unfocused