Expose errorlevel / exit code of last command to custom hlsl shaders #12945

Open
opened 2026-01-31 03:29:40 +00:00 by claunia · 0 comments
Owner

Originally created by @nincode on GitHub (Mar 10, 2021).

Description of the new feature/enhancement

Custom HLSL shaders are awesome! They would be even better if they responded to what's happening in the shell. For example, I have a nice smoothly swirling Mandlebrot background in my shell, but I would want to it to turn reddish and swirl angrily when a command errors out. So, I would like to see the errorlevel or exit code of last command exposed to HLSL.

Proposed technical implementation details (optional)

On the HLSL side, expose the error level as one more int in the cbuffer. The issue might be how to get the error level; I don't think there's a generic way of getting that in both Windows and over an SSH connection to, say, Linux. However, the Windows bit seems doable.

cbuffer PixelShaderSettings {
  float  Time;
  float  Scale;
  float2 Resolution;
  float4 Background;
  int ErrorLevel; // <---- error level of last command
};
Originally created by @nincode on GitHub (Mar 10, 2021). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> # Description of the new feature/enhancement <!-- A clear and concise description of what the problem is that the new feature would solve. Describe why and how a user would use this new functionality (if applicable). --> Custom HLSL shaders are awesome! They would be even better if they responded to what's happening in the shell. For example, I have a nice smoothly swirling Mandlebrot background in my shell, but I would want to it to turn reddish and swirl angrily when a command errors out. So, I would like to see the errorlevel or exit code of last command exposed to HLSL. # Proposed technical implementation details (optional) On the HLSL side, expose the error level as one more int in the cbuffer. The issue might be how to get the error level; I don't think there's a generic way of getting that in both Windows and over an SSH connection to, say, Linux. However, the Windows bit seems doable. ``` cbuffer PixelShaderSettings { float Time; float Scale; float2 Resolution; float4 Background; int ErrorLevel; // <---- error level of last command }; ``` <!-- A clear and concise description of what you want to happen. -->
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#12945