Feature request: optional dual-state icons (unselected / selected) in icon view
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
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
- For each rendered icon in the icon view, Nemo looks up
<icon-name>-selectedin the activeGtkIconThemewhen 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
-symbolicand-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
-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. - Willingness to accept a PR if I prototype this? I would like to gauge interest before investing the implementation work.
References
- Amiga Workbench icon format (dual-image
.info): http://amiga.nvg.org/amiga/reference/Libraries_Manual_guide/node0238.html - freedesktop Icon Theme Specification: https://specifications.freedesktop.org/icon-theme-spec/
- 主要言語
- C
- スター
- 1.6k
- フォーク
- 376
- 平均マージ
- 6日 21時間
- マージ済み PR(30日)
- 2
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
linuxmint/nemo のほかの issue
-
"Follow link to original file" item has no underlined mnemonic letter対応中かも @ronitgupta138 が 21 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
Desktop rename box: white text on a hardcoded white gradient with any dark theme (also black caret)対応中かも @ronitgupta138 が 3 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
linuxmint/nemo#3843 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Copy dialog: Enter key accidentally cancels file copy対応中かも @ronitgupta138 が 3 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
linuxmint/nemo#3838 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
os:linux
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
mpv-player/mpv#18649 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
facebookincubator/muse-gadget-sdk#249 ·
メンテナーはふだん 1 日以内に返信
-
docs: nng_dial / nng_dialer_start can return NNG_ECONNSHUT and NNG_ECRYPTO, which are not documentedオープン
難易度 1/5 1〜3時間 初心者へのやさしさ 89/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
micropython/micropython#19786 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
vercel-labs/zerolang#442 ·