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
26 changes: 26 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,32 @@ jobs:
fi
echo "every row goes through the helper"

# The desktop draws this file through gdk-pixbuf, which recognises a format by sniffing the first
# bytes of it: the SVG loader looks for `<svg` near the start. A comment written above the element
# pushed `<svg` 501 bytes in, and every consumer answered "couldn't recognize the image file format"
# while the file stayed perfectly valid SVG — so the dock, the app grid and the window all drew
# nothing, and nothing anywhere said why.
#
# It has to be this tool. `rsvg-convert` parses the file directly, accepts the broken one and exits 0,
# so a check built on it proves nothing. And the thumbnailer warns and *also* exits 0, so the check
# has to look at what came out rather than at the exit status. Both were tried against the broken
# file before this was written.
- name: The icon is an icon as far as the desktop is concerned
run: |
set -euo pipefail
sudo apt-get install -y -qq libgdk-pixbuf2.0-bin librsvg2-common
icon=packaging/desktop/com.xinbetween.Flowlight.svg
at=$(grep -abo '<svg' "$icon" | head -1 | cut -d: -f1)
echo "<svg starts at byte $at"
rm -f /tmp/icon.png
gdk-pixbuf-thumbnailer -s 64 "$icon" /tmp/icon.png || true
if [ ! -s /tmp/icon.png ]; then
echo "gdk-pixbuf cannot draw this file, so no desktop will either."
echo "<svg is $at bytes in; the loader sniffs the start of the file. Keep comments inside the element."
exit 1
fi
echo "the icon draws: $(stat -c %s /tmp/icon.png) bytes of PNG"

- name: A row shows the text it was given
run: |
set -euo pipefail
Expand Down
28 changes: 14 additions & 14 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ default-members = [
]

[workspace.package]
version = "0.5.14"
version = "0.5.15"
edition = "2024"
license = "GPL-3.0-only"
repository = "https://github.com/xinbetween/flowlight-linux"
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,13 @@ including an installation from it with a throwaway key, and goes live once a sig
[`packaging/apt/README.md`](packaging/apt/README.md) says why that key is not something this code can create for
you. Until it is, the commands above have nothing to answer them.

**The application icon.** It is one SVG, at
`/usr/share/icons/hicolor/scalable/apps/com.xinbetween.Flowlight.svg`, and the desktop draws it through
gdk-pixbuf — which recognises the format by sniffing the first bytes of the file. Keep `<svg` near the start.
Until v0.5.15 a comment sat above it, `<svg` began 501 bytes in, and every desktop answered "couldn't
recognize the image file format" and drew no icon, with the file remaining valid SVG throughout. CI now draws
the icon through the same loader on every push.

**An empty Live page says which kind of empty it is.** Payload capture runs for a session — eight hours by
default — and stops when that session ends. Until v0.5.14 the window then showed "Nothing read in this
window", which reads as "your machine was quiet" when it means "Flowlight stopped reading". It now says the
Expand Down
22 changes: 14 additions & 8 deletions packaging/desktop/com.xinbetween.Flowlight.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading