Skip to content

Feature request: optional dual-state icons (unselected / selected) in icon view #3761

@EricBlanquer

Description

@EricBlanquer

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

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. Willingness to accept a PR if I prototype this? I would like to gauge interest before investing the implementation work.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions