Summary
Add support in Nemo's icon view for dual-state icons: if the active icon theme provides a -selected variant for an icon, Nemo displays it when the item is selected, instead of applying the usual selection overlay (blue tint / border).
This mirrors the Amiga Workbench behavior, where each icon carried both a "normal" and a "selected" image that swapped on click.
No user preference, no change in behavior for users whose icon theme does not provide -selected variants.
Motivation
The current selection feedback is a uniform overlay applied to any icon. It works, but:
- The icon graphic itself carries no additional information when selected — only the background changes.
- Some users (retro-computing enthusiasts, accessibility use cases where a color overlay is hard to perceive) would benefit from a stronger visual distinction where the icon image changes.
- On AmigaOS, the dual-state icon was a defining part of the desktop experience and is often cited as one of the things modern file managers do not reproduce.
This is not about theming Nemo into Workbench — it is about letting an icon theme provide a "selected" variant and having Nemo honor it when present.
Proposed behavior
- For each rendered icon in the icon view, Nemo looks up
<icon-name>-selected in the active GtkIconTheme when the item is in the selected state.
- If the variant exists, it is rendered in place of the normal icon. If it does not exist, Nemo falls back to the current rendering (standard icon + selection overlay). No regression for themes that do not provide the variant.
- Behavior is driven entirely by the icon theme — no new user preference, consistent with how GTK already handles
-symbolic and -rtl.
Icon convention
The -selected suffix is proposed because it:
- is consistent with existing GTK/freedesktop conventions (
-symbolic, -rtl);
- does not require changes to the Icon Theme Specification;
- is trivially ignorable by other file managers (they just won't load it);
- lives entirely in icon themes — no new storage on disk, no filesystem side effects.
Example layout in a theme:
/usr/share/icons/MyTheme/scalable/places/folder.svg
/usr/share/icons/MyTheme/scalable/places/folder-selected.svg
Scope
In scope
- Icon view (desktop + folders in icon mode).
- Theme-based lookup with graceful fallback to the current rendering.
Out of scope (for this issue)
- List view / compact view (could be a follow-up).
- Animations / transitions between states.
- Per-file overrides via sibling files or extended attributes (could be discussed later if this first step lands).
- Shipping a default "selected" icon set with Mint.
Open questions
- When a
-selected variant is loaded, should the existing selection overlay still be drawn on top, or suppressed (pure swap, as on Amiga)? Suggesting: suppressed when a variant is found, kept otherwise.
- Willingness to accept a PR if I prototype this? I would like to gauge interest before investing the implementation work.
References
Summary
Add support in Nemo's icon view for dual-state icons: if the active icon theme provides a
-selectedvariant for an icon, Nemo displays it when the item is selected, instead of applying the usual selection overlay (blue tint / border).This mirrors the Amiga Workbench behavior, where each icon carried both a "normal" and a "selected" image that swapped on click.
No user preference, no change in behavior for users whose icon theme does not provide
-selectedvariants.Motivation
The current selection feedback is a uniform overlay applied to any icon. It works, but:
This is not about theming Nemo into Workbench — it is about letting an icon theme provide a "selected" variant and having Nemo honor it when present.
Proposed behavior
<icon-name>-selectedin the activeGtkIconThemewhen the item is in the selected state.-symbolicand-rtl.Icon convention
The
-selectedsuffix is proposed because it:-symbolic,-rtl);Example layout in a theme:
Scope
In scope
Out of scope (for this issue)
Open questions
-selectedvariant is loaded, should the existing selection overlay still be drawn on top, or suppressed (pure swap, as on Amiga)? Suggesting: suppressed when a variant is found, kept otherwise.References
.info): http://amiga.nvg.org/amiga/reference/Libraries_Manual_guide/node0238.html