Skip to content

icon rendering/fetching#53

Draft
Marbowls wants to merge 11 commits into
Mjoyufull:devfrom
Marbowls:main
Draft

icon rendering/fetching#53
Marbowls wants to merge 11 commits into
Mjoyufull:devfrom
Marbowls:main

Conversation

@Marbowls

@Marbowls Marbowls commented Mar 29, 2026

Copy link
Copy Markdown
Collaborator

icon.rs finds the icon path and theme, strips absolute path from dekstop file.
graphics.rs does the ratattui-image protocol stuffstuff
run.rs find unchached icons spawn a bg process and sends it to the state machine
app_ui.rs renders based on need draw instead of fps

ps
(you migt want to add redb icon maping in the future so that it doesnt have to search for the icons everytime and it could also remeber theme name so the theme can switch seamlessly and also adding config options but not my job.)


Summary by cubic

Add theme‑aware icon lookup and on‑demand rendering to the app launcher. Icons now show next to app names with async loading, caching, and fewer redraws.

  • New Features

    • Theme-aware icon lookup and caching via linicon-theme + freedesktop-icons (absolute paths supported; hicolor fallback).
    • Icon rendering in the list with ratatui-image; PNG and SVG supported (SVG rasterized via usvg/resvg/tiny-skia).
    • Async loading for visible icons only; UI adds a small icon gutter and selection marker; desktop actions inherit the parent icon.
    • Picker auto-detection with a safe halfblocks fallback when graphics aren’t supported.
  • Performance

    • Redraw only when needed; limit work to visible items.
    • LRU cache (2000 icons) with de-duplicated loads; icon path lookups cached.
    • Background tasks load icons off the UI thread and stream them into the cache.

Written for commit 0de2edd. Summary will update on new commits.

@Mjoyufull Mjoyufull changed the base branch from main to dev March 30, 2026 14:23
@Marbowls

Marbowls commented Mar 30, 2026

Copy link
Copy Markdown
Collaborator Author

should add https://www.arewesixelyet.com/ so people can check what is sixel supported or not

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants