diff --git a/.github/actions/spell-check/dictionary/apis.txt b/.github/actions/spell-check/dictionary/apis.txt
index fdb6a2dcd05..88494b86f64 100644
--- a/.github/actions/spell-check/dictionary/apis.txt
+++ b/.github/actions/spell-check/dictionary/apis.txt
@@ -1,11 +1,13 @@
ACCEPTFILES
ACCESSDENIED
+alignof
bitfield
bitfields
CLASSNOTAVAILABLE
EXPCMDFLAGS
EXPCMDSTATE
fullkbd
+futex
href
IAsync
IBind
@@ -33,5 +35,10 @@ RETURNCMD
rfind
roundf
RSHIFT
+rx
SIZENS
+spsc
+STDCPP
+syscall
tmp
+tx
diff --git a/.github/actions/spell-check/dictionary/microsoft.txt b/.github/actions/spell-check/dictionary/microsoft.txt
index 5e5d2ee3164..ef2c23c5ab6 100644
--- a/.github/actions/spell-check/dictionary/microsoft.txt
+++ b/.github/actions/spell-check/dictionary/microsoft.txt
@@ -1,4 +1,5 @@
ACLs
+altform
backplating
DACL
DACLs
@@ -9,7 +10,9 @@ microsoftonline
osgvsowi
powerrename
powershell
+pscustomobject
SACLs
tdbuildteamid
vcruntime
visualstudio
+wslpath
diff --git a/.github/actions/spell-check/expect/expect.txt b/.github/actions/spell-check/expect/expect.txt
index 4774abf99a2..01b64c42d78 100644
--- a/.github/actions/spell-check/expect/expect.txt
+++ b/.github/actions/spell-check/expect/expect.txt
@@ -1083,6 +1083,8 @@ INITCOMMONCONTROLSEX
INITDIALOG
initguid
INITMENU
+imagemagick
+inkscape
inl
INLINEPREFIX
Inlines
@@ -1530,6 +1532,7 @@ nothrow
NOTICKS
NOTIMPL
notin
+NOTOPMOST
NOTNULL
NOTRACK
NOTSUPPORTED
@@ -2265,6 +2268,7 @@ targetentrypoint
TARGETLIBS
TARGETNAME
targetnametoken
+targetsize
targetver
taskbar
tbar
diff --git a/NuGet.Config b/NuGet.Config
index de105e187bc..00b1de60c4f 100644
--- a/NuGet.Config
+++ b/NuGet.Config
@@ -8,7 +8,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/terminal/Terminal_HC.svg b/res/terminal/Terminal_HC.svg
new file mode 100644
index 00000000000..e5e3a5434f9
--- /dev/null
+++ b/res/terminal/Terminal_HC.svg
@@ -0,0 +1,17 @@
+
diff --git a/res/terminal/Terminal_Pre_HC.svg b/res/terminal/Terminal_Pre_HC.svg
new file mode 100644
index 00000000000..c08c3747a5e
--- /dev/null
+++ b/res/terminal/Terminal_Pre_HC.svg
@@ -0,0 +1,17 @@
+
diff --git a/res/terminal/images-Dev/LargeTile.scale-100_contrast-black.png b/res/terminal/images-Dev/LargeTile.scale-100_contrast-black.png
new file mode 100644
index 00000000000..4f9f6ceeec5
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LargeTile.scale-100_contrast-white.png b/res/terminal/images-Dev/LargeTile.scale-100_contrast-white.png
new file mode 100644
index 00000000000..3dba00e203b
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Dev/LargeTile.scale-125_contrast-black.png b/res/terminal/images-Dev/LargeTile.scale-125_contrast-black.png
new file mode 100644
index 00000000000..43fe337ac29
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LargeTile.scale-125_contrast-white.png b/res/terminal/images-Dev/LargeTile.scale-125_contrast-white.png
new file mode 100644
index 00000000000..893a64f8ec5
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Dev/LargeTile.scale-150_contrast-black.png b/res/terminal/images-Dev/LargeTile.scale-150_contrast-black.png
new file mode 100644
index 00000000000..2b51fefb028
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LargeTile.scale-150_contrast-white.png b/res/terminal/images-Dev/LargeTile.scale-150_contrast-white.png
new file mode 100644
index 00000000000..602efd44f01
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Dev/LargeTile.scale-200_contrast-black.png b/res/terminal/images-Dev/LargeTile.scale-200_contrast-black.png
new file mode 100644
index 00000000000..07c342a30c5
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LargeTile.scale-200_contrast-white.png b/res/terminal/images-Dev/LargeTile.scale-200_contrast-white.png
new file mode 100644
index 00000000000..1ef86a82225
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Dev/LargeTile.scale-400_contrast-black.png b/res/terminal/images-Dev/LargeTile.scale-400_contrast-black.png
new file mode 100644
index 00000000000..dcbc2dfec17
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LargeTile.scale-400_contrast-white.png b/res/terminal/images-Dev/LargeTile.scale-400_contrast-white.png
new file mode 100644
index 00000000000..bc6097de8b4
Binary files /dev/null and b/res/terminal/images-Dev/LargeTile.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-100_contrast-black.png b/res/terminal/images-Dev/LockScreenLogo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..931b46f2318
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-100_contrast-white.png b/res/terminal/images-Dev/LockScreenLogo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..41c3aee3502
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-125_contrast-black.png b/res/terminal/images-Dev/LockScreenLogo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..d0c78011e6c
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-125_contrast-white.png b/res/terminal/images-Dev/LockScreenLogo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..1788b2253da
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-150_contrast-black.png b/res/terminal/images-Dev/LockScreenLogo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..153e67c4ebb
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-150_contrast-white.png b/res/terminal/images-Dev/LockScreenLogo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..79ee49b96db
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-200_contrast-black.png b/res/terminal/images-Dev/LockScreenLogo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..03201095aec
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-200_contrast-white.png b/res/terminal/images-Dev/LockScreenLogo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..9c5b7161150
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-400_contrast-black.png b/res/terminal/images-Dev/LockScreenLogo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..563108e90e9
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Dev/LockScreenLogo.scale-400_contrast-white.png b/res/terminal/images-Dev/LockScreenLogo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..0f9c7950c71
Binary files /dev/null and b/res/terminal/images-Dev/LockScreenLogo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-100_contrast-black.png b/res/terminal/images-Dev/SmallTile.scale-100_contrast-black.png
new file mode 100644
index 00000000000..3b4d5619397
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-100_contrast-white.png b/res/terminal/images-Dev/SmallTile.scale-100_contrast-white.png
new file mode 100644
index 00000000000..110e3de75f0
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-125_contrast-black.png b/res/terminal/images-Dev/SmallTile.scale-125_contrast-black.png
new file mode 100644
index 00000000000..473ec5122af
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-125_contrast-white.png b/res/terminal/images-Dev/SmallTile.scale-125_contrast-white.png
new file mode 100644
index 00000000000..d864ab7131c
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-150_contrast-black.png b/res/terminal/images-Dev/SmallTile.scale-150_contrast-black.png
new file mode 100644
index 00000000000..c9f872090e0
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-150_contrast-white.png b/res/terminal/images-Dev/SmallTile.scale-150_contrast-white.png
new file mode 100644
index 00000000000..6f029a17a15
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-200_contrast-black.png b/res/terminal/images-Dev/SmallTile.scale-200_contrast-black.png
new file mode 100644
index 00000000000..ee72b0ec3ee
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-200_contrast-white.png b/res/terminal/images-Dev/SmallTile.scale-200_contrast-white.png
new file mode 100644
index 00000000000..af58357987f
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-400_contrast-black.png b/res/terminal/images-Dev/SmallTile.scale-400_contrast-black.png
new file mode 100644
index 00000000000..c636747380b
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SmallTile.scale-400_contrast-white.png b/res/terminal/images-Dev/SmallTile.scale-400_contrast-white.png
new file mode 100644
index 00000000000..cfa8ce7e4c7
Binary files /dev/null and b/res/terminal/images-Dev/SmallTile.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-100_contrast-black.png b/res/terminal/images-Dev/SplashScreen.scale-100_contrast-black.png
new file mode 100644
index 00000000000..a4480138b64
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-100_contrast-white.png b/res/terminal/images-Dev/SplashScreen.scale-100_contrast-white.png
new file mode 100644
index 00000000000..09b65238b44
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-125_contrast-black.png b/res/terminal/images-Dev/SplashScreen.scale-125_contrast-black.png
new file mode 100644
index 00000000000..d827b3a621c
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-125_contrast-white.png b/res/terminal/images-Dev/SplashScreen.scale-125_contrast-white.png
new file mode 100644
index 00000000000..53057953a8f
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-150_contrast-black.png b/res/terminal/images-Dev/SplashScreen.scale-150_contrast-black.png
new file mode 100644
index 00000000000..9137cacbf18
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-150_contrast-white.png b/res/terminal/images-Dev/SplashScreen.scale-150_contrast-white.png
new file mode 100644
index 00000000000..06a70ddc7dd
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-200_contrast-black.png b/res/terminal/images-Dev/SplashScreen.scale-200_contrast-black.png
new file mode 100644
index 00000000000..38ad367e109
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-200_contrast-white.png b/res/terminal/images-Dev/SplashScreen.scale-200_contrast-white.png
new file mode 100644
index 00000000000..e910cabe62c
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-400_contrast-black.png b/res/terminal/images-Dev/SplashScreen.scale-400_contrast-black.png
new file mode 100644
index 00000000000..40c8b3d2429
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Dev/SplashScreen.scale-400_contrast-white.png b/res/terminal/images-Dev/SplashScreen.scale-400_contrast-white.png
new file mode 100644
index 00000000000..bdf7b5b7cb8
Binary files /dev/null and b/res/terminal/images-Dev/SplashScreen.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-100_contrast-black.png b/res/terminal/images-Dev/Square150x150Logo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..a94e09558d5
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-100_contrast-white.png b/res/terminal/images-Dev/Square150x150Logo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..8b15f746632
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-125_contrast-black.png b/res/terminal/images-Dev/Square150x150Logo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..52a0961f9c1
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-125_contrast-white.png b/res/terminal/images-Dev/Square150x150Logo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..1f2b02d1b32
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-150_contrast-black.png b/res/terminal/images-Dev/Square150x150Logo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..e709c17c3b7
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-150_contrast-white.png b/res/terminal/images-Dev/Square150x150Logo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..00fb42558e0
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-200_contrast-black.png b/res/terminal/images-Dev/Square150x150Logo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..da75c53210c
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-200_contrast-white.png b/res/terminal/images-Dev/Square150x150Logo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..f56a69cf10f
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-400_contrast-black.png b/res/terminal/images-Dev/Square150x150Logo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..3bb828ac8d5
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square150x150Logo.scale-400_contrast-white.png b/res/terminal/images-Dev/Square150x150Logo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..99fc2a7ff4d
Binary files /dev/null and b/res/terminal/images-Dev/Square150x150Logo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-100_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..9f13cded565
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-100_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..7786af596e0
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-125_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..eed2b33a67a
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-125_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..86948693b8a
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-150_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..085efc7b6af
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-150_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..c6ef1dafa8e
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-200_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..16469eb5bd3
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-200_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..f9a6ae53359
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-400_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..0b8ca35feb0
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.scale-400_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..fa3109e7e22
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-16_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-16_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..26ae28f2a0b
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-16_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-16_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-16_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..d1a2951126a
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-16_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-16_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-16_contrast-black.png
new file mode 100644
index 00000000000..26ae28f2a0b
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-16_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-16_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-16_contrast-white.png
new file mode 100644
index 00000000000..d1a2951126a
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-16_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-20_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-20_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..a036a06ee23
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-20_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-20_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-20_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..42d68e5f6f5
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-20_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-20_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-20_contrast-black.png
new file mode 100644
index 00000000000..a036a06ee23
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-20_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-20_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-20_contrast-white.png
new file mode 100644
index 00000000000..42d68e5f6f5
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-20_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-24_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-24_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..931b46f2318
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-24_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-24_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-24_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..41c3aee3502
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-24_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-24_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-24_contrast-black.png
new file mode 100644
index 00000000000..931b46f2318
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-24_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-24_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-24_contrast-white.png
new file mode 100644
index 00000000000..41c3aee3502
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-24_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..f89467e7320
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..665dfbe3a37
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-256_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-256_contrast-black.png
new file mode 100644
index 00000000000..f89467e7320
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-256_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-256_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-256_contrast-white.png
new file mode 100644
index 00000000000..665dfbe3a37
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-256_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..d0c78011e6c
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-30_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-30_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..1788b2253da
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-30_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-30_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-30_contrast-black.png
new file mode 100644
index 00000000000..d0c78011e6c
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-30_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-30_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-30_contrast-white.png
new file mode 100644
index 00000000000..1788b2253da
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-30_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-32_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-32_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..e195a888f5f
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-32_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-32_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-32_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..efc56018094
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-32_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-32_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-32_contrast-black.png
new file mode 100644
index 00000000000..e195a888f5f
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-32_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-32_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-32_contrast-white.png
new file mode 100644
index 00000000000..efc56018094
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-32_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-36_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-36_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..153e67c4ebb
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-36_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-36_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-36_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..79ee49b96db
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-36_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-36_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-36_contrast-black.png
new file mode 100644
index 00000000000..153e67c4ebb
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-36_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-36_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-36_contrast-white.png
new file mode 100644
index 00000000000..79ee49b96db
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-36_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..65b26da3965
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-40_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-40_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..5869c620465
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-40_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-40_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-40_contrast-black.png
new file mode 100644
index 00000000000..65b26da3965
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-40_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-40_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-40_contrast-white.png
new file mode 100644
index 00000000000..5869c620465
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-40_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..03201095aec
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..9c5b7161150
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-48_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-48_contrast-black.png
new file mode 100644
index 00000000000..03201095aec
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-48_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-48_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-48_contrast-white.png
new file mode 100644
index 00000000000..9c5b7161150
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-48_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..acc3310df63
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..aecda0f11e3
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-60_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-60_contrast-black.png
new file mode 100644
index 00000000000..acc3310df63
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-60_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-60_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-60_contrast-white.png
new file mode 100644
index 00000000000..aecda0f11e3
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-60_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..01686eaccf7
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..63fb5b06cd7
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-64_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-64_contrast-black.png
new file mode 100644
index 00000000000..01686eaccf7
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-64_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-64_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-64_contrast-white.png
new file mode 100644
index 00000000000..63fb5b06cd7
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-64_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..110249863df
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..fa7c0bb9cf5
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-72_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-72_contrast-black.png
new file mode 100644
index 00000000000..110249863df
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-72_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-72_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-72_contrast-white.png
new file mode 100644
index 00000000000..fa7c0bb9cf5
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-72_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..81f6b28749e
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..e5e2dacc31d
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-80_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-80_contrast-black.png
new file mode 100644
index 00000000000..81f6b28749e
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-80_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-80_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-80_contrast-white.png
new file mode 100644
index 00000000000..e5e2dacc31d
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-80_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..563108e90e9
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..0f9c7950c71
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-96_contrast-black.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-96_contrast-black.png
new file mode 100644
index 00000000000..563108e90e9
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-96_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Square44x44Logo.targetsize-96_contrast-white.png b/res/terminal/images-Dev/Square44x44Logo.targetsize-96_contrast-white.png
new file mode 100644
index 00000000000..0f9c7950c71
Binary files /dev/null and b/res/terminal/images-Dev/Square44x44Logo.targetsize-96_contrast-white.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-100_contrast-black.png b/res/terminal/images-Dev/StoreLogo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..c52aafcc5dd
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-100_contrast-white.png b/res/terminal/images-Dev/StoreLogo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..f3c68fb688c
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-125_contrast-black.png b/res/terminal/images-Dev/StoreLogo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..a84d1ff188e
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-125_contrast-white.png b/res/terminal/images-Dev/StoreLogo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..5e741ef242f
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-150_contrast-black.png b/res/terminal/images-Dev/StoreLogo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..d843bd16ae1
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-150_contrast-white.png b/res/terminal/images-Dev/StoreLogo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..8dac64a4fe8
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-200_contrast-black.png b/res/terminal/images-Dev/StoreLogo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..4fb88aad7d1
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-200_contrast-white.png b/res/terminal/images-Dev/StoreLogo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..5a1b5727e69
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-400_contrast-black.png b/res/terminal/images-Dev/StoreLogo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..d6616c8ab55
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Dev/StoreLogo.scale-400_contrast-white.png b/res/terminal/images-Dev/StoreLogo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..8c622de1d48
Binary files /dev/null and b/res/terminal/images-Dev/StoreLogo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-100_contrast-black.png b/res/terminal/images-Dev/Wide310x150Logo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..e001af83cd8
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-100_contrast-white.png b/res/terminal/images-Dev/Wide310x150Logo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..0ce5b040316
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-125_contrast-black.png b/res/terminal/images-Dev/Wide310x150Logo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..33010325e98
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-125_contrast-white.png b/res/terminal/images-Dev/Wide310x150Logo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..b5745ff70f6
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-150_contrast-black.png b/res/terminal/images-Dev/Wide310x150Logo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..7844cda30cf
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-150_contrast-white.png b/res/terminal/images-Dev/Wide310x150Logo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..9f62ef7fd38
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-200_contrast-black.png b/res/terminal/images-Dev/Wide310x150Logo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..a4480138b64
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-200_contrast-white.png b/res/terminal/images-Dev/Wide310x150Logo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..09b65238b44
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-400_contrast-black.png b/res/terminal/images-Dev/Wide310x150Logo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..38ad367e109
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Dev/Wide310x150Logo.scale-400_contrast-white.png b/res/terminal/images-Dev/Wide310x150Logo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..e910cabe62c
Binary files /dev/null and b/res/terminal/images-Dev/Wide310x150Logo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-100_contrast-black.png b/res/terminal/images-Pre/LargeTile.scale-100_contrast-black.png
new file mode 100644
index 00000000000..bbcfc696a9e
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-100_contrast-white.png b/res/terminal/images-Pre/LargeTile.scale-100_contrast-white.png
new file mode 100644
index 00000000000..9b6b05881de
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-125_contrast-black.png b/res/terminal/images-Pre/LargeTile.scale-125_contrast-black.png
new file mode 100644
index 00000000000..daa163d30e5
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-125_contrast-white.png b/res/terminal/images-Pre/LargeTile.scale-125_contrast-white.png
new file mode 100644
index 00000000000..e675b860dc3
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-150_contrast-black.png b/res/terminal/images-Pre/LargeTile.scale-150_contrast-black.png
new file mode 100644
index 00000000000..9de6e5ae4ef
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-150_contrast-white.png b/res/terminal/images-Pre/LargeTile.scale-150_contrast-white.png
new file mode 100644
index 00000000000..f3c3a8d6ce3
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-200_contrast-black.png b/res/terminal/images-Pre/LargeTile.scale-200_contrast-black.png
new file mode 100644
index 00000000000..ac9b19f44ee
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-200_contrast-white.png b/res/terminal/images-Pre/LargeTile.scale-200_contrast-white.png
new file mode 100644
index 00000000000..57e420e9974
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-400_contrast-black.png b/res/terminal/images-Pre/LargeTile.scale-400_contrast-black.png
new file mode 100644
index 00000000000..dcb433a1084
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LargeTile.scale-400_contrast-white.png b/res/terminal/images-Pre/LargeTile.scale-400_contrast-white.png
new file mode 100644
index 00000000000..0e6aefd75a6
Binary files /dev/null and b/res/terminal/images-Pre/LargeTile.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-100_contrast-black.png b/res/terminal/images-Pre/LockScreenLogo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..ce51243c628
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-100_contrast-white.png b/res/terminal/images-Pre/LockScreenLogo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..2b9d1a06b62
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-125_contrast-black.png b/res/terminal/images-Pre/LockScreenLogo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..f7094e3374b
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-125_contrast-white.png b/res/terminal/images-Pre/LockScreenLogo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..788d405f453
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-150_contrast-black.png b/res/terminal/images-Pre/LockScreenLogo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..62f84ba9aab
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-150_contrast-white.png b/res/terminal/images-Pre/LockScreenLogo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..61be432569a
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-200_contrast-black.png b/res/terminal/images-Pre/LockScreenLogo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..8427e96d130
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-200_contrast-white.png b/res/terminal/images-Pre/LockScreenLogo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..f490a9aa080
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-400_contrast-black.png b/res/terminal/images-Pre/LockScreenLogo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..217ea2d31a0
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Pre/LockScreenLogo.scale-400_contrast-white.png b/res/terminal/images-Pre/LockScreenLogo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..b2f0a14d558
Binary files /dev/null and b/res/terminal/images-Pre/LockScreenLogo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-100_contrast-black.png b/res/terminal/images-Pre/SmallTile.scale-100_contrast-black.png
new file mode 100644
index 00000000000..0d2591b8a46
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-100_contrast-white.png b/res/terminal/images-Pre/SmallTile.scale-100_contrast-white.png
new file mode 100644
index 00000000000..66a16a331f9
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-125_contrast-black.png b/res/terminal/images-Pre/SmallTile.scale-125_contrast-black.png
new file mode 100644
index 00000000000..be14cbfa973
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-125_contrast-white.png b/res/terminal/images-Pre/SmallTile.scale-125_contrast-white.png
new file mode 100644
index 00000000000..5f8bfad946f
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-150_contrast-black.png b/res/terminal/images-Pre/SmallTile.scale-150_contrast-black.png
new file mode 100644
index 00000000000..3d9acb361c3
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-150_contrast-white.png b/res/terminal/images-Pre/SmallTile.scale-150_contrast-white.png
new file mode 100644
index 00000000000..caf834d6c22
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-200_contrast-black.png b/res/terminal/images-Pre/SmallTile.scale-200_contrast-black.png
new file mode 100644
index 00000000000..0f7481d481b
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-200_contrast-white.png b/res/terminal/images-Pre/SmallTile.scale-200_contrast-white.png
new file mode 100644
index 00000000000..b321705e93c
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-400_contrast-black.png b/res/terminal/images-Pre/SmallTile.scale-400_contrast-black.png
new file mode 100644
index 00000000000..27dca17f1d1
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SmallTile.scale-400_contrast-white.png b/res/terminal/images-Pre/SmallTile.scale-400_contrast-white.png
new file mode 100644
index 00000000000..de3c606cda7
Binary files /dev/null and b/res/terminal/images-Pre/SmallTile.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-100_contrast-black.png b/res/terminal/images-Pre/SplashScreen.scale-100_contrast-black.png
new file mode 100644
index 00000000000..c33de15b3ba
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-100_contrast-white.png b/res/terminal/images-Pre/SplashScreen.scale-100_contrast-white.png
new file mode 100644
index 00000000000..26ebbbf09e7
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-125_contrast-black.png b/res/terminal/images-Pre/SplashScreen.scale-125_contrast-black.png
new file mode 100644
index 00000000000..1c1f57c92bb
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-125_contrast-white.png b/res/terminal/images-Pre/SplashScreen.scale-125_contrast-white.png
new file mode 100644
index 00000000000..dd4d19a7cc9
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-150_contrast-black.png b/res/terminal/images-Pre/SplashScreen.scale-150_contrast-black.png
new file mode 100644
index 00000000000..12a8a36a798
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-150_contrast-white.png b/res/terminal/images-Pre/SplashScreen.scale-150_contrast-white.png
new file mode 100644
index 00000000000..093903c8ad0
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-200_contrast-black.png b/res/terminal/images-Pre/SplashScreen.scale-200_contrast-black.png
new file mode 100644
index 00000000000..3f8fc2d06f5
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-200_contrast-white.png b/res/terminal/images-Pre/SplashScreen.scale-200_contrast-white.png
new file mode 100644
index 00000000000..357a83f1325
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-400_contrast-black.png b/res/terminal/images-Pre/SplashScreen.scale-400_contrast-black.png
new file mode 100644
index 00000000000..24ea7722a7d
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Pre/SplashScreen.scale-400_contrast-white.png b/res/terminal/images-Pre/SplashScreen.scale-400_contrast-white.png
new file mode 100644
index 00000000000..5568cc8615d
Binary files /dev/null and b/res/terminal/images-Pre/SplashScreen.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-100_contrast-black.png b/res/terminal/images-Pre/Square150x150Logo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..2a82392f5f6
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-100_contrast-white.png b/res/terminal/images-Pre/Square150x150Logo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..3a93c3c213b
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-125_contrast-black.png b/res/terminal/images-Pre/Square150x150Logo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..f2031a207aa
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-125_contrast-white.png b/res/terminal/images-Pre/Square150x150Logo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..24caab8deaf
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-150_contrast-black.png b/res/terminal/images-Pre/Square150x150Logo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..e03041227d9
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-150_contrast-white.png b/res/terminal/images-Pre/Square150x150Logo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..6c2e8f38cb2
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-200_contrast-black.png b/res/terminal/images-Pre/Square150x150Logo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..4b35315c7ef
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-200_contrast-white.png b/res/terminal/images-Pre/Square150x150Logo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..47154776d69
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-400_contrast-black.png b/res/terminal/images-Pre/Square150x150Logo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..8ad38f6a9e4
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square150x150Logo.scale-400_contrast-white.png b/res/terminal/images-Pre/Square150x150Logo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..9f5c525348d
Binary files /dev/null and b/res/terminal/images-Pre/Square150x150Logo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-100_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..a9a5b046d86
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-100_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..a7550ffadf2
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-125_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..ce820d9be4d
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-125_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..d05e4bd2a68
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-150_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..b4a2e6cc928
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-150_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..2df02c39299
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-200_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..07bb68ba944
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-200_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..b71dd10ecb5
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-400_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..52b835c05b8
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.scale-400_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..451c5d8a5be
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-16_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-16_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..3640ec3fa32
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-16_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-16_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-16_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..f068d41135d
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-16_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-16_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-16_contrast-black.png
new file mode 100644
index 00000000000..3640ec3fa32
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-16_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-16_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-16_contrast-white.png
new file mode 100644
index 00000000000..f068d41135d
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-16_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-20_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-20_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..5ea768ed4a0
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-20_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-20_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-20_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..59f4b0be724
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-20_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-20_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-20_contrast-black.png
new file mode 100644
index 00000000000..5ea768ed4a0
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-20_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-20_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-20_contrast-white.png
new file mode 100644
index 00000000000..59f4b0be724
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-20_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-24_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-24_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..ce51243c628
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-24_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-24_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-24_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..2b9d1a06b62
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-24_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-24_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-24_contrast-black.png
new file mode 100644
index 00000000000..ce51243c628
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-24_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-24_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-24_contrast-white.png
new file mode 100644
index 00000000000..2b9d1a06b62
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-24_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..1ecd842894d
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..55fe0139f27
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-256_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-256_contrast-black.png
new file mode 100644
index 00000000000..1ecd842894d
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-256_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-256_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-256_contrast-white.png
new file mode 100644
index 00000000000..55fe0139f27
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-256_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..f7094e3374b
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-30_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-30_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..788d405f453
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-30_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-30_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-30_contrast-black.png
new file mode 100644
index 00000000000..f7094e3374b
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-30_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-30_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-30_contrast-white.png
new file mode 100644
index 00000000000..788d405f453
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-30_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-32_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-32_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..7363adf4cf4
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-32_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-32_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-32_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..80df0b81f93
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-32_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-32_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-32_contrast-black.png
new file mode 100644
index 00000000000..7363adf4cf4
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-32_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-32_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-32_contrast-white.png
new file mode 100644
index 00000000000..80df0b81f93
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-32_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-36_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-36_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..62f84ba9aab
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-36_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-36_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-36_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..61be432569a
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-36_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-36_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-36_contrast-black.png
new file mode 100644
index 00000000000..62f84ba9aab
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-36_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-36_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-36_contrast-white.png
new file mode 100644
index 00000000000..61be432569a
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-36_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..93ef2fac9c5
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-40_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-40_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..59cef34ed0b
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-40_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-40_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-40_contrast-black.png
new file mode 100644
index 00000000000..93ef2fac9c5
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-40_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-40_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-40_contrast-white.png
new file mode 100644
index 00000000000..59cef34ed0b
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-40_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..8427e96d130
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..f490a9aa080
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-48_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-48_contrast-black.png
new file mode 100644
index 00000000000..8427e96d130
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-48_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-48_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-48_contrast-white.png
new file mode 100644
index 00000000000..f490a9aa080
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-48_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..d742b734893
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..edb9d45d24e
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-60_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-60_contrast-black.png
new file mode 100644
index 00000000000..d742b734893
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-60_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-60_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-60_contrast-white.png
new file mode 100644
index 00000000000..edb9d45d24e
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-60_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..4d97ed69bd3
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..833f8150167
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-64_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-64_contrast-black.png
new file mode 100644
index 00000000000..4d97ed69bd3
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-64_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-64_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-64_contrast-white.png
new file mode 100644
index 00000000000..833f8150167
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-64_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..bb27466d5a1
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..c337b4be5ee
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-72_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-72_contrast-black.png
new file mode 100644
index 00000000000..bb27466d5a1
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-72_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-72_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-72_contrast-white.png
new file mode 100644
index 00000000000..c337b4be5ee
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-72_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..e636f00d75c
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..d687f9d73d1
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-80_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-80_contrast-black.png
new file mode 100644
index 00000000000..e636f00d75c
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-80_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-80_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-80_contrast-white.png
new file mode 100644
index 00000000000..d687f9d73d1
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-80_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..217ea2d31a0
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..b2f0a14d558
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-96_contrast-black.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-96_contrast-black.png
new file mode 100644
index 00000000000..217ea2d31a0
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-96_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Square44x44Logo.targetsize-96_contrast-white.png b/res/terminal/images-Pre/Square44x44Logo.targetsize-96_contrast-white.png
new file mode 100644
index 00000000000..b2f0a14d558
Binary files /dev/null and b/res/terminal/images-Pre/Square44x44Logo.targetsize-96_contrast-white.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-100_contrast-black.png b/res/terminal/images-Pre/StoreLogo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..26f94d563de
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-100_contrast-white.png b/res/terminal/images-Pre/StoreLogo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..59318f1e47d
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-125_contrast-black.png b/res/terminal/images-Pre/StoreLogo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..f6c85246064
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-125_contrast-white.png b/res/terminal/images-Pre/StoreLogo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..fc296cb2f9a
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-150_contrast-black.png b/res/terminal/images-Pre/StoreLogo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..fd6c20ce317
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-150_contrast-white.png b/res/terminal/images-Pre/StoreLogo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..66fd5655058
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-200_contrast-black.png b/res/terminal/images-Pre/StoreLogo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..60eb894b35a
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-200_contrast-white.png b/res/terminal/images-Pre/StoreLogo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..93713970ec5
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-400_contrast-black.png b/res/terminal/images-Pre/StoreLogo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..b1d9835eb78
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Pre/StoreLogo.scale-400_contrast-white.png b/res/terminal/images-Pre/StoreLogo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..e2025f22550
Binary files /dev/null and b/res/terminal/images-Pre/StoreLogo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-100_contrast-black.png b/res/terminal/images-Pre/Wide310x150Logo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..b1efc07df3a
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-100_contrast-white.png b/res/terminal/images-Pre/Wide310x150Logo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..066fceb3401
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-125_contrast-black.png b/res/terminal/images-Pre/Wide310x150Logo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..f1b0c364f9d
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-125_contrast-white.png b/res/terminal/images-Pre/Wide310x150Logo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..6671495b6c0
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-150_contrast-black.png b/res/terminal/images-Pre/Wide310x150Logo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..2729e37f318
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-150_contrast-white.png b/res/terminal/images-Pre/Wide310x150Logo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..7dc7b1a55c2
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-200_contrast-black.png b/res/terminal/images-Pre/Wide310x150Logo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..c33de15b3ba
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-200_contrast-white.png b/res/terminal/images-Pre/Wide310x150Logo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..26ebbbf09e7
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-400_contrast-black.png b/res/terminal/images-Pre/Wide310x150Logo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..3f8fc2d06f5
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images-Pre/Wide310x150Logo.scale-400_contrast-white.png b/res/terminal/images-Pre/Wide310x150Logo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..357a83f1325
Binary files /dev/null and b/res/terminal/images-Pre/Wide310x150Logo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images/LargeTile.scale-100_contrast-black.png b/res/terminal/images/LargeTile.scale-100_contrast-black.png
new file mode 100644
index 00000000000..4f9f6ceeec5
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-100_contrast-black.png differ
diff --git a/res/terminal/images/LargeTile.scale-100_contrast-white.png b/res/terminal/images/LargeTile.scale-100_contrast-white.png
new file mode 100644
index 00000000000..3dba00e203b
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-100_contrast-white.png differ
diff --git a/res/terminal/images/LargeTile.scale-125_contrast-black.png b/res/terminal/images/LargeTile.scale-125_contrast-black.png
new file mode 100644
index 00000000000..43fe337ac29
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-125_contrast-black.png differ
diff --git a/res/terminal/images/LargeTile.scale-125_contrast-white.png b/res/terminal/images/LargeTile.scale-125_contrast-white.png
new file mode 100644
index 00000000000..893a64f8ec5
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-125_contrast-white.png differ
diff --git a/res/terminal/images/LargeTile.scale-150_contrast-black.png b/res/terminal/images/LargeTile.scale-150_contrast-black.png
new file mode 100644
index 00000000000..2b51fefb028
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-150_contrast-black.png differ
diff --git a/res/terminal/images/LargeTile.scale-150_contrast-white.png b/res/terminal/images/LargeTile.scale-150_contrast-white.png
new file mode 100644
index 00000000000..602efd44f01
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-150_contrast-white.png differ
diff --git a/res/terminal/images/LargeTile.scale-200_contrast-black.png b/res/terminal/images/LargeTile.scale-200_contrast-black.png
new file mode 100644
index 00000000000..07c342a30c5
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-200_contrast-black.png differ
diff --git a/res/terminal/images/LargeTile.scale-200_contrast-white.png b/res/terminal/images/LargeTile.scale-200_contrast-white.png
new file mode 100644
index 00000000000..1ef86a82225
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-200_contrast-white.png differ
diff --git a/res/terminal/images/LargeTile.scale-400_contrast-black.png b/res/terminal/images/LargeTile.scale-400_contrast-black.png
new file mode 100644
index 00000000000..dcbc2dfec17
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-400_contrast-black.png differ
diff --git a/res/terminal/images/LargeTile.scale-400_contrast-white.png b/res/terminal/images/LargeTile.scale-400_contrast-white.png
new file mode 100644
index 00000000000..bc6097de8b4
Binary files /dev/null and b/res/terminal/images/LargeTile.scale-400_contrast-white.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-100_contrast-black.png b/res/terminal/images/LockScreenLogo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..931b46f2318
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-100_contrast-white.png b/res/terminal/images/LockScreenLogo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..41c3aee3502
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-125_contrast-black.png b/res/terminal/images/LockScreenLogo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..d0c78011e6c
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-125_contrast-white.png b/res/terminal/images/LockScreenLogo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..1788b2253da
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-150_contrast-black.png b/res/terminal/images/LockScreenLogo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..153e67c4ebb
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-150_contrast-white.png b/res/terminal/images/LockScreenLogo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..79ee49b96db
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-200_contrast-black.png b/res/terminal/images/LockScreenLogo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..03201095aec
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-200_contrast-white.png b/res/terminal/images/LockScreenLogo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..9c5b7161150
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-400_contrast-black.png b/res/terminal/images/LockScreenLogo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..563108e90e9
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images/LockScreenLogo.scale-400_contrast-white.png b/res/terminal/images/LockScreenLogo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..0f9c7950c71
Binary files /dev/null and b/res/terminal/images/LockScreenLogo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images/SmallTile.scale-100_contrast-black.png b/res/terminal/images/SmallTile.scale-100_contrast-black.png
new file mode 100644
index 00000000000..3b4d5619397
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-100_contrast-black.png differ
diff --git a/res/terminal/images/SmallTile.scale-100_contrast-white.png b/res/terminal/images/SmallTile.scale-100_contrast-white.png
new file mode 100644
index 00000000000..110e3de75f0
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-100_contrast-white.png differ
diff --git a/res/terminal/images/SmallTile.scale-125_contrast-black.png b/res/terminal/images/SmallTile.scale-125_contrast-black.png
new file mode 100644
index 00000000000..473ec5122af
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-125_contrast-black.png differ
diff --git a/res/terminal/images/SmallTile.scale-125_contrast-white.png b/res/terminal/images/SmallTile.scale-125_contrast-white.png
new file mode 100644
index 00000000000..d864ab7131c
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-125_contrast-white.png differ
diff --git a/res/terminal/images/SmallTile.scale-150_contrast-black.png b/res/terminal/images/SmallTile.scale-150_contrast-black.png
new file mode 100644
index 00000000000..c9f872090e0
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-150_contrast-black.png differ
diff --git a/res/terminal/images/SmallTile.scale-150_contrast-white.png b/res/terminal/images/SmallTile.scale-150_contrast-white.png
new file mode 100644
index 00000000000..6f029a17a15
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-150_contrast-white.png differ
diff --git a/res/terminal/images/SmallTile.scale-200_contrast-black.png b/res/terminal/images/SmallTile.scale-200_contrast-black.png
new file mode 100644
index 00000000000..ee72b0ec3ee
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-200_contrast-black.png differ
diff --git a/res/terminal/images/SmallTile.scale-200_contrast-white.png b/res/terminal/images/SmallTile.scale-200_contrast-white.png
new file mode 100644
index 00000000000..af58357987f
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-200_contrast-white.png differ
diff --git a/res/terminal/images/SmallTile.scale-400_contrast-black.png b/res/terminal/images/SmallTile.scale-400_contrast-black.png
new file mode 100644
index 00000000000..c636747380b
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-400_contrast-black.png differ
diff --git a/res/terminal/images/SmallTile.scale-400_contrast-white.png b/res/terminal/images/SmallTile.scale-400_contrast-white.png
new file mode 100644
index 00000000000..cfa8ce7e4c7
Binary files /dev/null and b/res/terminal/images/SmallTile.scale-400_contrast-white.png differ
diff --git a/res/terminal/images/SplashScreen.scale-100_contrast-black.png b/res/terminal/images/SplashScreen.scale-100_contrast-black.png
new file mode 100644
index 00000000000..a4480138b64
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-100_contrast-black.png differ
diff --git a/res/terminal/images/SplashScreen.scale-100_contrast-white.png b/res/terminal/images/SplashScreen.scale-100_contrast-white.png
new file mode 100644
index 00000000000..09b65238b44
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-100_contrast-white.png differ
diff --git a/res/terminal/images/SplashScreen.scale-125_contrast-black.png b/res/terminal/images/SplashScreen.scale-125_contrast-black.png
new file mode 100644
index 00000000000..d827b3a621c
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-125_contrast-black.png differ
diff --git a/res/terminal/images/SplashScreen.scale-125_contrast-white.png b/res/terminal/images/SplashScreen.scale-125_contrast-white.png
new file mode 100644
index 00000000000..53057953a8f
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-125_contrast-white.png differ
diff --git a/res/terminal/images/SplashScreen.scale-150_contrast-black.png b/res/terminal/images/SplashScreen.scale-150_contrast-black.png
new file mode 100644
index 00000000000..9137cacbf18
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-150_contrast-black.png differ
diff --git a/res/terminal/images/SplashScreen.scale-150_contrast-white.png b/res/terminal/images/SplashScreen.scale-150_contrast-white.png
new file mode 100644
index 00000000000..06a70ddc7dd
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-150_contrast-white.png differ
diff --git a/res/terminal/images/SplashScreen.scale-200_contrast-black.png b/res/terminal/images/SplashScreen.scale-200_contrast-black.png
new file mode 100644
index 00000000000..38ad367e109
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-200_contrast-black.png differ
diff --git a/res/terminal/images/SplashScreen.scale-200_contrast-white.png b/res/terminal/images/SplashScreen.scale-200_contrast-white.png
new file mode 100644
index 00000000000..e910cabe62c
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-200_contrast-white.png differ
diff --git a/res/terminal/images/SplashScreen.scale-400_contrast-black.png b/res/terminal/images/SplashScreen.scale-400_contrast-black.png
new file mode 100644
index 00000000000..40c8b3d2429
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-400_contrast-black.png differ
diff --git a/res/terminal/images/SplashScreen.scale-400_contrast-white.png b/res/terminal/images/SplashScreen.scale-400_contrast-white.png
new file mode 100644
index 00000000000..bdf7b5b7cb8
Binary files /dev/null and b/res/terminal/images/SplashScreen.scale-400_contrast-white.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-100_contrast-black.png b/res/terminal/images/Square150x150Logo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..a94e09558d5
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-100_contrast-white.png b/res/terminal/images/Square150x150Logo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..8b15f746632
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-125_contrast-black.png b/res/terminal/images/Square150x150Logo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..52a0961f9c1
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-125_contrast-white.png b/res/terminal/images/Square150x150Logo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..1f2b02d1b32
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-150_contrast-black.png b/res/terminal/images/Square150x150Logo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..e709c17c3b7
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-150_contrast-white.png b/res/terminal/images/Square150x150Logo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..00fb42558e0
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-200_contrast-black.png b/res/terminal/images/Square150x150Logo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..da75c53210c
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-200_contrast-white.png b/res/terminal/images/Square150x150Logo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..f56a69cf10f
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-400_contrast-black.png b/res/terminal/images/Square150x150Logo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..3bb828ac8d5
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images/Square150x150Logo.scale-400_contrast-white.png b/res/terminal/images/Square150x150Logo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..99fc2a7ff4d
Binary files /dev/null and b/res/terminal/images/Square150x150Logo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-100_contrast-black.png b/res/terminal/images/Square44x44Logo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..9f13cded565
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-100_contrast-white.png b/res/terminal/images/Square44x44Logo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..7786af596e0
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-125_contrast-black.png b/res/terminal/images/Square44x44Logo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..eed2b33a67a
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-125_contrast-white.png b/res/terminal/images/Square44x44Logo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..86948693b8a
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-150_contrast-black.png b/res/terminal/images/Square44x44Logo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..085efc7b6af
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-150_contrast-white.png b/res/terminal/images/Square44x44Logo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..c6ef1dafa8e
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-200_contrast-black.png b/res/terminal/images/Square44x44Logo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..16469eb5bd3
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-200_contrast-white.png b/res/terminal/images/Square44x44Logo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..f9a6ae53359
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-400_contrast-black.png b/res/terminal/images/Square44x44Logo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..0b8ca35feb0
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.scale-400_contrast-white.png b/res/terminal/images/Square44x44Logo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..fa3109e7e22
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-16_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-16_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..26ae28f2a0b
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-16_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-16_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-16_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..d1a2951126a
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-16_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-16_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-16_contrast-black.png
new file mode 100644
index 00000000000..26ae28f2a0b
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-16_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-16_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-16_contrast-white.png
new file mode 100644
index 00000000000..d1a2951126a
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-16_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-20_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-20_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..a036a06ee23
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-20_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-20_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-20_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..42d68e5f6f5
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-20_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-20_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-20_contrast-black.png
new file mode 100644
index 00000000000..a036a06ee23
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-20_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-20_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-20_contrast-white.png
new file mode 100644
index 00000000000..42d68e5f6f5
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-20_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-24_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-24_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..931b46f2318
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-24_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-24_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-24_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..41c3aee3502
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-24_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-24_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-24_contrast-black.png
new file mode 100644
index 00000000000..931b46f2318
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-24_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-24_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-24_contrast-white.png
new file mode 100644
index 00000000000..41c3aee3502
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-24_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..f89467e7320
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..665dfbe3a37
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-256_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-256_contrast-black.png
new file mode 100644
index 00000000000..f89467e7320
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-256_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-256_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-256_contrast-white.png
new file mode 100644
index 00000000000..665dfbe3a37
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-256_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..d0c78011e6c
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-30_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-30_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..1788b2253da
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-30_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-30_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-30_contrast-black.png
new file mode 100644
index 00000000000..d0c78011e6c
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-30_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-30_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-30_contrast-white.png
new file mode 100644
index 00000000000..1788b2253da
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-30_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-32_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-32_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..e195a888f5f
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-32_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-32_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-32_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..efc56018094
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-32_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-32_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-32_contrast-black.png
new file mode 100644
index 00000000000..e195a888f5f
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-32_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-32_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-32_contrast-white.png
new file mode 100644
index 00000000000..efc56018094
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-32_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-36_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-36_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..153e67c4ebb
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-36_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-36_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-36_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..79ee49b96db
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-36_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-36_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-36_contrast-black.png
new file mode 100644
index 00000000000..153e67c4ebb
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-36_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-36_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-36_contrast-white.png
new file mode 100644
index 00000000000..79ee49b96db
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-36_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..65b26da3965
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-40_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-40_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..5869c620465
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-40_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-40_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-40_contrast-black.png
new file mode 100644
index 00000000000..65b26da3965
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-40_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-40_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-40_contrast-white.png
new file mode 100644
index 00000000000..5869c620465
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-40_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..03201095aec
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..9c5b7161150
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-48_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-48_contrast-black.png
new file mode 100644
index 00000000000..03201095aec
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-48_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-48_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-48_contrast-white.png
new file mode 100644
index 00000000000..9c5b7161150
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-48_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..acc3310df63
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..aecda0f11e3
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-60_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-60_contrast-black.png
new file mode 100644
index 00000000000..acc3310df63
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-60_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-60_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-60_contrast-white.png
new file mode 100644
index 00000000000..aecda0f11e3
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-60_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..01686eaccf7
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..63fb5b06cd7
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-64_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-64_contrast-black.png
new file mode 100644
index 00000000000..01686eaccf7
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-64_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-64_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-64_contrast-white.png
new file mode 100644
index 00000000000..63fb5b06cd7
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-64_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..110249863df
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..fa7c0bb9cf5
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-72_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-72_contrast-black.png
new file mode 100644
index 00000000000..110249863df
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-72_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-72_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-72_contrast-white.png
new file mode 100644
index 00000000000..fa7c0bb9cf5
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-72_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..81f6b28749e
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..e5e2dacc31d
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-80_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-80_contrast-black.png
new file mode 100644
index 00000000000..81f6b28749e
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-80_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-80_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-80_contrast-white.png
new file mode 100644
index 00000000000..e5e2dacc31d
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-80_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png
new file mode 100644
index 00000000000..563108e90e9
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png
new file mode 100644
index 00000000000..0f9c7950c71
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-96_contrast-black.png b/res/terminal/images/Square44x44Logo.targetsize-96_contrast-black.png
new file mode 100644
index 00000000000..563108e90e9
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-96_contrast-black.png differ
diff --git a/res/terminal/images/Square44x44Logo.targetsize-96_contrast-white.png b/res/terminal/images/Square44x44Logo.targetsize-96_contrast-white.png
new file mode 100644
index 00000000000..0f9c7950c71
Binary files /dev/null and b/res/terminal/images/Square44x44Logo.targetsize-96_contrast-white.png differ
diff --git a/res/terminal/images/StoreLogo.scale-100_contrast-black.png b/res/terminal/images/StoreLogo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..c52aafcc5dd
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images/StoreLogo.scale-100_contrast-white.png b/res/terminal/images/StoreLogo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..f3c68fb688c
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images/StoreLogo.scale-125_contrast-black.png b/res/terminal/images/StoreLogo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..a84d1ff188e
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images/StoreLogo.scale-125_contrast-white.png b/res/terminal/images/StoreLogo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..5e741ef242f
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images/StoreLogo.scale-150_contrast-black.png b/res/terminal/images/StoreLogo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..d843bd16ae1
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images/StoreLogo.scale-150_contrast-white.png b/res/terminal/images/StoreLogo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..8dac64a4fe8
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images/StoreLogo.scale-200_contrast-black.png b/res/terminal/images/StoreLogo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..4fb88aad7d1
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images/StoreLogo.scale-200_contrast-white.png b/res/terminal/images/StoreLogo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..5a1b5727e69
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images/StoreLogo.scale-400_contrast-black.png b/res/terminal/images/StoreLogo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..d6616c8ab55
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images/StoreLogo.scale-400_contrast-white.png b/res/terminal/images/StoreLogo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..8c622de1d48
Binary files /dev/null and b/res/terminal/images/StoreLogo.scale-400_contrast-white.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-100_contrast-black.png b/res/terminal/images/Wide310x150Logo.scale-100_contrast-black.png
new file mode 100644
index 00000000000..e001af83cd8
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-100_contrast-black.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-100_contrast-white.png b/res/terminal/images/Wide310x150Logo.scale-100_contrast-white.png
new file mode 100644
index 00000000000..0ce5b040316
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-100_contrast-white.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-125_contrast-black.png b/res/terminal/images/Wide310x150Logo.scale-125_contrast-black.png
new file mode 100644
index 00000000000..33010325e98
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-125_contrast-black.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-125_contrast-white.png b/res/terminal/images/Wide310x150Logo.scale-125_contrast-white.png
new file mode 100644
index 00000000000..b5745ff70f6
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-125_contrast-white.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-150_contrast-black.png b/res/terminal/images/Wide310x150Logo.scale-150_contrast-black.png
new file mode 100644
index 00000000000..7844cda30cf
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-150_contrast-black.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-150_contrast-white.png b/res/terminal/images/Wide310x150Logo.scale-150_contrast-white.png
new file mode 100644
index 00000000000..9f62ef7fd38
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-150_contrast-white.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-200_contrast-black.png b/res/terminal/images/Wide310x150Logo.scale-200_contrast-black.png
new file mode 100644
index 00000000000..a4480138b64
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-200_contrast-black.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-200_contrast-white.png b/res/terminal/images/Wide310x150Logo.scale-200_contrast-white.png
new file mode 100644
index 00000000000..09b65238b44
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-200_contrast-white.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-400_contrast-black.png b/res/terminal/images/Wide310x150Logo.scale-400_contrast-black.png
new file mode 100644
index 00000000000..38ad367e109
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-400_contrast-black.png differ
diff --git a/res/terminal/images/Wide310x150Logo.scale-400_contrast-white.png b/res/terminal/images/Wide310x150Logo.scale-400_contrast-white.png
new file mode 100644
index 00000000000..e910cabe62c
Binary files /dev/null and b/res/terminal/images/Wide310x150Logo.scale-400_contrast-white.png differ
diff --git a/src/buffer/out/AttrRow.cpp b/src/buffer/out/AttrRow.cpp
index 42f1790b261..5df4da3978d 100644
--- a/src/buffer/out/AttrRow.cpp
+++ b/src/buffer/out/AttrRow.cpp
@@ -223,7 +223,7 @@ void ATTR_ROW::ReplaceAttrs(const TextAttribute& toBeReplacedAttr, const TextAtt
// Return Value:
// - STATUS_NO_MEMORY if there wasn't enough memory to insert the runs
// otherwise STATUS_SUCCESS if we were successful.
-[[nodiscard]] HRESULT ATTR_ROW::InsertAttrRuns(const std::basic_string_view newAttrs,
+[[nodiscard]] HRESULT ATTR_ROW::InsertAttrRuns(const gsl::span newAttrs,
const size_t iStart,
const size_t iEnd,
const size_t cBufferWidth)
@@ -250,7 +250,7 @@ void ATTR_ROW::ReplaceAttrs(const TextAttribute& toBeReplacedAttr, const TextAtt
if (newAttrs.size() == 1)
{
// Get the new color attribute we're trying to apply
- const TextAttribute NewAttr = newAttrs.at(0).GetAttributes();
+ const TextAttribute NewAttr = til::at(newAttrs, 0).GetAttributes();
// If the existing run was only 1 element...
// ...and the new color is the same as the old, we don't have to do anything and can exit quick.
@@ -372,7 +372,7 @@ void ATTR_ROW::ReplaceAttrs(const TextAttribute& toBeReplacedAttr, const TextAtt
if (iStart == 0 && iEnd == iLastBufferCol)
{
// Just dump what we're given over what we have and call it a day.
- _list.assign(newAttrs.cbegin(), newAttrs.cend());
+ _list.assign(newAttrs.begin(), newAttrs.end());
return S_OK;
}
diff --git a/src/buffer/out/AttrRow.hpp b/src/buffer/out/AttrRow.hpp
index 29f0ee1e470..2f0a07794c3 100644
--- a/src/buffer/out/AttrRow.hpp
+++ b/src/buffer/out/AttrRow.hpp
@@ -46,7 +46,7 @@ class ATTR_ROW final
void Resize(const size_t newWidth);
- [[nodiscard]] HRESULT InsertAttrRuns(const std::basic_string_view newAttrs,
+ [[nodiscard]] HRESULT InsertAttrRuns(const gsl::span newAttrs,
const size_t iStart,
const size_t iEnd,
const size_t cBufferWidth);
diff --git a/src/buffer/out/OutputCellIterator.cpp b/src/buffer/out/OutputCellIterator.cpp
index 9b5437041b5..d32087fe9e6 100644
--- a/src/buffer/out/OutputCellIterator.cpp
+++ b/src/buffer/out/OutputCellIterator.cpp
@@ -112,9 +112,9 @@ OutputCellIterator::OutputCellIterator(const std::wstring_view utf16Text, const
// - This is an iterator over legacy colors only. The text is not modified.
// Arguments:
// - legacyAttrs - One legacy color item per cell
-OutputCellIterator::OutputCellIterator(const std::basic_string_view legacyAttrs) noexcept :
+OutputCellIterator::OutputCellIterator(const gsl::span legacyAttrs) noexcept :
_mode(Mode::LegacyAttr),
- _currentView(s_GenerateViewLegacyAttr(legacyAttrs.at(0))),
+ _currentView(s_GenerateViewLegacyAttr(til::at(legacyAttrs, 0))),
_run(legacyAttrs),
_attr(InvalidTextAttribute),
_distance(0),
@@ -127,9 +127,9 @@ OutputCellIterator::OutputCellIterator(const std::basic_string_view legacy
// - This is an iterator over legacy cell data. We will use the unicode text and the legacy color attribute.
// Arguments:
// - charInfos - Multiple cell with unicode text and legacy color data.
-OutputCellIterator::OutputCellIterator(const std::basic_string_view charInfos) noexcept :
+OutputCellIterator::OutputCellIterator(const gsl::span charInfos) noexcept :
_mode(Mode::CharInfo),
- _currentView(s_GenerateView(charInfos.at(0))),
+ _currentView(s_GenerateView(til::at(charInfos, 0))),
_run(charInfos),
_attr(InvalidTextAttribute),
_distance(0),
@@ -142,9 +142,9 @@ OutputCellIterator::OutputCellIterator(const std::basic_string_view c
// - This is an iterator over existing OutputCells with full text and color data.
// Arguments:
// - cells - Multiple cells in a run
-OutputCellIterator::OutputCellIterator(const std::basic_string_view cells) :
+OutputCellIterator::OutputCellIterator(const gsl::span cells) :
_mode(Mode::Cell),
- _currentView(s_GenerateView(cells.at(0))),
+ _currentView(s_GenerateView(til::at(cells, 0))),
_run(cells),
_attr(InvalidTextAttribute),
_distance(0),
@@ -180,15 +180,15 @@ OutputCellIterator::operator bool() const noexcept
}
case Mode::Cell:
{
- return _pos < std::get>(_run).length();
+ return _pos < std::get>(_run).size();
}
case Mode::CharInfo:
{
- return _pos < std::get>(_run).length();
+ return _pos < std::get>(_run).size();
}
case Mode::LegacyAttr:
{
- return _pos < std::get>(_run).length();
+ return _pos < std::get>(_run).size();
}
default:
FAIL_FAST_HR(E_NOTIMPL);
@@ -265,7 +265,7 @@ OutputCellIterator& OutputCellIterator::operator++()
_pos++;
if (operator bool())
{
- _currentView = s_GenerateView(std::get>(_run).at(_pos));
+ _currentView = s_GenerateView(til::at(std::get>(_run), _pos));
}
break;
}
@@ -275,7 +275,7 @@ OutputCellIterator& OutputCellIterator::operator++()
_pos++;
if (operator bool())
{
- _currentView = s_GenerateView(std::get>(_run).at(_pos));
+ _currentView = s_GenerateView(til::at(std::get>(_run), _pos));
}
break;
}
@@ -285,7 +285,7 @@ OutputCellIterator& OutputCellIterator::operator++()
_pos++;
if (operator bool())
{
- _currentView = s_GenerateViewLegacyAttr(std::get>(_run).at(_pos));
+ _currentView = s_GenerateViewLegacyAttr(til::at(std::get>(_run), _pos));
}
break;
}
diff --git a/src/buffer/out/OutputCellIterator.hpp b/src/buffer/out/OutputCellIterator.hpp
index 0d4b866e7c5..59c6007aa3a 100644
--- a/src/buffer/out/OutputCellIterator.hpp
+++ b/src/buffer/out/OutputCellIterator.hpp
@@ -39,9 +39,9 @@ class OutputCellIterator final
OutputCellIterator(const CHAR_INFO& charInfo, const size_t fillLimit = 0) noexcept;
OutputCellIterator(const std::wstring_view utf16Text);
OutputCellIterator(const std::wstring_view utf16Text, const TextAttribute attribute);
- OutputCellIterator(const std::basic_string_view legacyAttributes) noexcept;
- OutputCellIterator(const std::basic_string_view charInfos) noexcept;
- OutputCellIterator(const std::basic_string_view cells);
+ OutputCellIterator(const gsl::span legacyAttributes) noexcept;
+ OutputCellIterator(const gsl::span charInfos) noexcept;
+ OutputCellIterator(const gsl::span cells);
~OutputCellIterator() = default;
OutputCellIterator& operator=(const OutputCellIterator& it) = default;
@@ -86,13 +86,13 @@ class OutputCellIterator final
};
Mode _mode;
- std::basic_string_view _legacyAttrs;
+ gsl::span _legacyAttrs;
std::variant<
std::wstring_view,
- std::basic_string_view,
- std::basic_string_view,
- std::basic_string_view,
+ gsl::span,
+ gsl::span,
+ gsl::span,
std::monostate>
_run;
diff --git a/src/buffer/out/OutputCellRect.cpp b/src/buffer/out/OutputCellRect.cpp
index e9cdc275b98..9dd0f74dfb9 100644
--- a/src/buffer/out/OutputCellRect.cpp
+++ b/src/buffer/out/OutputCellRect.cpp
@@ -50,7 +50,7 @@ gsl::span OutputCellRect::GetRow(const size_t row)
// - Read-only iterator of OutputCells
OutputCellIterator OutputCellRect::GetRowIter(const size_t row) const
{
- const std::basic_string_view view(_FindRowOffset(row), _cols);
+ const gsl::span view(_FindRowOffset(row), _cols);
return OutputCellIterator(view);
}
diff --git a/src/buffer/out/TextAttribute.cpp b/src/buffer/out/TextAttribute.cpp
index dd4ef450316..b58975f9a85 100644
--- a/src/buffer/out/TextAttribute.cpp
+++ b/src/buffer/out/TextAttribute.cpp
@@ -90,7 +90,7 @@ bool TextAttribute::IsLegacy() const noexcept
// - reverseScreenMode: true if the screen mode is reversed.
// Return Value:
// - the foreground and background colors that should be displayed.
-std::pair TextAttribute::CalculateRgbColors(const std::basic_string_view colorTable,
+std::pair TextAttribute::CalculateRgbColors(const gsl::span colorTable,
const COLORREF defaultFgColor,
const COLORREF defaultBgColor,
const bool reverseScreenMode) const noexcept
diff --git a/src/buffer/out/TextAttribute.hpp b/src/buffer/out/TextAttribute.hpp
index f33a92ea1bb..cccd9aaff7c 100644
--- a/src/buffer/out/TextAttribute.hpp
+++ b/src/buffer/out/TextAttribute.hpp
@@ -63,7 +63,7 @@ class TextAttribute final
static TextAttribute StripErroneousVT16VersionsOfLegacyDefaults(const TextAttribute& attribute) noexcept;
WORD GetLegacyAttributes() const noexcept;
- std::pair CalculateRgbColors(const std::basic_string_view colorTable,
+ std::pair CalculateRgbColors(const gsl::span colorTable,
const COLORREF defaultFgColor,
const COLORREF defaultBgColor,
const bool reverseScreenMode = false) const noexcept;
diff --git a/src/buffer/out/TextColor.cpp b/src/buffer/out/TextColor.cpp
index 3a664dff316..20405022984 100644
--- a/src/buffer/out/TextColor.cpp
+++ b/src/buffer/out/TextColor.cpp
@@ -138,7 +138,7 @@ void TextColor::SetDefault() noexcept
// - brighten: if true, we'll brighten a dark color table index.
// Return Value:
// - a COLORREF containing the real value of this TextColor.
-COLORREF TextColor::GetColor(std::basic_string_view colorTable,
+COLORREF TextColor::GetColor(gsl::span colorTable,
const COLORREF defaultColor,
bool brighten) const noexcept
{
@@ -158,9 +158,9 @@ COLORREF TextColor::GetColor(std::basic_string_view colorTable,
// If we find a match, return instead the bright version of this color
for (size_t i = 0; i < 8; i++)
{
- if (colorTable.at(i) == defaultColor)
+ if (til::at(colorTable, i) == defaultColor)
{
- return colorTable.at(i + 8);
+ return til::at(colorTable, i + 8);
}
}
}
@@ -173,11 +173,11 @@ COLORREF TextColor::GetColor(std::basic_string_view colorTable,
}
else if (IsIndex16() && brighten)
{
- return colorTable.at(_index | 8);
+ return til::at(colorTable, _index | 8);
}
else
{
- return colorTable.at(_index);
+ return til::at(colorTable, _index);
}
}
diff --git a/src/buffer/out/TextColor.h b/src/buffer/out/TextColor.h
index 6085dbd3381..d0186f62219 100644
--- a/src/buffer/out/TextColor.h
+++ b/src/buffer/out/TextColor.h
@@ -88,7 +88,7 @@ struct TextColor
void SetIndex(const BYTE index, const bool isIndex256) noexcept;
void SetDefault() noexcept;
- COLORREF GetColor(std::basic_string_view colorTable,
+ COLORREF GetColor(gsl::span colorTable,
const COLORREF defaultColor,
const bool brighten = false) const noexcept;
diff --git a/src/buffer/out/ut_textbuffer/TextAttributeTests.cpp b/src/buffer/out/ut_textbuffer/TextAttributeTests.cpp
index 13472d4437d..44acc35519d 100644
--- a/src/buffer/out/ut_textbuffer/TextAttributeTests.cpp
+++ b/src/buffer/out/ut_textbuffer/TextAttributeTests.cpp
@@ -27,7 +27,7 @@ class TextAttributeTests
COLORREF _colorTable[COLOR_TABLE_SIZE];
COLORREF _defaultFg = RGB(1, 2, 3);
COLORREF _defaultBg = RGB(4, 5, 6);
- std::basic_string_view _GetTableView();
+ gsl::span _GetTableView();
};
bool TextAttributeTests::ClassSetup()
@@ -51,9 +51,9 @@ bool TextAttributeTests::ClassSetup()
return true;
}
-std::basic_string_view TextAttributeTests::_GetTableView()
+gsl::span TextAttributeTests::_GetTableView()
{
- return std::basic_string_view(&_colorTable[0], COLOR_TABLE_SIZE);
+ return gsl::span(&_colorTable[0], COLOR_TABLE_SIZE);
}
void TextAttributeTests::TestRoundtripLegacy()
diff --git a/src/buffer/out/ut_textbuffer/TextColorTests.cpp b/src/buffer/out/ut_textbuffer/TextColorTests.cpp
index 794331fee3d..8d068658b8e 100644
--- a/src/buffer/out/ut_textbuffer/TextColorTests.cpp
+++ b/src/buffer/out/ut_textbuffer/TextColorTests.cpp
@@ -27,7 +27,7 @@ class TextColorTests
COLORREF _colorTable[COLOR_TABLE_SIZE];
COLORREF _defaultFg = RGB(1, 2, 3);
COLORREF _defaultBg = RGB(4, 5, 6);
- std::basic_string_view _GetTableView();
+ gsl::span _GetTableView();
};
bool TextColorTests::ClassSetup()
@@ -51,9 +51,9 @@ bool TextColorTests::ClassSetup()
return true;
}
-std::basic_string_view TextColorTests::_GetTableView()
+gsl::span TextColorTests::_GetTableView()
{
- return std::basic_string_view(&_colorTable[0], COLOR_TABLE_SIZE);
+ return gsl::span(&_colorTable[0], COLOR_TABLE_SIZE);
}
void TextColorTests::TestDefaultColor()
diff --git a/src/cascadia/LocalTests_TerminalApp/CommandTests.cpp b/src/cascadia/LocalTests_TerminalApp/CommandTests.cpp
index 129e2469182..1babcf6a2c8 100644
--- a/src/cascadia/LocalTests_TerminalApp/CommandTests.cpp
+++ b/src/cascadia/LocalTests_TerminalApp/CommandTests.cpp
@@ -147,10 +147,8 @@ namespace TerminalAppLocalTests
{ "name": "command0", "command": { "action": "splitPane", "split": null } },
{ "name": "command1", "command": { "action": "splitPane", "split": "vertical" } },
{ "name": "command2", "command": { "action": "splitPane", "split": "horizontal" } },
- { "name": "command3", "command": { "action": "splitPane", "split": "none" } },
{ "name": "command4", "command": { "action": "splitPane" } },
- { "name": "command5", "command": { "action": "splitPane", "split": "auto" } },
- { "name": "command6", "command": { "action": "splitPane", "split": "foo" } }
+ { "name": "command5", "command": { "action": "splitPane", "split": "auto" } }
])" };
const auto commands0Json = VerifyParseSucceeded(commands0String);
@@ -159,7 +157,7 @@ namespace TerminalAppLocalTests
VERIFY_ARE_EQUAL(0u, commands.size());
auto warnings = implementation::Command::LayerJson(commands, commands0Json);
VERIFY_ARE_EQUAL(0u, warnings.size());
- VERIFY_ARE_EQUAL(7u, commands.size());
+ VERIFY_ARE_EQUAL(5u, commands.size());
{
auto command = commands.at(L"command0");
@@ -191,16 +189,6 @@ namespace TerminalAppLocalTests
// Verify the args have the expected value
VERIFY_ARE_EQUAL(winrt::TerminalApp::SplitState::Horizontal, realArgs.SplitStyle());
}
- {
- auto command = commands.at(L"command3");
- VERIFY_IS_NOT_NULL(command);
- VERIFY_IS_NOT_NULL(command.Action());
- VERIFY_ARE_EQUAL(ShortcutAction::SplitPane, command.Action().Action());
- const auto& realArgs = command.Action().Args().try_as();
- VERIFY_IS_NOT_NULL(realArgs);
- // Verify the args have the expected value
- VERIFY_ARE_EQUAL(winrt::TerminalApp::SplitState::Automatic, realArgs.SplitStyle());
- }
{
auto command = commands.at(L"command4");
VERIFY_IS_NOT_NULL(command);
@@ -221,16 +209,6 @@ namespace TerminalAppLocalTests
// Verify the args have the expected value
VERIFY_ARE_EQUAL(winrt::TerminalApp::SplitState::Automatic, realArgs.SplitStyle());
}
- {
- auto command = commands.at(L"command6");
- VERIFY_IS_NOT_NULL(command);
- VERIFY_IS_NOT_NULL(command.Action());
- VERIFY_ARE_EQUAL(ShortcutAction::SplitPane, command.Action().Action());
- const auto& realArgs = command.Action().Args().try_as();
- VERIFY_IS_NOT_NULL(realArgs);
- // Verify the args have the expected value
- VERIFY_ARE_EQUAL(winrt::TerminalApp::SplitState::Automatic, realArgs.SplitStyle());
- }
}
void CommandTests::TestResourceKeyName()
{
diff --git a/src/cascadia/LocalTests_TerminalApp/KeyBindingsTests.cpp b/src/cascadia/LocalTests_TerminalApp/KeyBindingsTests.cpp
index 760bfd94c8a..ad51cf8269b 100644
--- a/src/cascadia/LocalTests_TerminalApp/KeyBindingsTests.cpp
+++ b/src/cascadia/LocalTests_TerminalApp/KeyBindingsTests.cpp
@@ -323,10 +323,8 @@ namespace TerminalAppLocalTests
{ "keys": ["ctrl+c"], "command": { "action": "splitPane", "split": null } },
{ "keys": ["ctrl+d"], "command": { "action": "splitPane", "split": "vertical" } },
{ "keys": ["ctrl+e"], "command": { "action": "splitPane", "split": "horizontal" } },
- { "keys": ["ctrl+f"], "command": { "action": "splitPane", "split": "none" } },
{ "keys": ["ctrl+g"], "command": { "action": "splitPane" } },
- { "keys": ["ctrl+h"], "command": { "action": "splitPane", "split": "auto" } },
- { "keys": ["ctrl+i"], "command": { "action": "splitPane", "split": "foo" } }
+ { "keys": ["ctrl+h"], "command": { "action": "splitPane", "split": "auto" } }
])" };
const auto bindings0Json = VerifyParseSucceeded(bindings0String);
@@ -335,7 +333,7 @@ namespace TerminalAppLocalTests
VERIFY_IS_NOT_NULL(appKeyBindings);
VERIFY_ARE_EQUAL(0u, appKeyBindings->_keyShortcuts.size());
appKeyBindings->LayerJson(bindings0Json);
- VERIFY_ARE_EQUAL(7u, appKeyBindings->_keyShortcuts.size());
+ VERIFY_ARE_EQUAL(5u, appKeyBindings->_keyShortcuts.size());
{
KeyChord kc{ true, false, false, static_cast('C') };
@@ -364,15 +362,6 @@ namespace TerminalAppLocalTests
// Verify the args have the expected value
VERIFY_ARE_EQUAL(winrt::TerminalApp::SplitState::Horizontal, realArgs.SplitStyle());
}
- {
- KeyChord kc{ true, false, false, static_cast('F') };
- auto actionAndArgs = TestUtils::GetActionAndArgs(*appKeyBindings, kc);
- VERIFY_ARE_EQUAL(ShortcutAction::SplitPane, actionAndArgs.Action());
- const auto& realArgs = actionAndArgs.Args().try_as();
- VERIFY_IS_NOT_NULL(realArgs);
- // Verify the args have the expected value
- VERIFY_ARE_EQUAL(winrt::TerminalApp::SplitState::Automatic, realArgs.SplitStyle());
- }
{
KeyChord kc{ true, false, false, static_cast('G') };
auto actionAndArgs = TestUtils::GetActionAndArgs(*appKeyBindings, kc);
@@ -391,15 +380,6 @@ namespace TerminalAppLocalTests
// Verify the args have the expected value
VERIFY_ARE_EQUAL(winrt::TerminalApp::SplitState::Automatic, realArgs.SplitStyle());
}
- {
- KeyChord kc{ true, false, false, static_cast('I') };
- auto actionAndArgs = TestUtils::GetActionAndArgs(*appKeyBindings, kc);
- VERIFY_ARE_EQUAL(ShortcutAction::SplitPane, actionAndArgs.Action());
- const auto& realArgs = actionAndArgs.Args().try_as();
- VERIFY_IS_NOT_NULL(realArgs);
- // Verify the args have the expected value
- VERIFY_ARE_EQUAL(winrt::TerminalApp::SplitState::Automatic, realArgs.SplitStyle());
- }
}
void KeyBindingsTests::TestSetTabColorArgs()
@@ -407,7 +387,6 @@ namespace TerminalAppLocalTests
const std::string bindings0String{ R"([
{ "keys": ["ctrl+c"], "command": { "action": "setTabColor", "color": null } },
{ "keys": ["ctrl+d"], "command": { "action": "setTabColor", "color": "#123456" } },
- { "keys": ["ctrl+e"], "command": { "action": "setTabColor", "color": "thisStringObviouslyWontWork" } },
{ "keys": ["ctrl+f"], "command": "setTabColor" },
])" };
@@ -417,7 +396,7 @@ namespace TerminalAppLocalTests
VERIFY_IS_NOT_NULL(appKeyBindings);
VERIFY_ARE_EQUAL(0u, appKeyBindings->_keyShortcuts.size());
appKeyBindings->LayerJson(bindings0Json);
- VERIFY_ARE_EQUAL(4u, appKeyBindings->_keyShortcuts.size());
+ VERIFY_ARE_EQUAL(3u, appKeyBindings->_keyShortcuts.size());
{
KeyChord kc{ true, false, false, static_cast('C') };
@@ -439,15 +418,6 @@ namespace TerminalAppLocalTests
// Remember that COLORREFs are actually BBGGRR order, while the string is in #RRGGBB order
VERIFY_ARE_EQUAL(static_cast(til::color(0x563412)), realArgs.TabColor().Value());
}
- {
- KeyChord kc{ true, false, false, static_cast('E') };
- auto actionAndArgs = TestUtils::GetActionAndArgs(*appKeyBindings, kc);
- VERIFY_ARE_EQUAL(ShortcutAction::SetTabColor, actionAndArgs.Action());
- const auto& realArgs = actionAndArgs.Args().try_as();
- VERIFY_IS_NOT_NULL(realArgs);
- // Verify the args have the expected value
- VERIFY_IS_NULL(realArgs.TabColor());
- }
{
KeyChord kc{ true, false, false, static_cast('F') };
auto actionAndArgs = TestUtils::GetActionAndArgs(*appKeyBindings, kc);
diff --git a/src/cascadia/LocalTests_TerminalApp/SettingsTests.cpp b/src/cascadia/LocalTests_TerminalApp/SettingsTests.cpp
index 8aed7e4525d..ecd58743f56 100644
--- a/src/cascadia/LocalTests_TerminalApp/SettingsTests.cpp
+++ b/src/cascadia/LocalTests_TerminalApp/SettingsTests.cpp
@@ -1431,10 +1431,6 @@ namespace TerminalAppLocalTests
{
"name": "profile3",
"closeOnExit": null
- },
- {
- "name": "profile4",
- "closeOnExit": { "clearly": "not a string" }
}
]
})" };
@@ -1449,7 +1445,6 @@ namespace TerminalAppLocalTests
// Unknown modes parse as "Graceful"
VERIFY_ARE_EQUAL(CloseOnExitMode::Graceful, settings._profiles[3].GetCloseOnExitMode());
- VERIFY_ARE_EQUAL(CloseOnExitMode::Graceful, settings._profiles[4].GetCloseOnExitMode());
}
void SettingsTests::TestCloseOnExitCompatibilityShim()
{
diff --git a/src/cascadia/TerminalApp/ActionAndArgs.cpp b/src/cascadia/TerminalApp/ActionAndArgs.cpp
index cdb7c61eaa5..a5d98e89bd2 100644
--- a/src/cascadia/TerminalApp/ActionAndArgs.cpp
+++ b/src/cascadia/TerminalApp/ActionAndArgs.cpp
@@ -2,6 +2,9 @@
#include "ActionArgs.h"
#include "ActionAndArgs.h"
#include "ActionAndArgs.g.cpp"
+
+#include "JsonUtils.h"
+
#include
static constexpr std::string_view CopyTextKey{ "copy" };
@@ -31,6 +34,7 @@ static constexpr std::string_view FindKey{ "find" };
static constexpr std::string_view ToggleRetroEffectKey{ "toggleRetroEffect" };
static constexpr std::string_view ToggleFocusModeKey{ "toggleFocusMode" };
static constexpr std::string_view ToggleFullscreenKey{ "toggleFullscreen" };
+static constexpr std::string_view ToggleAlwaysOnTopKey{ "toggleAlwaysOnTop" };
static constexpr std::string_view SetTabColorKey{ "setTabColor" };
static constexpr std::string_view OpenTabColorPickerKey{ "openTabColorPicker" };
static constexpr std::string_view RenameTabKey{ "renameTab" };
@@ -43,6 +47,8 @@ static constexpr std::string_view UnboundKey{ "unbound" };
namespace winrt::TerminalApp::implementation
{
+ using namespace ::TerminalApp;
+
// Specifically use a map here over an unordered_map. We want to be able to
// iterate over these entries in-order when we're serializing the keybindings.
// HERE BE DRAGONS:
@@ -76,6 +82,7 @@ namespace winrt::TerminalApp::implementation
{ ToggleRetroEffectKey, ShortcutAction::ToggleRetroEffect },
{ ToggleFocusModeKey, ShortcutAction::ToggleFocusMode },
{ ToggleFullscreenKey, ShortcutAction::ToggleFullscreen },
+ { ToggleAlwaysOnTopKey, ShortcutAction::ToggleAlwaysOnTop },
{ SplitPaneKey, ShortcutAction::SplitPane },
{ SetTabColorKey, ShortcutAction::SetTabColor },
{ OpenTabColorPickerKey, ShortcutAction::OpenTabColorPicker },
@@ -181,11 +188,9 @@ namespace winrt::TerminalApp::implementation
}
else if (json.isObject())
{
- const auto actionVal = json[JsonKey(ActionKey)];
- if (actionVal.isString())
+ if (const auto actionString{ JsonUtils::GetValueForKey>(json, ActionKey) })
{
- auto actionString = actionVal.asString();
- action = GetActionFromString(actionString);
+ action = GetActionFromString(*actionString);
argsVal = json;
}
}
@@ -256,6 +261,7 @@ namespace winrt::TerminalApp::implementation
{ ShortcutAction::ToggleRetroEffect, RS_(L"ToggleRetroEffectCommandKey") },
{ ShortcutAction::ToggleFocusMode, RS_(L"ToggleFocusModeCommandKey") },
{ ShortcutAction::ToggleFullscreen, RS_(L"ToggleFullscreenCommandKey") },
+ { ShortcutAction::ToggleAlwaysOnTop, RS_(L"ToggleAlwaysOnTopCommandKey") },
{ ShortcutAction::SplitPane, RS_(L"SplitPaneCommandKey") },
{ ShortcutAction::Invalid, L"" },
{ ShortcutAction::Find, RS_(L"FindCommandKey") },
@@ -278,5 +284,4 @@ namespace winrt::TerminalApp::implementation
const auto found = GeneratedActionNames.find(_Action);
return found != GeneratedActionNames.end() ? found->second : L"";
}
-
}
diff --git a/src/cascadia/TerminalApp/ActionArgs.h b/src/cascadia/TerminalApp/ActionArgs.h
index eb233b5967a..93e2b5baf3e 100644
--- a/src/cascadia/TerminalApp/ActionArgs.h
+++ b/src/cascadia/TerminalApp/ActionArgs.h
@@ -23,6 +23,8 @@
#include "JsonUtils.h"
#include "TerminalWarnings.h"
+#include "TerminalSettingsSerializationHelpers.h"
+
// Notes on defining ActionArgs and ActionEventArgs:
// * All properties specific to an action should be defined as an ActionArgs
// class that implements IActionArgs
@@ -31,6 +33,7 @@
namespace winrt::TerminalApp::implementation
{
+ using namespace ::TerminalApp;
using FromJsonResult = std::tuple>;
struct ActionEventArgs : public ActionEventArgsT
@@ -73,26 +76,11 @@ namespace winrt::TerminalApp::implementation
{
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
- if (auto commandline{ json[JsonKey(CommandlineKey)] })
- {
- args->_Commandline = winrt::to_hstring(commandline.asString());
- }
- if (auto startingDirectory{ json[JsonKey(StartingDirectoryKey)] })
- {
- args->_StartingDirectory = winrt::to_hstring(startingDirectory.asString());
- }
- if (auto tabTitle{ json[JsonKey(TabTitleKey)] })
- {
- args->_TabTitle = winrt::to_hstring(tabTitle.asString());
- }
- if (auto index{ json[JsonKey(ProfileIndexKey)] })
- {
- args->_ProfileIndex = index.asInt();
- }
- if (auto profile{ json[JsonKey(ProfileKey)] })
- {
- args->_Profile = winrt::to_hstring(profile.asString());
- }
+ JsonUtils::GetValueForKey(json, CommandlineKey, args->_Commandline);
+ JsonUtils::GetValueForKey(json, StartingDirectoryKey, args->_StartingDirectory);
+ JsonUtils::GetValueForKey(json, TabTitleKey, args->_TabTitle);
+ JsonUtils::GetValueForKey(json, ProfileIndexKey, args->_ProfileIndex);
+ JsonUtils::GetValueForKey(json, ProfileKey, args->_Profile);
return *args;
}
};
@@ -120,10 +108,7 @@ namespace winrt::TerminalApp::implementation
{
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
- if (auto singleLine{ json[JsonKey(SingleLineKey)] })
- {
- args->_SingleLine = singleLine.asBool();
- }
+ JsonUtils::GetValueForKey(json, SingleLineKey, args->_SingleLine);
return { *args, {} };
}
};
@@ -177,49 +162,11 @@ namespace winrt::TerminalApp::implementation
{
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
- if (auto tabIndex{ json[JsonKey(TabIndexKey)] })
- {
- args->_TabIndex = tabIndex.asUInt();
- }
+ JsonUtils::GetValueForKey(json, TabIndexKey, args->_TabIndex);
return { *args, {} };
}
};
- // Possible Direction values
- // TODO:GH#2550/#3475 - move these to a centralized deserializing place
- static constexpr std::string_view LeftString{ "left" };
- static constexpr std::string_view RightString{ "right" };
- static constexpr std::string_view UpString{ "up" };
- static constexpr std::string_view DownString{ "down" };
-
- // Function Description:
- // - Helper function for parsing a Direction from a string
- // Arguments:
- // - directionString: the string to attempt to parse
- // Return Value:
- // - The encoded Direction value, or Direction::None if it was an invalid string
- static TerminalApp::Direction ParseDirection(const std::string& directionString)
- {
- if (directionString == LeftString)
- {
- return TerminalApp::Direction::Left;
- }
- else if (directionString == RightString)
- {
- return TerminalApp::Direction::Right;
- }
- else if (directionString == UpString)
- {
- return TerminalApp::Direction::Up;
- }
- else if (directionString == DownString)
- {
- return TerminalApp::Direction::Down;
- }
- // default behavior for invalid data
- return TerminalApp::Direction::None;
- };
-
struct ResizePaneArgs : public ResizePaneArgsT
{
ResizePaneArgs() = default;
@@ -243,10 +190,7 @@ namespace winrt::TerminalApp::implementation
{
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
- if (auto directionString{ json[JsonKey(DirectionKey)] })
- {
- args->_Direction = ParseDirection(directionString.asString());
- }
+ JsonUtils::GetValueForKey(json, DirectionKey, args->_Direction);
if (args->_Direction == TerminalApp::Direction::None)
{
return { nullptr, { ::TerminalApp::SettingsLoadWarnings::MissingRequiredParameter } };
@@ -281,10 +225,7 @@ namespace winrt::TerminalApp::implementation
{
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
- if (auto directionString{ json[JsonKey(DirectionKey)] })
- {
- args->_Direction = ParseDirection(directionString.asString());
- }
+ JsonUtils::GetValueForKey(json, DirectionKey, args->_Direction);
if (args->_Direction == TerminalApp::Direction::None)
{
return { nullptr, { ::TerminalApp::SettingsLoadWarnings::MissingRequiredParameter } };
@@ -319,48 +260,11 @@ namespace winrt::TerminalApp::implementation
{
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
- if (auto jsonDelta{ json[JsonKey(AdjustFontSizeDelta)] })
- {
- args->_Delta = jsonDelta.asInt();
- }
+ JsonUtils::GetValueForKey(json, AdjustFontSizeDelta, args->_Delta);
return { *args, {} };
}
};
- // Possible SplitState values
- // TODO:GH#2550/#3475 - move these to a centralized deserializing place
- static constexpr std::string_view VerticalKey{ "vertical" };
- static constexpr std::string_view HorizontalKey{ "horizontal" };
- static constexpr std::string_view AutomaticKey{ "auto" };
- static TerminalApp::SplitState ParseSplitState(const std::string& stateString)
- {
- if (stateString == VerticalKey)
- {
- return TerminalApp::SplitState::Vertical;
- }
- else if (stateString == HorizontalKey)
- {
- return TerminalApp::SplitState::Horizontal;
- }
- else if (stateString == AutomaticKey)
- {
- return TerminalApp::SplitState::Automatic;
- }
- // default behavior for invalid data
- return TerminalApp::SplitState::Automatic;
- };
-
- // Possible SplitType values
- static constexpr std::string_view DuplicateKey{ "duplicate" };
- static TerminalApp::SplitType ParseSplitModeState(const std::string& stateString)
- {
- if (stateString == DuplicateKey)
- {
- return TerminalApp::SplitType::Duplicate;
- }
- return TerminalApp::SplitType::Manual;
- }
-
struct SplitPaneArgs : public SplitPaneArgsT
{
SplitPaneArgs() = default;
@@ -391,48 +295,12 @@ namespace winrt::TerminalApp::implementation
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
args->_TerminalArgs = NewTerminalArgs::FromJson(json);
- if (auto jsonStyle{ json[JsonKey(SplitKey)] })
- {
- args->_SplitStyle = ParseSplitState(jsonStyle.asString());
- }
- if (auto jsonStyle{ json[JsonKey(SplitModeKey)] })
- {
- args->_SplitMode = ParseSplitModeState(jsonStyle.asString());
- }
+ JsonUtils::GetValueForKey(json, SplitKey, args->_SplitStyle);
+ JsonUtils::GetValueForKey(json, SplitModeKey, args->_SplitMode);
return { *args, {} };
}
};
- // Possible SettingsTarget values
- // TODO:GH#2550/#3475 - move these to a centralized deserializing place
- static constexpr std::string_view SettingsFileString{ "settingsFile" };
- static constexpr std::string_view DefaultsFileString{ "defaultsFile" };
- static constexpr std::string_view AllFilesString{ "allFiles" };
-
- // Function Description:
- // - Helper function for parsing a SettingsTarget from a string
- // Arguments:
- // - targetString: the string to attempt to parse
- // Return Value:
- // - The encoded SettingsTarget value, or SettingsTarget::SettingsFile if it was an invalid string
- static TerminalApp::SettingsTarget ParseSettingsTarget(const std::string& targetString)
- {
- if (targetString == SettingsFileString)
- {
- return TerminalApp::SettingsTarget::SettingsFile;
- }
- else if (targetString == DefaultsFileString)
- {
- return TerminalApp::SettingsTarget::DefaultsFile;
- }
- else if (targetString == AllFilesString)
- {
- return TerminalApp::SettingsTarget::AllFiles;
- }
- // default behavior for invalid data
- return TerminalApp::SettingsTarget::SettingsFile;
- };
-
struct OpenSettingsArgs : public OpenSettingsArgsT
{
OpenSettingsArgs() = default;
@@ -456,10 +324,7 @@ namespace winrt::TerminalApp::implementation
{
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
- if (auto targetString{ json[JsonKey(TargetKey)] })
- {
- args->_Target = ParseSettingsTarget(targetString.asString());
- }
+ JsonUtils::GetValueForKey(json, TargetKey, args->_Target);
return { *args, {} };
}
};
@@ -487,16 +352,10 @@ namespace winrt::TerminalApp::implementation
{
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
- std::optional temp;
- try
+ if (const auto temp{ JsonUtils::GetValueForKey>(json, ColorKey) })
{
- ::TerminalApp::JsonUtils::GetOptionalColor(json, ColorKey, temp);
- if (temp.has_value())
- {
- args->_TabColor = static_cast(temp.value());
- }
+ args->_TabColor = static_cast(*temp);
}
- CATCH_LOG();
return { *args, {} };
}
};
@@ -524,10 +383,7 @@ namespace winrt::TerminalApp::implementation
{
// LOAD BEARING: Not using make_self here _will_ break you in the future!
auto args = winrt::make_self();
- if (auto title{ json[JsonKey(TitleKey)] })
- {
- args->_Title = winrt::to_hstring(title.asString());
- }
+ JsonUtils::GetValueForKey(json, TitleKey, args->_Title);
return { *args, {} };
}
};
diff --git a/src/cascadia/TerminalApp/AppActionHandlers.cpp b/src/cascadia/TerminalApp/AppActionHandlers.cpp
index 06f00892500..271513d4e58 100644
--- a/src/cascadia/TerminalApp/AppActionHandlers.cpp
+++ b/src/cascadia/TerminalApp/AppActionHandlers.cpp
@@ -253,6 +253,13 @@ namespace winrt::TerminalApp::implementation
args.Handled(true);
}
+ void TerminalPage::_HandleToggleAlwaysOnTop(const IInspectable& /*sender*/,
+ const TerminalApp::ActionEventArgs& args)
+ {
+ ToggleAlwaysOnTop();
+ args.Handled(true);
+ }
+
void TerminalPage::_HandleToggleCommandPalette(const IInspectable& /*sender*/,
const TerminalApp::ActionEventArgs& args)
{
diff --git a/src/cascadia/TerminalApp/AppLogic.cpp b/src/cascadia/TerminalApp/AppLogic.cpp
index 77f4e4aefef..e036bd9ee2c 100644
--- a/src/cascadia/TerminalApp/AppLogic.cpp
+++ b/src/cascadia/TerminalApp/AppLogic.cpp
@@ -1121,6 +1121,21 @@ namespace winrt::TerminalApp::implementation
return RS_(L"ApplicationVersionUnknown");
}
+ bool AppLogic::FocusMode() const
+ {
+ return _root ? _root->FocusMode() : false;
+ }
+
+ bool AppLogic::Fullscreen() const
+ {
+ return _root ? _root->Fullscreen() : false;
+ }
+
+ bool AppLogic::AlwaysOnTop() const
+ {
+ return _root ? _root->AlwaysOnTop() : false;
+ }
+
// -------------------------------- WinRT Events ---------------------------------
// Winrt events need a method for adding a callback to the event and removing the callback.
// These macros will define them both for you.
diff --git a/src/cascadia/TerminalApp/AppLogic.h b/src/cascadia/TerminalApp/AppLogic.h
index 9c030b20051..c879a6f1876 100644
--- a/src/cascadia/TerminalApp/AppLogic.h
+++ b/src/cascadia/TerminalApp/AppLogic.h
@@ -33,6 +33,9 @@ namespace winrt::TerminalApp::implementation
winrt::hstring ApplicationDisplayName() const;
winrt::hstring ApplicationVersion() const;
+ bool FocusMode() const;
+ bool Fullscreen() const;
+ bool AlwaysOnTop() const;
Windows::Foundation::Point GetLaunchDimensions(uint32_t dpi);
winrt::Windows::Foundation::Point GetLaunchInitialPositions(int32_t defaultInitialX, int32_t defaultInitialY);
@@ -104,8 +107,9 @@ namespace winrt::TerminalApp::implementation
FORWARDED_TYPED_EVENT(SetTitleBarContent, winrt::Windows::Foundation::IInspectable, winrt::Windows::UI::Xaml::UIElement, _root, SetTitleBarContent);
FORWARDED_TYPED_EVENT(TitleChanged, winrt::Windows::Foundation::IInspectable, winrt::hstring, _root, TitleChanged);
FORWARDED_TYPED_EVENT(LastTabClosed, winrt::Windows::Foundation::IInspectable, winrt::TerminalApp::LastTabClosedEventArgs, _root, LastTabClosed);
- FORWARDED_TYPED_EVENT(ToggleFocusMode, winrt::Windows::Foundation::IInspectable, winrt::TerminalApp::ToggleFocusModeEventArgs, _root, ToggleFocusMode);
- FORWARDED_TYPED_EVENT(ToggleFullscreen, winrt::Windows::Foundation::IInspectable, winrt::TerminalApp::ToggleFullscreenEventArgs, _root, ToggleFullscreen);
+ FORWARDED_TYPED_EVENT(FocusModeChanged, winrt::Windows::Foundation::IInspectable, winrt::Windows::Foundation::IInspectable, _root, FocusModeChanged);
+ FORWARDED_TYPED_EVENT(FullscreenChanged, winrt::Windows::Foundation::IInspectable, winrt::Windows::Foundation::IInspectable, _root, FullscreenChanged);
+ FORWARDED_TYPED_EVENT(AlwaysOnTopChanged, winrt::Windows::Foundation::IInspectable, winrt::Windows::Foundation::IInspectable, _root, AlwaysOnTopChanged);
};
}
diff --git a/src/cascadia/TerminalApp/AppLogic.idl b/src/cascadia/TerminalApp/AppLogic.idl
index 63441984f97..071a5ce84cc 100644
--- a/src/cascadia/TerminalApp/AppLogic.idl
+++ b/src/cascadia/TerminalApp/AppLogic.idl
@@ -41,6 +41,10 @@ namespace TerminalApp
String ApplicationDisplayName { get; };
String ApplicationVersion { get; };
+ Boolean FocusMode { get; };
+ Boolean Fullscreen { get; };
+ Boolean AlwaysOnTop { get; };
+
Windows.Foundation.Point GetLaunchDimensions(UInt32 dpi);
Windows.Foundation.Point GetLaunchInitialPositions(Int32 defaultInitialX, Int32 defaultInitialY);
Windows.UI.Xaml.ElementTheme GetRequestedTheme();
@@ -58,7 +62,8 @@ namespace TerminalApp
event Windows.Foundation.TypedEventHandler