-
Notifications
You must be signed in to change notification settings - Fork 33
Description
Hey everyone, I'm pretty new to Linux and CachyOS, so please forgive me if this issue is based on lack of experience. (For disclosure, i tried to analyse and fix the problem with claue ai)
The Problem: I need both Unity and cachyos-hello to work, but they have conflicting requirements for my case:
- Unity needs: gdk-pixbuf2-noglycin (to fix slow right-click context menus - see this Unity discussion:
https://discussions.unity.com/t/in-120713-context-menus-open-very-slowly/1690076/32 - cachyos-hello needs: SVG support in gdk-pixbuf, which gdk-pixbuf2-noglycin doesn't have
For the unity fix i removed the default glycin version:
yay gdk-pixbuf2-noglycin
sudo pacman -Rs glycin
The Error: When I try to run cachyos-hello, it crashes immediately:
thread 'main' panicked at src/window.rs:54:53: called \Result::unwrap()` on an `Err`
value: Error { domain: gdk-pixbuf-error-quark, code: 3, message:
"Couldn't recognize the image file format for file
"/usr/share/icons/hicolor/scalable/apps//org.cachyos.hello.svg"" }`
This issue does not come up with any other program yet.
Path Issue:
-
Wrong path (what cachyos-hello is looking for):
/usr/share/icons/hicolor/scalable/apps//org.cachyos.hello.svg (note the double slash) -
Correct path (where the file actually exists):
/usr/share/icons/hicolor/scalable/apps/org.cachyos.hello.svg
What I've discovered:
- The official gdk-pixbuf2 package includes SVG support (via librsvg)
- gdk-pixbuf2-noglycin only has 3 loaders: wmf, openraw, and webp - no SVG
- When I check gdk-pixbuf-query-loaders | grep svg, it returns nothing
- The SVG icon file exists at /usr/share/icons/hicolor/scalable/apps/org.cachyos.hello.svg
What I've tried:
- Reinstalling cachyos-hello - didn't help
- Clearing icon caches - didn't help
- Installing/reinstalling librsvg - didn't help (loader still not registered)
Possible underlying issue and possible feature request
(Disclosure: Developed with claude ai)
Current Issue: cachyos-hello uses gdk_pixbuf::Pixbuf::from_file() to directly load SVG icons, which requires an SVG loader in gdk-pixbuf. This fails when using gdk-pixbuf2-noglycin (which lacks SVG support).
How Other Programs Handle SVG Icons Successfully:
- Icon Theme API (Recommended):
- Use GTK's icon theme system:
gtk::IconTheme::load_icon() - Request icon by name (e.g., "org.cachyos.hello") instead of hardcoded path
- GTK handles rendering internally, doesn't depend on gdk-pixbuf loaders
- Works across different gdk-pixbuf variants
- Use GTK's icon theme system:
- Alternative Renderers:
- Use
librsvgdirectly viarsvg::Loader - Use Cairo for SVG rendering
- Qt apps use their own libqsvg (doesn't depend on gdk-pixbuf)
- Use
Feature Request: Replace the direct file loading at src/window.rs:54:53 with GTK's icon theme API to improve compatibility with different gdk-pixbuf configurations.
Additional System Info
Linux ***** 6.17.9-2-cachyos #1 SMP PREEMPT_DYNAMIC Mon, 24 Nov 2025 17:57:32 +0000 x86_64 GNU/Linux
cachyos-hello 0.19.1-1
KDE Plasma
reeze-darkm Breeze
gdk-pixbuf2-noglycin 2.44.4-2