Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packaging/linux/chartr.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ Keywords=agent;terminal;multiplexer;wayfinder;
# The window's WM_CLASS, so the desktop pairs the running window with this entry
# rather than drawing a second, iconless task-bar item beside it. GTK derives it
# from the program name, which is `chartr` inside the AppDir.
StartupWMClass=chartr
StartupWMClass=Chartr
StartupNotify=true
13 changes: 6 additions & 7 deletions scripts/smoke-appimage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -85,17 +85,16 @@ docker run --rm -v "$(realpath "$APPIMAGE")":/chartr.AppImage:ro "$IMAGE" bash -
fail "WebKit reported an internal error"
fi

# The X11 identity and icon are the runtime half of desktop integration.
# Merely finding chartr.png inside the AppImage would not prove either was
# attached to the actual GTK window (the original regression).
# The X11 identity is the runtime half of desktop integration. GTK's resource
# name is lowercase and its resource class is conventionally title-cased;
# StartupWMClass uses the latter so a real desktop resolves the bundled icon.
# Bare Xvfb has no window manager, so _NET_WM_ICON is diagnostic only here.
WINDOW_ID=$(xdotool search --onlyvisible --name "chartr" 2>/dev/null | head -n 1)
[ -n "$WINDOW_ID" ] || fail "could not find the chartr window"
PROPS=$(xprop -id "$WINDOW_ID" WM_CLASS _NET_WM_ICON)
echo "$PROPS"
echo "$PROPS" | grep -q "WM_CLASS(STRING) = \"chartr\", \"chartr\"" || \
echo "$PROPS" | grep -q "WM_CLASS(STRING) = \"chartr\", \"Chartr\"" || \
fail "the window WM_CLASS does not match chartr.desktop"
echo "$PROPS" | grep -q "_NET_WM_ICON(CARDINAL) =" || \
fail "the GTK window has no application icon"

echo "SMOKE PASSED: the cockpit rendered and its window carries the chartr icon"
echo "SMOKE PASSED: the cockpit rendered and its window matches chartr.desktop"
'
Loading