I made a small tool for KDE Plasma (and other freedesktop desktops) that lets you easily customize single app icons:

  • Use your own images or library
  • Copy icon from another app
  • Pick one icon from any installed theme (without switching global theme)
  • Built-in pixel editor to create your own
  • Batch apply, undo, overrides, missing icons overview
  • Import image to turn it into an icon

Completely user-level, safe, and reversible. No manual .desktop editing.

GitHub: https://github.com/rayman1972/kappicon

AUR: kappicon or kappicon-git

Feedback welcome!-

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 2 months ago (1 child)

Help me understand, how does it work well (or better than either pure bash or pure python)? From what I know, calling python multiple times in a shell script is very inefficient vs running a single full python script.

Also, for maintainability I try to avoid in-lining another language in a shell script as it is almost always more confusing code because of escapes. What am I missing that makes this way better?

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] 1 point 2 months ago

    The shell + inline Python bits are mostly because I forked from the original macosicons-linux project, which already used that pattern. The shell script is convenient for installation tasks (XDG paths, optional deps, desktop entry, cache updates, etc.) ; things that feel natural in bash for small Linux tools. For the CLI: the small Python calls are quick one off things, not performance heavy. The main GUI is pure Python/PyQt6 of course. You're right though: spawning Python multiple times isn't the most efficient, and inline code can be messy with escaping. It's more pragmatic than beautiful. I kept it this way to get things working fast, which is not ideal long-term. If there's a small user base and the program is actively being used, I'll probably rewrite the whole thing.

  • source
  • parent