Improve border rendering (#152) and add full icon theme search support (#155)
Summary
This PR combines improvements to the rendering system and the icon theme handling.
Rendering Improvements
- Fixed rounded borders so both outer and inner corners render correctly.
- Improved handling of border width and radius.
- Ensured cleaner border and background separation with proper fill rules. Screencast_20251108_160137.webm
Icon Theme Enhancements
- Added proper icon theme lookup system supporting:
/usr/share/icons/usr/local/share/icons~/.local/share/icons~/.icons/usr/share/pixmaps/var/lib/flatpak/exports/share/icons$XDG_DATA_DIRS/icons
- Supports multiple formats:
.svg,.svgz,.png,.xpm - Handles scalable and symbolic icons correctly.
- Added fallback to
hicolor (optional)and predefined default theme (Adwaita). Screencast_20251108_230054.webm
Additional Notes
- All directory checks are validated before access for better performance.
- Keeps backward compatibility with existing configuration.
- Makes icon lookup consistent across different Linux environments.
Related issue
Fixes #152 FIxes #155
Hey! Thanks for the pull request, this has been on the list for a while.
- Was any of this PR written with AI? Just asking because it changes how I would review it.
- The outer border is intentionally square to match the window. Compositors like compton draw shadows based solely on the window rect rather than the content of the window, so it looks buggy in that scenario. Having said that, I can see the value in both -- would you mind making it a configuration option?
1.Yeh some of it because my English not that good and afraid it’s not be like professional if I type it / if you mean the code no it just give the idea of fill rule and fallback icons
- For what? Option for making border fully rounded? Or the icons fallback
No worries :)
For what? Option for making border fully rounded? Or the icons fallback
For making the border fully rounded.
Done.
Thank you, I'll give this a try over the weekend.
Sorry for the delay!
I'm so sorry, my Linux machine is having problems so I might take a little longer to get to this.
No problem