[gnome-software: 1/6] Make system component icons non-symbolic




commit 61cb28154558947ba8145cc33b1f2956be5d0af7
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Wed Jul 28 08:14:34 2021 +0200

    Make system component icons non-symbolic
    
    This adds non-symbolic icons for system components and use them in place
    of the symbolic ones.
    
    The driver and firmware icons look the same but have different names to
    avoid ambiguity in the code.
    
    Fixes https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1328

 data/icons/system-component-codecs.svg        |  25 +++++
 data/icons/system-component-driver.svg        | 145 ++++++++++++++++++++++++++
 data/icons/system-component-firmware.svg      | 145 ++++++++++++++++++++++++++
 data/icons/system-component-input-sources.svg |  36 +++++++
 data/icons/system-component-language.svg      |  28 +++++
 data/icons/system-component-os-updates.svg    |  28 +++++
 data/icons/system-component-runtime.svg       |  25 +++++
 lib/gs-appstream.c                            |  10 +-
 plugins/core/gs-plugin-generic-updates.c      |   2 +-
 plugins/flatpak/gs-flatpak.c                  |   2 +-
 src/gnome-software.gresource.xml              |   7 ++
 11 files changed, 446 insertions(+), 7 deletions(-)
---
diff --git a/data/icons/system-component-codecs.svg b/data/icons/system-component-codecs.svg
new file mode 100644
index 000000000..87ca2a278
--- /dev/null
+++ b/data/icons/system-component-codecs.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" 
y2="77.241079">
+        <stop offset="0" stop-color="#99c1f1"/>
+        <stop offset="0.0575141" stop-color="#1a5fb4"/>
+        <stop offset="0.388232" stop-color="#1a5fb4"/>
+        <stop offset="0.473021" stop-color="#2b7be0"/>
+        <stop offset="0.618795" stop-color="#154d91"/>
+        <stop offset="0.953538" stop-color="#1a5fb4"/>
+        <stop offset="1" stop-color="#2f7fe1"/>
+    </linearGradient>
+    <clipPath id="b">
+        <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+    </clipPath>
+    <clipPath id="c">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 
-6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 
l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 
50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+    <g clip-path="url(#b)">
+        <g clip-path="url(#c)">
+            <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+        </g>
+    </g>
+    <path d="m 52.1875 42 v 40 h 4 c 0.699219 0.003906 1.390625 -0.15625 2 -0.5 l 28 -16 c 1.242188 -0.6875 
1.875 -2.09375 1.875 -3.5 s -0.632812 -2.8125 -1.875 -3.5 l -28 -16 c -0.609375 -0.34375 -1.300781 -0.503906 
-2 -0.5 z m 0 0" fill="#99c1f1"/>
+</svg>
diff --git a/data/icons/system-component-driver.svg b/data/icons/system-component-driver.svg
new file mode 100644
index 000000000..957277af5
--- /dev/null
+++ b/data/icons/system-component-driver.svg
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" 
y2="77.241079">
+        <stop offset="0" stop-color="#99c1f1"/>
+        <stop offset="0.0575141" stop-color="#1a5fb4"/>
+        <stop offset="0.388232" stop-color="#1a5fb4"/>
+        <stop offset="0.473021" stop-color="#2b7be0"/>
+        <stop offset="0.618795" stop-color="#154d91"/>
+        <stop offset="0.953538" stop-color="#1a5fb4"/>
+        <stop offset="1" stop-color="#2f7fe1"/>
+    </linearGradient>
+    <clipPath id="b">
+        <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+    </clipPath>
+    <clipPath id="c">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="d">
+        <path d="m 18 41 h 57 v 57 h -57 z m 0 0"/>
+    </clipPath>
+    <clipPath id="e">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="f">
+        <path d="m 36 59 h 56 v 56 h -56 z m 0 0"/>
+    </clipPath>
+    <clipPath id="g">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="h">
+        <path d="m 48 47 h 56 v 56 h -56 z m 0 0"/>
+    </clipPath>
+    <clipPath id="i">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="j">
+        <path d="m 17 48 h 68 v 69 h -68 z m 0 0"/>
+    </clipPath>
+    <clipPath id="k">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="l">
+        <path d="m 68 27 h 55 v 56 h -55 z m 0 0"/>
+    </clipPath>
+    <clipPath id="m">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="n">
+        <path d="m 48 28 h 34 v 34 h -34 z m 0 0"/>
+    </clipPath>
+    <clipPath id="o">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="p">
+        <path d="m 45 44 h 21 v 21 h -21 z m 0 0"/>
+    </clipPath>
+    <clipPath id="q">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="r">
+        <path d="m 65 24 h 21 v 21 h -21 z m 0 0"/>
+    </clipPath>
+    <clipPath id="s">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="t">
+        <path d="m 51 24 h 35 v 35 h -35 z m 0 0"/>
+    </clipPath>
+    <clipPath id="u">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="v">
+        <path d="m 64 28 h 15 v 15 h -15 z m 0 0"/>
+    </clipPath>
+    <clipPath id="w">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="x">
+        <path d="m 58 34 h 10 v 9 h -10 z m 0 0"/>
+    </clipPath>
+    <clipPath id="y">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 
-6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 
l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 
50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+    <g clip-path="url(#b)">
+        <g clip-path="url(#c)">
+            <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+        </g>
+    </g>
+    <g clip-path="url(#d)">
+        <g clip-path="url(#e)">
+            <path d="m 200.630501 130.781609 c 0 2.292573 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 
-0.002762 -4.154252 -1.861679 -4.157014 -4.157014 c 0 -2.292573 1.861679 -4.154253 4.154252 -4.154253 c 
2.295335 0.002763 4.154252 1.86168 4.157015 4.157015 z m 0 0" fill="none" stroke="#99c1f1" 
stroke-width="4.15432" transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#f)">
+        <g clip-path="url(#g)">
+            <path d="m 225.556015 130.781609 c 0 2.292573 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 
-0.002762 -4.154252 -1.861679 -4.154252 -4.154252 c -0.002762 -2.295335 1.858917 -4.157015 4.154252 -4.154252 
c 2.292573 0 4.151491 1.858917 4.154253 4.154252 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" 
transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#h)">
+        <g clip-path="url(#i)">
+            <path d="m 225.556015 114.1646 c 0 2.292572 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 
-0.002762 -4.154252 -1.86168 -4.154252 -4.154252 c -0.002762 -2.295335 1.858917 -4.157015 4.154252 -4.154253 
c 2.292573 0 4.151491 1.858918 4.154253 4.154253 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" 
transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#j)">
+        <g clip-path="url(#k)">
+            <path d="m 43.515625 234.34375 l -2.9375 2.9375 v 5.875 l 11.75 11.75 h 5.875 l 2.9375 -2.9375" 
fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(1 0 0 1 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#l)">
+        <g clip-path="url(#m)">
+            <path d="m -80.919532 221.401762 c 0 2.292573 -1.858918 4.151491 -4.154253 4.154253 c -2.292572 
0 -4.154252 -1.86168 -4.154252 -4.154253 c 0.002762 -2.295335 1.86168 -4.154252 4.154252 -4.154252 c 2.295335 
-0.002762 4.157015 1.858917 4.154253 4.154252 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" 
transform="matrix(0.707107 -0.707107 0.707107 0.707107 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#n)">
+        <g clip-path="url(#o)">
+            <path d="m 65.546875 29.746094 l 14.6875 14.6875 c 1.621094 1.625 1.621094 4.253906 0 5.875 l 
-10.28125 10.28125 c -1.621094 1.625 -4.253906 1.625 -5.875 0 l -14.6875 -14.6875 c -1.621094 -1.621094 
-1.621094 -4.25 0 -5.875 l 10.28125 -10.28125 c 1.621094 -1.621094 4.253906 -1.621094 5.875 0 z m 0 0" 
fill="#1a5fb4"/>
+        </g>
+    </g>
+    <g clip-path="url(#p)">
+        <g clip-path="url(#q)">
+            <path d="m 50.859375 44.433594 l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 
0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 5.875 5.875 l -4.40625 4.40625 c -0.8125 
0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 5.875 5.875 
l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 
4.40625 -4.40625 z m 0 0" fill="#99c1f1"/>
+        </g>
+    </g>
+    <g clip-path="url(#r)">
+        <g clip-path="url(#s)">
+            <path d="m 65.546875 29.746094 l 4.40625 -4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 
0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 5.875 5.875 l 4.40625 -4.40625 c 0.8125 -0.8125 
2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 5.875 5.875 l 4.40625 
-4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z 
m 0 0" fill="#99c1f1"/>
+        </g>
+    </g>
+    <g clip-path="url(#t)">
+        <g clip-path="url(#u)">
+            <path d="m 69.953125 25.339844 l 14.6875 14.6875 c 1.621094 1.625 1.621094 4.253906 0 5.875 l 
-11.75 11.75 c -1.621094 1.625 -4.253906 1.625 -5.875 0 l -14.6875 -14.6875 c -1.621094 -1.621094 -1.621094 
-4.25 0 -5.875 l 11.75 -11.75 c 1.621094 -1.621094 4.253906 -1.621094 5.875 0 z m 0 0" fill="#1c71d8"/>
+        </g>
+    </g>
+    <g clip-path="url(#v)">
+        <g clip-path="url(#w)">
+            <path d="m 67.015625 28.277344 l 11.75 11.75 l -2.9375 2.9375 l -11.75 -11.75 z m 0 0" 
fill="#62a0ea"/>
+        </g>
+    </g>
+    <g clip-path="url(#x)">
+        <g clip-path="url(#y)">
+            <path d="m 61.140625 34.152344 l 5.875 5.875 l -2.9375 2.9375 l -5.875 -5.875 z m 0 0" 
fill="#62a0ea"/>
+        </g>
+    </g>
+</svg>
diff --git a/data/icons/system-component-firmware.svg b/data/icons/system-component-firmware.svg
new file mode 100644
index 000000000..957277af5
--- /dev/null
+++ b/data/icons/system-component-firmware.svg
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" 
y2="77.241079">
+        <stop offset="0" stop-color="#99c1f1"/>
+        <stop offset="0.0575141" stop-color="#1a5fb4"/>
+        <stop offset="0.388232" stop-color="#1a5fb4"/>
+        <stop offset="0.473021" stop-color="#2b7be0"/>
+        <stop offset="0.618795" stop-color="#154d91"/>
+        <stop offset="0.953538" stop-color="#1a5fb4"/>
+        <stop offset="1" stop-color="#2f7fe1"/>
+    </linearGradient>
+    <clipPath id="b">
+        <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+    </clipPath>
+    <clipPath id="c">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="d">
+        <path d="m 18 41 h 57 v 57 h -57 z m 0 0"/>
+    </clipPath>
+    <clipPath id="e">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="f">
+        <path d="m 36 59 h 56 v 56 h -56 z m 0 0"/>
+    </clipPath>
+    <clipPath id="g">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="h">
+        <path d="m 48 47 h 56 v 56 h -56 z m 0 0"/>
+    </clipPath>
+    <clipPath id="i">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="j">
+        <path d="m 17 48 h 68 v 69 h -68 z m 0 0"/>
+    </clipPath>
+    <clipPath id="k">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="l">
+        <path d="m 68 27 h 55 v 56 h -55 z m 0 0"/>
+    </clipPath>
+    <clipPath id="m">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="n">
+        <path d="m 48 28 h 34 v 34 h -34 z m 0 0"/>
+    </clipPath>
+    <clipPath id="o">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="p">
+        <path d="m 45 44 h 21 v 21 h -21 z m 0 0"/>
+    </clipPath>
+    <clipPath id="q">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="r">
+        <path d="m 65 24 h 21 v 21 h -21 z m 0 0"/>
+    </clipPath>
+    <clipPath id="s">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="t">
+        <path d="m 51 24 h 35 v 35 h -35 z m 0 0"/>
+    </clipPath>
+    <clipPath id="u">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="v">
+        <path d="m 64 28 h 15 v 15 h -15 z m 0 0"/>
+    </clipPath>
+    <clipPath id="w">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <clipPath id="x">
+        <path d="m 58 34 h 10 v 9 h -10 z m 0 0"/>
+    </clipPath>
+    <clipPath id="y">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 
-6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 
l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 
50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+    <g clip-path="url(#b)">
+        <g clip-path="url(#c)">
+            <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+        </g>
+    </g>
+    <g clip-path="url(#d)">
+        <g clip-path="url(#e)">
+            <path d="m 200.630501 130.781609 c 0 2.292573 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 
-0.002762 -4.154252 -1.861679 -4.157014 -4.157014 c 0 -2.292573 1.861679 -4.154253 4.154252 -4.154253 c 
2.295335 0.002763 4.154252 1.86168 4.157015 4.157015 z m 0 0" fill="none" stroke="#99c1f1" 
stroke-width="4.15432" transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#f)">
+        <g clip-path="url(#g)">
+            <path d="m 225.556015 130.781609 c 0 2.292573 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 
-0.002762 -4.154252 -1.861679 -4.154252 -4.154252 c -0.002762 -2.295335 1.858917 -4.157015 4.154252 -4.154252 
c 2.292573 0 4.151491 1.858917 4.154253 4.154252 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" 
transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#h)">
+        <g clip-path="url(#i)">
+            <path d="m 225.556015 114.1646 c 0 2.292572 -1.86168 4.154252 -4.154253 4.154252 c -2.295335 
-0.002762 -4.154252 -1.86168 -4.154252 -4.154252 c -0.002762 -2.295335 1.858917 -4.157015 4.154252 -4.154253 
c 2.292573 0 4.151491 1.858918 4.154253 4.154253 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" 
transform="matrix(0.707107 0.707107 -0.707107 0.707107 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#j)">
+        <g clip-path="url(#k)">
+            <path d="m 43.515625 234.34375 l -2.9375 2.9375 v 5.875 l 11.75 11.75 h 5.875 l 2.9375 -2.9375" 
fill="none" stroke="#99c1f1" stroke-width="4.15432" transform="matrix(1 0 0 1 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#l)">
+        <g clip-path="url(#m)">
+            <path d="m -80.919532 221.401762 c 0 2.292573 -1.858918 4.151491 -4.154253 4.154253 c -2.292572 
0 -4.154252 -1.86168 -4.154252 -4.154253 c 0.002762 -2.295335 1.86168 -4.154252 4.154252 -4.154252 c 2.295335 
-0.002762 4.157015 1.858917 4.154253 4.154252 z m 0 0" fill="none" stroke="#99c1f1" stroke-width="4.15432" 
transform="matrix(0.707107 -0.707107 0.707107 0.707107 0 -162)"/>
+        </g>
+    </g>
+    <g clip-path="url(#n)">
+        <g clip-path="url(#o)">
+            <path d="m 65.546875 29.746094 l 14.6875 14.6875 c 1.621094 1.625 1.621094 4.253906 0 5.875 l 
-10.28125 10.28125 c -1.621094 1.625 -4.253906 1.625 -5.875 0 l -14.6875 -14.6875 c -1.621094 -1.621094 
-1.621094 -4.25 0 -5.875 l 10.28125 -10.28125 c 1.621094 -1.621094 4.253906 -1.621094 5.875 0 z m 0 0" 
fill="#1a5fb4"/>
+        </g>
+    </g>
+    <g clip-path="url(#p)">
+        <g clip-path="url(#q)">
+            <path d="m 50.859375 44.433594 l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 
0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 5.875 5.875 l -4.40625 4.40625 c -0.8125 
0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 4.40625 -4.40625 z m 5.875 5.875 
l -4.40625 4.40625 c -0.8125 0.816406 -0.8125 2.125 0 2.9375 c 0.8125 0.816406 2.125 0.816406 2.9375 0 l 
4.40625 -4.40625 z m 0 0" fill="#99c1f1"/>
+        </g>
+    </g>
+    <g clip-path="url(#r)">
+        <g clip-path="url(#s)">
+            <path d="m 65.546875 29.746094 l 4.40625 -4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 
0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 5.875 5.875 l 4.40625 -4.40625 c 0.8125 -0.8125 
2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z m 5.875 5.875 l 4.40625 
-4.40625 c 0.8125 -0.8125 2.125 -0.8125 2.9375 0 c 0.8125 0.816406 0.8125 2.125 0 2.9375 l -4.40625 4.40625 z 
m 0 0" fill="#99c1f1"/>
+        </g>
+    </g>
+    <g clip-path="url(#t)">
+        <g clip-path="url(#u)">
+            <path d="m 69.953125 25.339844 l 14.6875 14.6875 c 1.621094 1.625 1.621094 4.253906 0 5.875 l 
-11.75 11.75 c -1.621094 1.625 -4.253906 1.625 -5.875 0 l -14.6875 -14.6875 c -1.621094 -1.621094 -1.621094 
-4.25 0 -5.875 l 11.75 -11.75 c 1.621094 -1.621094 4.253906 -1.621094 5.875 0 z m 0 0" fill="#1c71d8"/>
+        </g>
+    </g>
+    <g clip-path="url(#v)">
+        <g clip-path="url(#w)">
+            <path d="m 67.015625 28.277344 l 11.75 11.75 l -2.9375 2.9375 l -11.75 -11.75 z m 0 0" 
fill="#62a0ea"/>
+        </g>
+    </g>
+    <g clip-path="url(#x)">
+        <g clip-path="url(#y)">
+            <path d="m 61.140625 34.152344 l 5.875 5.875 l -2.9375 2.9375 l -5.875 -5.875 z m 0 0" 
fill="#62a0ea"/>
+        </g>
+    </g>
+</svg>
diff --git a/data/icons/system-component-input-sources.svg b/data/icons/system-component-input-sources.svg
new file mode 100644
index 000000000..071034cf8
--- /dev/null
+++ b/data/icons/system-component-input-sources.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" 
y2="77.241079">
+        <stop offset="0" stop-color="#99c1f1"/>
+        <stop offset="0.0575141" stop-color="#1a5fb4"/>
+        <stop offset="0.388232" stop-color="#1a5fb4"/>
+        <stop offset="0.473021" stop-color="#2b7be0"/>
+        <stop offset="0.618795" stop-color="#154d91"/>
+        <stop offset="0.953538" stop-color="#1a5fb4"/>
+        <stop offset="1" stop-color="#2f7fe1"/>
+    </linearGradient>
+    <clipPath id="b">
+        <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+    </clipPath>
+    <clipPath id="c">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 
-6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 
l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 
50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+    <g clip-path="url(#b)">
+        <g clip-path="url(#c)">
+            <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+        </g>
+    </g>
+    <g fill="#99c1f1">
+        <path d="m 48 82 h 32 v 8 h -32 z m 0 0"/>
+        <path d="m 52 66 h 8 v 8 h -8 z m 0 0"/>
+        <path d="m 68 66 h 8 v 8 h -8 z m 0 0"/>
+        <path d="m 84 66 h 8 v 8 h -8 z m 0 0"/>
+        <path d="m 36 66 h 8 v 8 h -8 z m 0 0"/>
+        <path d="m 44 50 h 8 v 8 h -8 z m 0 0"/>
+        <path d="m 60 50 h 8 v 8 h -8 z m 0 0"/>
+        <path d="m 76 50 h 8 v 8 h -8 z m 0 0"/>
+        <path d="m 28 50 h 8 v 8 h -8 z m 0 0"/>
+        <path d="m 92 50 h 8 v 8 h -8 z m 0 0"/>
+    </g>
+</svg>
diff --git a/data/icons/system-component-language.svg b/data/icons/system-component-language.svg
new file mode 100644
index 000000000..2c28ad707
--- /dev/null
+++ b/data/icons/system-component-language.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" 
y2="77.241079">
+        <stop offset="0" stop-color="#99c1f1"/>
+        <stop offset="0.0575141" stop-color="#1a5fb4"/>
+        <stop offset="0.388232" stop-color="#1a5fb4"/>
+        <stop offset="0.473021" stop-color="#2b7be0"/>
+        <stop offset="0.618795" stop-color="#154d91"/>
+        <stop offset="0.953538" stop-color="#1a5fb4"/>
+        <stop offset="1" stop-color="#2f7fe1"/>
+    </linearGradient>
+    <clipPath id="b">
+        <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+    </clipPath>
+    <clipPath id="c">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 
-6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 
l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 
50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+    <g clip-path="url(#b)">
+        <g clip-path="url(#c)">
+            <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+        </g>
+    </g>
+    <g fill="#99c1f1" fill-rule="evenodd">
+        <path d="m 46 34 v 56 h 8 v -56 z m 0 0"/>
+        <path d="m 50 34 c -2.210938 0 -4 1.789062 -4 4 v 24 c 0 2.210938 1.789062 4 4 4 h 13.53125 l 
2.890625 5.789062 c 0.679687 1.355469 2.0625 2.210938 3.578125 2.210938 h 20 c 2.210938 0 4 -1.789062 4 -4 v 
-24 c 0 -2.210938 -1.789062 -4 -4 -4 h -13.523438 l -2.898437 -5.789062 c -0.679687 -1.355469 -2.0625 
-2.210938 -3.578125 -2.210938 z m 0 0"/>
+    </g>
+</svg>
diff --git a/data/icons/system-component-os-updates.svg b/data/icons/system-component-os-updates.svg
new file mode 100644
index 000000000..18ec3fd4b
--- /dev/null
+++ b/data/icons/system-component-os-updates.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" 
y2="77.241079">
+        <stop offset="0" stop-color="#99c1f1"/>
+        <stop offset="0.0575141" stop-color="#1a5fb4"/>
+        <stop offset="0.388232" stop-color="#1a5fb4"/>
+        <stop offset="0.473021" stop-color="#2b7be0"/>
+        <stop offset="0.618795" stop-color="#154d91"/>
+        <stop offset="0.953538" stop-color="#1a5fb4"/>
+        <stop offset="1" stop-color="#2f7fe1"/>
+    </linearGradient>
+    <clipPath id="b">
+        <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+    </clipPath>
+    <clipPath id="c">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 
-6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 
l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 
50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+    <g clip-path="url(#b)">
+        <g clip-path="url(#c)">
+            <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+        </g>
+    </g>
+    <g fill="#99c1f1">
+        <path d="m 56 50 h 16 v 32 h -16 z m 0 0"/>
+        <path d="m 64 35.371094 l 22.628906 22.628906 h -45.257812 z m 0 0"/>
+    </g>
+</svg>
diff --git a/data/icons/system-component-runtime.svg b/data/icons/system-component-runtime.svg
new file mode 100644
index 000000000..32d31957c
--- /dev/null
+++ b/data/icons/system-component-runtime.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.157114" x2="122.745697" y1="77.241079" 
y2="77.241079">
+        <stop offset="0" stop-color="#99c1f1"/>
+        <stop offset="0.0575141" stop-color="#1a5fb4"/>
+        <stop offset="0.388232" stop-color="#1a5fb4"/>
+        <stop offset="0.473021" stop-color="#2b7be0"/>
+        <stop offset="0.618795" stop-color="#154d91"/>
+        <stop offset="0.953538" stop-color="#1a5fb4"/>
+        <stop offset="1" stop-color="#2f7fe1"/>
+    </linearGradient>
+    <clipPath id="b">
+        <path d="m 6 1 h 117 v 118 h -117 z m 0 0"/>
+    </clipPath>
+    <clipPath id="c">
+        <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0"/>
+    </clipPath>
+    <path d="m 70.40625 119.546875 l 50.207031 -50.207031 c 1.660157 -1.660156 2.574219 -3.839844 2.453125 
-6.003906 l -0.140625 -3.058594 l -52.519531 -52.953125 c -3.257812 -3.289063 -8.394531 -3.121094 -11.8125 0 
l -52.550781 52.996093 l -0.042969 3.144532 c -0.027344 2.125 0.761719 4.246094 2.390625 5.875 l 50.203125 
50.207031 c 3.273438 3.269531 8.542969 3.269531 11.8125 0 z m 0 0" fill="url(#a)"/>
+    <g clip-path="url(#b)">
+        <g clip-path="url(#c)">
+            <path d="m 70.335938 115.847656 l 50.097656 -50.097656 c 3.253906 -3.253906 3.253906 -8.53125 0 
-11.785156 l -50.097656 -50.101563 c -3.253907 -3.253906 -8.535157 -3.253906 -11.789063 0 l -50.097656 
50.101563 c -3.253907 3.253906 -3.253907 8.53125 0 11.785156 l 50.097656 50.097656 c 3.253906 3.257813 
8.535156 3.257813 11.789063 0 z m 0 0" fill="#62a0ea"/>
+        </g>
+    </g>
+    <path d="m 64.90625 30.5625 c -0.9375 0 -1.875 0.046875 -2.789062 0.132812 l -1.726563 8.898438 c 
-1.421875 0.3125 -2.816406 0.746094 -4.117187 1.328125 l -6.507813 -6.242187 c -1.652344 0.976562 -3.089844 
2.183593 -4.515625 3.453124 l 3.851562 8.101563 c -0.945312 1.058594 -1.804687 2.21875 -2.523437 3.453125 l 
-8.898437 -1.195312 c -0.753907 1.738281 -1.3125 3.554687 -1.726563 5.445312 l 7.835937 4.25 c -0.074218 
0.714844 -0.132812 1.390625 -0.132812 2.125 s 0.0625 1.410156 0.132812 2.125 l -7.835937 4.25 c 0.414063 
1.890625 0.972656 3.707031 1.726563 5.445312 l 8.898437 -1.195312 c 0.71875 1.230469 1.578125 2.394531 
2.523437 3.453125 l -3.851562 8.101563 c 1.425781 1.269531 2.863281 2.476562 4.515625 3.453124 l 6.507813 
-6.242187 c 1.300781 0.582031 2.695312 1.015625 4.117187 1.328125 l 1.726563 8.898438 c 0.914062 0.085937 
1.851562 0.132812 2.789062 0.132812 s 1.875 -0.046875 2.789062 -0.132812 l 1.726563 -8.898438 c 1.421875 
-0.3125 2.816406 -0.746094 4.117187 -1.328125 l 6
 .507813 6.242187 c 1.652344 -0.976562 3.089844 -2.183593 4.515625 -3.453124 l -3.851562 -8.101563 c 0.945312 
-1.058594 1.804687 -2.222656 2.523437 -3.453125 l 8.898437 1.195312 c 0.753907 -1.738281 1.3125 -3.554687 
1.726563 -5.445312 l -7.835937 -4.25 c 0.074218 -0.714844 0.132812 -1.390625 0.132812 -2.125 s -0.058594 
-1.410156 -0.132812 -2.125 l 7.835937 -4.25 c -0.414063 -1.890625 -0.972656 -3.707031 -1.726563 -5.445312 l 
-8.898437 1.195312 c -0.71875 -1.234375 -1.578125 -2.394531 -2.523437 -3.453125 l 3.851562 -8.101563 c 
-1.425781 -1.269531 -2.863281 -2.476562 -4.515625 -3.453124 l -6.507813 6.242187 c -1.300781 -0.582031 
-2.695312 -1.015625 -4.117187 -1.328125 l -1.726563 -8.898438 c -0.914062 -0.085937 -1.851562 -0.132812 
-2.789062 -0.132812 z m 0 17 c 7.042969 0 12.75 5.707031 12.75 12.75 s -5.707031 12.75 -12.75 12.75 s -12.75 
-5.707031 -12.75 -12.75 s 5.707031 -12.75 12.75 -12.75 z m 0 0" fill="#99c1f1"/>
+</svg>
diff --git a/lib/gs-appstream.c b/lib/gs-appstream.c
index d48c8f14b..2c2006b1e 100644
--- a/lib/gs-appstream.c
+++ b/lib/gs-appstream.c
@@ -1713,26 +1713,26 @@ gs_appstream_component_add_extra_info (XbBuilderNode *component)
        case AS_COMPONENT_KIND_DRIVER:
                gs_appstream_component_add_category (component, "Addon");
                gs_appstream_component_add_category (component, "Driver");
-               gs_appstream_component_add_icon (component, "application-x-firmware-symbolic");
+               gs_appstream_component_add_icon (component, "system-component-driver");
                break;
        case AS_COMPONENT_KIND_LOCALIZATION:
                gs_appstream_component_add_category (component, "Addon");
                gs_appstream_component_add_category (component, "Localization");
-               gs_appstream_component_add_icon (component, "accessories-dictionary-symbolic");
+               gs_appstream_component_add_icon (component, "system-component-language");
                break;
        case AS_COMPONENT_KIND_CODEC:
                gs_appstream_component_add_category (component, "Addon");
                gs_appstream_component_add_category (component, "Codec");
-               gs_appstream_component_add_icon (component, "application-x-addon");
+               gs_appstream_component_add_icon (component, "system-component-codecs");
                break;
        case AS_COMPONENT_KIND_INPUT_METHOD:
                gs_appstream_component_add_keyword (component, kind);
                gs_appstream_component_add_category (component, "Addon");
                gs_appstream_component_add_category (component, "InputSource");
-               gs_appstream_component_add_icon (component, "system-run-symbolic");
+               gs_appstream_component_add_icon (component, "system-component-input-sources");
                break;
        case AS_COMPONENT_KIND_FIRMWARE:
-               gs_appstream_component_add_icon (component, "system-run-symbolic");
+               gs_appstream_component_add_icon (component, "system-component-firmware");
                break;
        default:
                break;
diff --git a/plugins/core/gs-plugin-generic-updates.c b/plugins/core/gs-plugin-generic-updates.c
index 7559b58c6..ee4e3af21 100644
--- a/plugins/core/gs-plugin-generic-updates.c
+++ b/plugins/core/gs-plugin-generic-updates.c
@@ -62,7 +62,7 @@ gs_plugin_generic_updates_get_os_update (GsPlugin *plugin)
        gs_app_set_description (app,
                                GS_APP_QUALITY_NORMAL,
                                gs_app_get_summary (app));
-       ic = g_themed_icon_new ("software-update-available-symbolic");
+       ic = g_themed_icon_new ("system-component-os-updates");
        gs_app_add_icon (app, ic);
        return app;
 }
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
index 7e9c571f8..d67069655 100644
--- a/plugins/flatpak/gs-flatpak.c
+++ b/plugins/flatpak/gs-flatpak.c
@@ -356,7 +356,7 @@ gs_flatpak_create_app (GsFlatpak *self,
                gs_app_set_summary (app, GS_APP_QUALITY_NORMAL,
                                    "Framework for applications");
                gs_app_set_version (app, flatpak_ref_get_branch (FLATPAK_REF (xref)));
-               icon = g_themed_icon_new ("system-run-symbolic");
+               icon = g_themed_icon_new ("system-component-runtime");
                gs_app_add_icon (app, icon);
        }
 
diff --git a/src/gnome-software.gresource.xml b/src/gnome-software.gresource.xml
index 34c69140b..1e28134b4 100644
--- a/src/gnome-software.gresource.xml
+++ b/src/gnome-software.gresource.xml
@@ -44,6 +44,13 @@
   <file preprocess="xml-stripblanks">org.freedesktop.PackageKit.xml</file>
   <file>gtk-style.css</file>
   <file>gtk-style-hc.css</file>
+  <file preprocess="xml-stripblanks" 
alias="icons/scalable/apps/system-component-codecs.svg">../data/icons/system-component-codecs.svg</file>
+  <file preprocess="xml-stripblanks" 
alias="icons/scalable/apps/system-component-driver.svg">../data/icons/system-component-driver.svg</file>
+  <file preprocess="xml-stripblanks" 
alias="icons/scalable/apps/system-component-firmware.svg">../data/icons/system-component-firmware.svg</file>
+  <file preprocess="xml-stripblanks" 
alias="icons/scalable/apps/system-component-input-sources.svg">../data/icons/system-component-input-sources.svg</file>
+  <file preprocess="xml-stripblanks" 
alias="icons/scalable/apps/system-component-language.svg">../data/icons/system-component-language.svg</file>
+  <file preprocess="xml-stripblanks" 
alias="icons/scalable/apps/system-component-os-updates.svg">../data/icons/system-component-os-updates.svg</file>
+  <file preprocess="xml-stripblanks" 
alias="icons/scalable/apps/system-component-runtime.svg">../data/icons/system-component-runtime.svg</file>
   <file preprocess="xml-stripblanks" 
alias="icons/scalable/devices/adaptive-symbolic.svg">../data/icons/adaptive-symbolic.svg</file>
   <file preprocess="xml-stripblanks" 
alias="icons/scalable/devices/desktop-symbolic.svg">../data/icons/desktop-symbolic.svg</file>
   <file preprocess="xml-stripblanks" 
alias="icons/scalable/devices/emblem-synchronizing-symbolic.svg">../data/icons/emblem-synchronizing-symbolic.svg</file>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]