microsoft / microsoft/terminal

Sandboxed XAML for less resource-hungry background animation

Open
#11,006 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Extensibility Issue-Feature Product-Terminal
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

# 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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points, so first map how profile background images and videos are configured and rendered. Assess the security requirements for sandboxed XAML and define completion as accepting .xaml backgrounds, safely loading them, and rendering them without the stated resource concerns.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.