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

未关闭
#3,761 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 10 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
冷清
技术栈
c
领域
desktop

调研方向

从 Nemo 的图标视图渲染路径以及用于已渲染图标的 GtkIconTheme 查找开始。确认当前选中项如何获得选择叠加层,然后定义 -selected 回退行为,并验证只有在找到变体时才会抑制叠加层。

由索引模型根据 Issue 内容生成。

描述

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
主要语言
C
星标
1.6k
派生
379
平均合并
10 天 14 小时
30 天内合并 PR
4

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

linuxmint/nemo 的其他 Issue

查看 linuxmint/nemo 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。