Skip to content

Official provider for system icons? #213

@nickjj

Description

@nickjj

I found myself wanting to locate system icons and wanting to know the following information about the icon:

  • Which theme does it belong to
  • What is its name
  • How big is it

I searched through:

  • /usr/share/icons
  • ~/.local/share/icons

On my system, there's directories like this. Within these directories, there's svg and png icons:

Octal Permissions Size User Group Date Modified    Name
0755  drwxr-xr-x     - root root  2026-01-22 21:13   /usr/share/icons
0755  drwxr-xr-x     - root root  2025-12-21 18:53 ├──   Adwaita
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   ├──   16x16
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   ├──   cursors
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   ├──   scalable
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   └──   symbolic
0755  drwxr-xr-x     - root root  2025-12-21 18:53 ├──   AdwaitaLegacy
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   ├──   8x8
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   ├──   16x16
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   ├──   22x22
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   ├──   24x24
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   ├──   32x32
0755  drwxr-xr-x     - root root  2025-12-21 18:52 │   └──   48x48
0755  drwxr-xr-x     - root root  2026-02-17 08:21 ├──   breeze
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   actions
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   animations
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   applets
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   apps
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   categories
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   devices
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   emblems
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   emotes
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   mimetypes
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   places
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   preferences
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   └──   status
0755  drwxr-xr-x     - root root  2026-02-17 08:21 ├──   breeze-dark
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   actions
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   animations
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   applets
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   apps
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   categories
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   devices
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   emblems
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   emotes
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   mimetypes
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   places
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   ├──   preferences
0755  drwxr-xr-x     - root root  2026-02-17 08:21 │   └──   status
0755  drwxr-xr-x     - root root  2026-03-04 08:10 ├──   breeze_cursors
0755  drwxr-xr-x     - root root  2026-03-04 08:10 │   ├──   cursors
0755  drwxr-xr-x     - root root  2026-03-04 08:10 │   └──   cursors_scalable
0755  drwxr-xr-x     - root root  2026-03-04 08:10 ├──   Breeze_Light
0755  drwxr-xr-x     - root root  2026-03-04 08:10 │   ├──   cursors
0755  drwxr-xr-x     - root root  2026-03-04 08:10 │   └──   cursors_scalable
0755  drwxr-xr-x     - root root  2025-12-21 18:29 ├──   default
0755  drwxr-xr-x     - root root  2026-03-06 09:34 └──   hicolor
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   16x16
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   16x16@2
0755  drwxr-xr-x     - root root  2026-02-12 18:56     ├──   20x20
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   22x22
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   22x22@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   24x24
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   24x24@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   32x32
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   32x32@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   36x36
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   36x36@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   48x48
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   48x48@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   64x64
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   64x64@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   72x72
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   72x72@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   96x96
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   96x96@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   128x128
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   128x128@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   192x192
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   192x192@2
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   256x256
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   256x256@2
0755  drwxr-xr-x     - root root  2025-12-21 18:52     ├──   384x384
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   512x512
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   512x512@2
0755  drwxr-xr-x     - root root  2025-12-21 19:47     ├──   1024x1024
0755  drwxr-xr-x     - root root  2025-12-21 18:29     ├──   scalable
0755  drwxr-xr-x     - root root  2025-12-21 18:29     └──   symbolic

They have files like this:

Octal Permissions Size User Group Date Modified    Name
0644  .rw-r--r--   391 root root  2025-09-13 16:55   folder-bookmarks.png
0644  .rw-r--r--   404 root root  2025-09-13 16:55   folder-documents.png
0644  .rw-r--r--   407 root root  2025-09-13 16:55   folder-download.png
0644  .rw-r--r--   333 root root  2025-09-13 16:55   folder-drag-accept.png
0644  .rw-r--r--   404 root root  2025-09-13 16:55   folder-music.png
0644  .rw-r--r--   416 root root  2025-09-13 16:55   folder-pictures.png
0644  .rw-r--r--   417 root root  2025-09-13 16:55   folder-publicshare.png
0644  .rw-r--r--   419 root root  2025-09-13 16:55   folder-remote.png
0644  .rw-r--r--   383 root root  2025-09-13 16:55   folder-templates.png
0644  .rw-r--r--   399 root root  2025-09-13 16:55   folder-videos.png
0644  .rw-r--r--   333 root root  2025-09-13 16:55   folder.png
0644  .rw-r--r--   340 root root  2025-09-13 16:55   network-server.png
0644  .rw-r--r--   410 root root  2025-09-13 16:55   network-workgroup.png
0644  .rw-r--r--   387 root root  2025-09-13 16:55   user-bookmarks.png
0644  .rw-r--r--   412 root root  2025-09-13 16:55   user-desktop.png
0644  .rw-r--r--   418 root root  2025-09-13 16:55   user-home.png
0644  .rw-r--r--   427 root root  2025-09-13 16:55   user-trash.png

It would be cool to be able to search for "keyboard" to find all icons with "keyboard" in its name.

Implementation details

Maybe it could display the icon and filename as primary content and the theme / size as subtext? The theme name would be the directory name.

Picking the item could by default return the icon name without the extension like "folder-remote". Maybe there could be a ctrl action modifier shortcut to return the full path since that could be useful from time to time.

For provider configuration options, maybe it could support a list of paths to search in and it could default to the (2) standard paths described above and any other standard paths (I didn't research this in depth).

I'm pretty sure I could create a custom menu for this but this feels maybe useful enough to have as a main line provider? What do you think? I'm confident I could write the Lua menu code for this but adding a Go provider is above my pay grade and I don't want to waste your time with AI generated nonsense.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions