Describe the feature
Add more distinct icons for suggestion sources and suggestion kinds, and allow users to override them in the configuration.
IRIS already has dedicated Nerd Font icons for many known commands, but the semantic meaning of a suggestion is less visible. In practice, many rows use the generic fallback/terminal-style icon, while history suggestions have a distinct history icon.
It would be useful to distinguish at least these suggestion sources:
- Command spec/completion
- Shell history
- Alias
- System/PATH executable
- AI-generated suggestion
Suggestion kinds could also have their own icons where that information is available:
- Command
- Subcommand
- Option/flag
- File
- Directory
Possible future kinds include Git branches/tags and environment variables.
Ideally, the icon mapping would be configurable. For example:
[ui.icons]
spec = "..."
history = "..."
alias = "..."
system = "..."
ai = "..."
command = "..."
subcommand = "..."
option = "..."
file = "..."
directory = "..."
fallback = "❯"
The existing built-in icons should remain the defaults, so this would not require users to change their configuration.
It should be implemented because
Distinct semantic icons would make the suggestion list easier to scan and help users understand why an item is being suggested. This is especially useful when similar commands are returned from different sources, such as local history, built-in specs, or AI.
Making AI-generated suggestions visually distinct is also valuable for trust and predictability: users can immediately tell whether a suggestion comes from local deterministic data or an AI provider.
Configurable icons would let users match their font and terminal setup. When Nerd Fonts are disabled, IRIS could use Unicode or ASCII fallbacks.
Additional context
The current Suggestion model already contains both Source and Icon, but Icon can represent either a command identity (for example, Git or Docker) or a semantic source (for example, history or alias). Separating these concepts, or defining a clear fallback order, could make the behavior easier to extend.
One possible fallback order is:
- An explicit command-specific icon
- A suggestion-kind icon
- A suggestion-source icon
- The generic fallback icon
If the layout has enough room, another option would be to keep the command-specific icon in the leading column and use a compact badge for the suggestion source.
This is related to #17, but it is specifically about semantic icon mapping and suggestion metadata rather than full color/theme customization.
Describe the feature
Add more distinct icons for suggestion sources and suggestion kinds, and allow users to override them in the configuration.
IRIS already has dedicated Nerd Font icons for many known commands, but the semantic meaning of a suggestion is less visible. In practice, many rows use the generic fallback/terminal-style icon, while history suggestions have a distinct history icon.
It would be useful to distinguish at least these suggestion sources:
Suggestion kinds could also have their own icons where that information is available:
Possible future kinds include Git branches/tags and environment variables.
Ideally, the icon mapping would be configurable. For example:
The existing built-in icons should remain the defaults, so this would not require users to change their configuration.
It should be implemented because
Distinct semantic icons would make the suggestion list easier to scan and help users understand why an item is being suggested. This is especially useful when similar commands are returned from different sources, such as local history, built-in specs, or AI.
Making AI-generated suggestions visually distinct is also valuable for trust and predictability: users can immediately tell whether a suggestion comes from local deterministic data or an AI provider.
Configurable icons would let users match their font and terminal setup. When Nerd Fonts are disabled, IRIS could use Unicode or ASCII fallbacks.
Additional context
The current
Suggestionmodel already contains bothSourceandIcon, butIconcan represent either a command identity (for example, Git or Docker) or a semantic source (for example, history or alias). Separating these concepts, or defining a clear fallback order, could make the behavior easier to extend.One possible fallback order is:
If the layout has enough room, another option would be to keep the command-specific icon in the leading column and use a compact badge for the suggestion source.
This is related to #17, but it is specifically about semantic icon mapping and suggestion metadata rather than full color/theme customization.