Sandboxed XAML for less resource-hungry background animation #14925

Open
opened 2026-01-31 04:23:22 +00:00 by claunia · 0 comments
Owner

Originally created by @ghost on GitHub (Aug 22, 2021).

Description of the new feature/enhancement

There are currently two ways to configure background animation in Windows Terminal:

  1. Video files
  2. Pixel shaders

Video files will either take up a lot of disk space (when encoded at high resolution) or be prone to scaling artifacts (when encoded at low resolution). Pixel shaders are inefficient by nature and consume significantly more GPU resource than what is necessary.

Background animation implemented in XAML could possibly solve all of these problems, making it more practical for budget laptops to render animated background. Due to obvious security concerns, these XAML files must be sandboxed.

Proposed technical implementation details (optional)

The application shall accept XAML files (.xaml) in addition to all the currently supported image/video formats as a background image for each profile.

When a XAML file is specified in the profile configuration, the app loads the XAML in a sandbox and renders the content in the background.

Why XAML? Why not any other vector animation format?

Because I think that introducing another dependency just for the sake of decoration would not be acceptable. XAML animation could be implemented without any external libraries.

Why not let an external assembly draw whatever it wants into the surface?

Because at that point it's turning into a full-blown plugin architecture, which has been officially announced to not arrive until much later.

Originally created by @ghost on GitHub (Aug 22, 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). --> There are currently two ways to configure background animation in Windows Terminal: 1. Video files 2. Pixel shaders Video files will either take up a lot of disk space (when encoded at high resolution) or be prone to scaling artifacts (when encoded at low resolution). Pixel shaders are inefficient by nature and consume significantly more GPU resource than what is necessary. Background animation implemented in XAML could possibly solve all of these problems, making it more practical for budget laptops to render animated background. Due to obvious security concerns, these XAML files must be sandboxed. # Proposed technical implementation details (optional) <!-- A clear and concise description of what you want to happen. --> The application shall accept XAML files (.xaml) in addition to all the currently supported image/video formats as a background image for each profile. When a XAML file is specified in the profile configuration, the app loads the XAML in a sandbox and renders the content in the background. ## Why XAML? Why not any other vector animation format? Because I think that introducing another dependency just for the sake of decoration would not be acceptable. XAML animation could be implemented without any external libraries. ## Why not let an external assembly draw whatever it wants into the surface? Because at that point it's turning into a full-blown plugin architecture, which has been officially announced to not arrive until much later.
claunia added the Issue-FeatureProduct-TerminalArea-Extensibility labels 2026-01-31 04:23:22 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#14925