summaryrefslogtreecommitdiffstats
path: root/data/icons
diff options
context:
space:
mode:
Diffstat (limited to 'data/icons')
-rw-r--r--data/icons/adaptive-symbolic.svg1
-rw-r--r--data/icons/app-installed-symbolic.svg1
-rw-r--r--data/icons/chat-none-symbolic.svg1
-rw-r--r--data/icons/chat-symbolic.svg1
-rw-r--r--data/icons/cigarette-none-symbolic.svg1
-rw-r--r--data/icons/cigarette-symbolic.svg1
-rw-r--r--data/icons/community-none-symbolic.svg8
-rw-r--r--data/icons/community-symbolic.svg1
-rw-r--r--data/icons/desktop-symbolic.svg1
-rw-r--r--data/icons/emblem-synchronizing-symbolic.svg1
-rw-r--r--data/icons/explore-symbolic.svg1
-rw-r--r--data/icons/external-link-symbolic.svg1
-rw-r--r--data/icons/flag-outline-thin-symbolic.svg1
-rw-r--r--data/icons/flatpak-symbolic.svg4
-rw-r--r--data/icons/graveyard-symbolic.svg1
-rw-r--r--data/icons/hand-open-symbolic.svg2
-rw-r--r--data/icons/heart-filled-symbolic.svg1
-rw-r--r--data/icons/help-link-symbolic.svg1
-rw-r--r--data/icons/hicolor/meson.build6
-rw-r--r--data/icons/hicolor/scalable/org.gnome.Software.svg24
-rw-r--r--data/icons/hicolor/scalable/org.gnome.SoftwareDevel.svg69
-rw-r--r--data/icons/hicolor/symbolic/app-remove-symbolic.svg1
-rw-r--r--data/icons/hicolor/symbolic/org.gnome.Software-symbolic.svg5
-rw-r--r--data/icons/meson.build1
-rw-r--r--data/icons/money-none-symbolic.svg1
-rw-r--r--data/icons/money-symbolic.svg1
-rw-r--r--data/icons/nudity-none-symbolic.svg1
-rw-r--r--data/icons/nudity-symbolic.svg1
-rw-r--r--data/icons/org.gnome.Software.Create.svg70
-rw-r--r--data/icons/org.gnome.Software.Develop.svg44
-rw-r--r--data/icons/org.gnome.Software.Learn.svg10
-rw-r--r--data/icons/org.gnome.Software.Play.svg37
-rw-r--r--data/icons/org.gnome.Software.Socialize.svg23
-rw-r--r--data/icons/org.gnome.Software.Work.svg27
-rw-r--r--data/icons/package-x-generic-symbolic.svg8
-rw-r--r--data/icons/padlock-open-symbolic.svg1
-rw-r--r--data/icons/phone-symbolic.svg1
-rw-r--r--data/icons/pub-symbolic.svg1
-rw-r--r--data/icons/review-symbolic.svg8
-rw-r--r--data/icons/safety-symbolic.svg1
-rw-r--r--data/icons/sign-language-symbolic.svg1
-rw-r--r--data/icons/snap-symbolic.svg8
-rw-r--r--data/icons/strong-language-none-symbolic.svg1
-rw-r--r--data/icons/strong-language-symbolic.svg1
-rw-r--r--data/icons/system-component-addon.svg35
-rw-r--r--data/icons/system-component-application.svg25
-rw-r--r--data/icons/system-component-codecs.svg25
-rw-r--r--data/icons/system-component-driver.svg145
-rw-r--r--data/icons/system-component-firmware.svg145
-rw-r--r--data/icons/system-component-input-sources.svg36
-rw-r--r--data/icons/system-component-language.svg28
-rw-r--r--data/icons/system-component-os-updates.svg28
-rw-r--r--data/icons/system-component-runtime.svg25
-rw-r--r--data/icons/test-symbolic.svg8
-rw-r--r--data/icons/violence-none-symbolic.svg1
-rw-r--r--data/icons/violence-symbolic.svg1
-rw-r--r--data/icons/webpage-symbolic.svg1
57 files changed, 884 insertions, 0 deletions
diff --git a/data/icons/adaptive-symbolic.svg b/data/icons/adaptive-symbolic.svg
new file mode 100644
index 0000000..f1109c8
--- /dev/null
+++ b/data/icons/adaptive-symbolic.svg
@@ -0,0 +1 @@
+<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg"><path d="M44.004 25c-1.662 0-3 1.338-3 3v6c0 1.662 1.338 3 3 3h12c1.662 0 3-1.338 3-3v-6c0-1.662-1.338-3-3-3h-12zm-36.5.002a2.517 2.517 0 0 0-2.5 2.5v10c0 1.368 1.132 2.5 2.5 2.5h5c1.368 0 2.5-1.132 2.5-2.5v-10c0-1.368-1.132-2.5-2.5-2.5h-5zm15 1a2.517 2.517 0 0 0-2.5 2.5V37h2v-8.5c0-.294.206-.5.5-.5h11.004c.295 0 .5.206.5.5V37h2v-8.498c0-1.367-1.132-2.5-2.5-2.5H22.504zm21.5.998h12c.554 0 1 .446 1 1v6c0 .554-.446 1-1 1h-12c-.554 0-1-.446-1-1v-6c0-.554.446-1 1-1zm-36.5.002h.5c0 .554.446 1 1 1h2c.554 0 1-.446 1-1h.5c.294 0 .5.206.5.5v10c0 .294-.206.5-.5.5h-5a.478.478 0 0 1-.5-.5v-10c0-.294.206-.5.5-.5zM18.004 38a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2h-20zm29 0a2 2 0 0 0-2 2h10a2 2 0 0 0-2-2h-6z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/app-installed-symbolic.svg b/data/icons/app-installed-symbolic.svg
new file mode 100644
index 0000000..660cab2
--- /dev/null
+++ b/data/icons/app-installed-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="color:#000;fill:#2e3436;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:26.4;-inkscape-stroke:none" d="M7.883 0a8.04 8.04 0 0 0-.963.074 7.988 7.988 0 0 0-4.604 2.291 8.014 8.014 0 0 0-1.228 9.666 8.008 8.008 0 0 0 9.016 3.686 8.004 8.004 0 0 0 5.892-7.752 1 1 0 1 0-1.998.01 5.987 5.987 0 0 1-4.42 5.812 5.995 5.995 0 0 1-6.764-2.766 5.993 5.993 0 0 1 .922-7.248 5.991 5.991 0 0 1 7.239-.984 1 1 0 1 0 .992-1.736A7.96 7.96 0 0 0 7.883 0zm7.209 2.002a1 1 0 0 0-.844.338L7.951 9.535 5.707 7.291a1 1 0 0 0-1.414 0 1 1 0 0 0 0 1.416l3 3a1 1 0 0 0 1.46-.049l7-8a1 1 0 0 0-.093-1.412 1 1 0 0 0-.568-.244z"/></svg> \ No newline at end of file
diff --git a/data/icons/chat-none-symbolic.svg b/data/icons/chat-none-symbolic.svg
new file mode 100644
index 0000000..ab473b3
--- /dev/null
+++ b/data/icons/chat-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06.802.803L11.941 13l2.53 2.53 1.06-1.061-1.521-1.522A2.49 2.49 0 0 0 16 10.5v-6A2.495 2.495 0 0 0 13.5 2H3.062L1.532.469zM.246 3.429A2.504 2.504 0 0 0 0 4.5v6C0 11.684 1.402 13 2.5 13H4v3l3.125-3h2.691L.246 3.43z"/></svg> \ No newline at end of file
diff --git a/data/icons/chat-symbolic.svg b/data/icons/chat-symbolic.svg
new file mode 100644
index 0000000..67ffbdf
--- /dev/null
+++ b/data/icons/chat-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M13.5 2A2.495 2.495 0 0 1 16 4.5v6c0 1.387-1.113 2.5-2.5 2.5H7.125L4 16v-3H2.5C1 13 0 11.684 0 10.5v-6C0 3.113 1.113 2 2.5 2zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/cigarette-none-symbolic.svg b/data/icons/cigarette-none-symbolic.svg
new file mode 100644
index 0000000..c54012f
--- /dev/null
+++ b/data/icons/cigarette-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M3 0v.5C3 2.98 5.02 5 7.5 5h3c.832 0 1.5.664 1.5 1.5V7h3v-.5C15 4.02 12.98 2 10.5 2h-3C6.664 2 6 1.332 6 .5V0Zm0 0" fill-opacity=".35" style="fill:#2e3436"/><path style="fill:#2e3436" d="m1.531.469-1.06 1.06 14 14 1.06-1.06L13 11.938V8h-1v2.938l-1-1V8H9.062L1.532.469zM0 8v4h8.906l-4-4H0zm14 0v4h1V8h-1z"/></svg> \ No newline at end of file
diff --git a/data/icons/cigarette-symbolic.svg b/data/icons/cigarette-symbolic.svg
new file mode 100644
index 0000000..75c42c7
--- /dev/null
+++ b/data/icons/cigarette-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M3 .012v.5c0 2.48 2.02 4.5 4.5 4.5h3c.832 0 1.5.664 1.5 1.5v.5h3v-.5c0-2.48-2.02-4.5-4.5-4.5h-3c-.836 0-1.5-.668-1.5-1.5v-.5zm0 0" fill-opacity=".35" style="fill:#2e3436"/><path style="fill:#2e3436" d="M0 8.012v4h11v-4H0zm12 0v4h1v-4h-1zm2 0v4h1v-4h-1z"/></svg> \ No newline at end of file
diff --git a/data/icons/community-none-symbolic.svg b/data/icons/community-none-symbolic.svg
new file mode 100644
index 0000000..c0c07cb
--- /dev/null
+++ b/data/icons/community-none-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 16 16" version="1.1">
+<g id="surface25330">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(13.333334%,13.333334%,13.333334%);fill-opacity:0.501961;" d="M 11 0 C 9.621094 0 8.5 1.121094 8.5 2.5 C 8.5 3.878906 9.621094 5 11 5 C 12.378906 5 13.5 3.878906 13.5 2.5 C 13.5 1.121094 12.378906 0 11 0 Z M 9 6 C 8.117188 6 6.933594 6.585938 6.230469 7.277344 L 10.953125 12 L 15 12 C 15.554688 12 16 11.554688 16 11 L 16 9 C 16 7.339844 14.660156 6 13 6 Z M 9 6 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(13.333334%,13.333334%,13.333334%);fill-opacity:1;" d="M 5 4 C 4.425781 4 3.898438 4.195312 3.476562 4.523438 L 6.980469 8.027344 C 7.304688 7.601562 7.5 7.074219 7.5 6.5 C 7.5 5.121094 6.378906 4 5 4 Z M 2.609375 5.78125 C 2.539062 6.007812 2.5 6.25 2.5 6.5 C 2.5 7.878906 3.621094 9 5 9 C 5.25 9 5.492188 8.964844 5.722656 8.894531 Z M 3 10 C 1.339844 10 0 11.339844 0 13 L 0 15 C 0 15.554688 0.445312 16 1 16 L 9 16 C 9.554688 16 10 15.554688 10 15 L 10 13.171875 L 6.828125 10 Z M 3 10 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(13.333334%,13.333334%,13.333334%);fill-opacity:1;" d="M 1.53125 0.457031 L 0.46875 1.519531 L 14.46875 15.519531 L 15.53125 14.457031 Z M 1.53125 0.457031 "/>
+</g>
+</svg>
diff --git a/data/icons/community-symbolic.svg b/data/icons/community-symbolic.svg
new file mode 100644
index 0000000..3716efa
--- /dev/null
+++ b/data/icons/community-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M5 2a2 2 0 0 0-2 2 2 2 0 0 0 2 2 2 2 0 0 0 2-2 2 2 0 0 0-2-2zm6 2a2 2 0 0 0-2 2 2 2 0 0 0 2 2 2 2 0 0 0 2-2 2 2 0 0 0-2-2zM4 7c-1.662 0-3 1.338-3 3v1c0 .554.446 1 1 1h4c0-1.665 1.056-3.038 2.518-3.625A2.986 2.986 0 0 0 6 7H4zm6 2c-1.662 0-3 1.338-3 3v1c0 .554.446 1 1 1h6c.554 0 1-.446 1-1v-1c0-1.662-1.338-3-3-3h-2z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/desktop-symbolic.svg b/data/icons/desktop-symbolic.svg
new file mode 100644
index 0000000..3a4031a
--- /dev/null
+++ b/data/icons/desktop-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#241f31;fill-opacity:1" d="M3 1C1.338 1 0 2.338 0 4v6c0 1.662 1.338 3 3 3h10c1.662 0 3-1.338 3-3V4c0-1.662-1.338-3-3-3H3zm0 2h10c.554 0 1 .446 1 1v6c0 .554-.446 1-1 1H3c-.554 0-1-.446-1-1V4c0-.554.446-1 1-1zm2 11a2 2 0 0 0-2 2h10a2 2 0 0 0-2-2H5z"/></svg> \ No newline at end of file
diff --git a/data/icons/emblem-synchronizing-symbolic.svg b/data/icons/emblem-synchronizing-symbolic.svg
new file mode 100644
index 0000000..db232ff
--- /dev/null
+++ b/data/icons/emblem-synchronizing-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M7.863 1a7.01 7.01 0 0 0-5.926 3.5 1 1 0 0 0 .368 1.365A1 1 0 0 0 3.67 5.5a4.994 4.994 0 0 1 5.2-2.424A4.99 4.99 0 0 1 12.583 6H11a1 1 0 0 0-1 1 1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1 1 1 0 0 0-1 1v1.398A7.007 7.007 0 0 0 7.863 1ZM1 8a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1 1 1 0 0 0 1-1v-1.396a7.006 7.006 0 0 0 5.39 3.369 7.004 7.004 0 0 0 6.673-3.473 1 1 0 0 0-.366-1.365 1 1 0 0 0-1.367.365 4.994 4.994 0 0 1-4.766 2.48A4.994 4.994 0 0 1 3.418 10H5a1 1 0 0 0 1-1 1 1 0 0 0-1-1Z" style="fill:#2e3436;fill-opacity:1"/></svg> \ No newline at end of file
diff --git a/data/icons/explore-symbolic.svg b/data/icons/explore-symbolic.svg
new file mode 100644
index 0000000..befab30
--- /dev/null
+++ b/data/icons/explore-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#3d3846;fill-opacity:.35;stroke-width:1" d="M2.557 2a.59.59 0 0 0-.504.828L3.16 5.32l1.56-.6.6-1.56-2.492-1.107A.583.583 0 0 0 2.557 2Zm10.875.002a.585.585 0 0 0-.26.05L10.68 3.16l.6 1.56 1.56.6 1.107-2.492a.587.587 0 0 0-.515-.826ZM3.16 10.68l-1.107 2.492a.587.587 0 0 0 .775.775L5.32 12.84l-.6-1.56Zm9.68 0-1.56.6-.6 1.56 2.492 1.107a.587.587 0 0 0 .775-.775z"/><path d="M8.002 0a.572.572 0 0 0-.535.367L5.494 5.494.367 7.467a.571.571 0 0 0 0 1.066l5.127 1.973 1.973 5.127a.571.571 0 0 0 1.066 0l1.973-5.127 5.127-1.973a.571.571 0 0 0 0-1.066l-5.127-1.973L8.533.367A.573.573 0 0 0 8.002 0ZM8 7a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/external-link-symbolic.svg b/data/icons/external-link-symbolic.svg
new file mode 100644
index 0000000..35b8681
--- /dev/null
+++ b/data/icons/external-link-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M10 0a1 1 0 0 0 0 2h2.586L7.293 7.293a1 1 0 0 0 1.414 1.414L14 3.414V6a1 1 0 1 0 2 0V0h-1ZM4 1C2.355 1 1 2.355 1 4v8c0 1.645 1.355 3 3 3h8c1.645 0 3-1.355 3-3V9c0-.554-.446-1-1-1s-1 .446-1 1v3c0 .571-.429 1-1 1H4c-.571 0-1-.429-1-1V4c0-.571.429-1 1-1h3c.554 0 1-.446 1-1s-.446-1-1-1Z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/flag-outline-thin-symbolic.svg b/data/icons/flag-outline-thin-symbolic.svg
new file mode 100644
index 0000000..5a6c384
--- /dev/null
+++ b/data/icons/flag-outline-thin-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M1 0v16h2v-6h3.383l.722 1.447A1 1 0 0 0 8 12h6a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H9.617L8.895.553A1 1 0 0 0 8 0Zm2 2h4.383l.722 1.447A1 1 0 0 0 9 4h4v6H8.617l-.722-1.447A1 1 0 0 0 7 8H3Z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/flatpak-symbolic.svg b/data/icons/flatpak-symbolic.svg
new file mode 100644
index 0000000..6b34e64
--- /dev/null
+++ b/data/icons/flatpak-symbolic.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <path d="m 7.804688 0.0195312 c -0.128907 0.0273438 -0.25 0.0742188 -0.359376 0.1484378 l -6 4 c -0.277343 0.183593 -0.445312 0.496093 -0.445312 0.832031 v 6 c 0 0.335938 0.167969 0.648438 0.445312 0.832031 l 6 4 c 0.335938 0.222657 0.773438 0.222657 1.109376 0 l 6 -4 c 0.277343 -0.183593 0.445312 -0.496093 0.445312 -0.832031 v -6 c 0 -0.335938 -0.167969 -0.648438 -0.445312 -0.832031 l -6 -4 c -0.21875 -0.1484378 -0.488282 -0.199219 -0.75 -0.1484378 z m 0.195312 2.1796878 v 6.800781 l 5 -3.332031 v 4.796875 l -5 3.335937 v -4.800781 l -5 -3.332031 v -0.132813 z m 0 0" fill="#2e3436"/>
+</svg>
diff --git a/data/icons/graveyard-symbolic.svg b/data/icons/graveyard-symbolic.svg
new file mode 100644
index 0000000..fbd5c05
--- /dev/null
+++ b/data/icons/graveyard-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m11.125 1.25-.844 2.188-1.844-.75-.75 1.874 1.875.75-2.187 5.75C5.082 11.54 3.832 13.027 3 14H1.469v1.063h13V14h-.719c-.414-.988-1.914-2.605-4.219-3l1.906-4.969 2.25.907.75-1.844-2.28-.907L13 2zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/hand-open-symbolic.svg b/data/icons/hand-open-symbolic.svg
new file mode 100644
index 0000000..2e20f74
--- /dev/null
+++ b/data/icons/hand-open-symbolic.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 8 0 c 0.554688 0 1 0.445312 1 1 v 6.5 s 0 0.5 0.5 0.5 s 0.5 -0.5 0.5 -0.5 v -4.5 c 0 -0.554688 0.445312 -1 1 -1 s 1 0.445312 1 1 v 8.5 c 0 0.5 0.5 0.5 0.5 0.5 l 1.792969 -1.707031 c 0.1875 -0.195313 0.445312 -0.300781 0.71875 -0.300781 c 1.082031 0.082031 1.144531 1.265624 0.695312 1.714843 l -3 3 c -0.707031 0.792969 -1.757812 1.289063 -2.707031 1.292969 h -6 c -3 0 -3 -3 -3 -3 v -8 c 0 -0.554688 0.445312 -1 1 -1 s 1 0.445312 1 1 v 3.5 s 0 0.5 0.5 0.5 s 0.5 -0.5 0.5 -0.5 v -6.5 c 0 -0.554688 0.445312 -1 1 -1 s 1 0.445312 1 1 v 5.5 s 0 0.5 0.5 0.5 s 0.5 -0.5 0.5 -0.5 v -6.5 c 0 -0.554688 0.445312 -1 1 -1 z m 0 0" fill="#222222"/></svg>
diff --git a/data/icons/heart-filled-symbolic.svg b/data/icons/heart-filled-symbolic.svg
new file mode 100644
index 0000000..bd06edb
--- /dev/null
+++ b/data/icons/heart-filled-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M11.395 1.965a3.75 3.75 0 0 0-2.641.984L8 3.625l-.758-.676a3.738 3.738 0 0 0-3.676-.77 3.738 3.738 0 0 0-2.5 2.805 3.76 3.76 0 0 0 1.188 3.567L8 13.668l5.742-5.117a3.75 3.75 0 0 0-2.348-6.586zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/help-link-symbolic.svg b/data/icons/help-link-symbolic.svg
new file mode 100644
index 0000000..52f8fe6
--- /dev/null
+++ b/data/icons/help-link-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="color:#bebebe;fill:#2e3436;-inkscape-stroke:none" d="M8 0C3.585 0 0 3.585 0 8s3.585 8 8 8 8-3.585 8-8-3.585-8-8-8zm0 2c.973 0 1.887.227 2.695.629L9.461 5.14A2.324 2.324 0 0 0 8.662 5H7.338c-.28 0-.55.05-.799.14L5.305 2.63A6.034 6.034 0 0 1 8 2zM2.613 5.338l2.51 1.254A2.32 2.32 0 0 0 5 7.338v1.324c0 .28.05.55.14.799L2.64 10.713A6.032 6.032 0 0 1 2 8c0-.96.222-1.862.613-2.662zm10.774 0C13.778 6.138 14 7.04 14 8c0 .98-.231 1.9-.639 2.713L10.86 9.46c.092-.25.141-.52.141-.799V7.338c0-.26-.044-.512-.123-.746l2.51-1.254zM7.337 6h1.325C9.412 6 10 6.588 10 7.338v1.324C10 9.412 9.412 10 8.662 10H7.338C6.588 10 6 9.412 6 8.662V7.338C6 6.588 6.588 6 7.338 6zm-.77 4.867c.241.085.5.133.77.133h1.325c.27 0 .53-.048.772-.133l1.254 2.508C9.88 13.775 8.97 14 8 14c-.97 0-1.881-.226-2.688-.625l1.254-2.508z"/></svg> \ No newline at end of file
diff --git a/data/icons/hicolor/meson.build b/data/icons/hicolor/meson.build
new file mode 100644
index 0000000..6f92a45
--- /dev/null
+++ b/data/icons/hicolor/meson.build
@@ -0,0 +1,6 @@
+install_data('scalable/' + application_id + '.svg',
+ install_dir : 'share/icons/hicolor/scalable/apps')
+install_data('symbolic/org.gnome.Software-symbolic.svg',
+ install_dir : 'share/icons/hicolor/symbolic/apps')
+install_data('symbolic/app-remove-symbolic.svg',
+ install_dir : 'share/icons/hicolor/scalable/actions')
diff --git a/data/icons/hicolor/scalable/org.gnome.Software.svg b/data/icons/hicolor/scalable/org.gnome.Software.svg
new file mode 100644
index 0000000..fd973d8
--- /dev/null
+++ b/data/icons/hicolor/scalable/org.gnome.Software.svg
@@ -0,0 +1,24 @@
+<?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="36" x2="60" y1="68" y2="68">
+ <stop offset="0" stop-color="#ed336c"/>
+ <stop offset="1" stop-color="#ffa348"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0 1 -1 0 144 -32)" gradientUnits="userSpaceOnUse" x1="72" x2="96" y1="68" y2="68">
+ <stop offset="0" stop-color="#404ce6"/>
+ <stop offset="1" stop-color="#c061cb"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="68.84919" x2="95.257637" y1="84" y2="84">
+ <stop offset="0" stop-color="#33d1c6"/>
+ <stop offset="1" stop-color="#1c25d8"/>
+ </linearGradient>
+ <path d="m 44 16 l 8 -8 h 24 l 8 8 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 52 8 l -8 8 v 16 h 8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 76 8 l 8 8 v 16 h -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 16 72 h 96 c 4.417969 0 8 3.582031 8 8 v 28 c 0 4.417969 -3.582031 8 -8 8 h -96 c -4.417969 0 -8 -3.582031 -8 -8 v -28 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 8 28 h 112 v 80 h -112 z m 0 0" fill="#e5e5e1"/>
+ <path d="m 8 68 h 112 v 40 h -112 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 44 56 h 8 c 4.417969 0 8 3.582031 8 8 v 8 c 0 4.417969 -3.582031 8 -8 8 h -8 c -4.417969 0 -8 -3.582031 -8 -8 v -8 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 76 64 c -6.628906 0 -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 s -5.371094 12 -12 12 z m 0 0" fill="url(#b)"/>
+ <path d="m 82.789062 70.976562 l -17.578124 10.046876 c -1.070313 0.609374 -1.730469 1.746093 -1.730469 2.976562 s 0.660156 2.367188 1.730469 2.976562 l 17.578124 10.046876 c 1.078126 0.617187 2.402344 0.609374 3.476563 -0.011719 c 1.074219 -0.625 1.734375 -1.769531 1.734375 -3.011719 v -20 c 0 -1.242188 -0.660156 -2.386719 -1.734375 -3.011719 c -1.074219 -0.621093 -2.398437 -0.628906 -3.476563 -0.011719 z m 0 0" fill="url(#c)"/>
+</svg>
diff --git a/data/icons/hicolor/scalable/org.gnome.SoftwareDevel.svg b/data/icons/hicolor/scalable/org.gnome.SoftwareDevel.svg
new file mode 100644
index 0000000..113e867
--- /dev/null
+++ b/data/icons/hicolor/scalable/org.gnome.SoftwareDevel.svg
@@ -0,0 +1,69 @@
+<?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="36" x2="60" y1="68" y2="68">
+ <stop offset="0" stop-color="#ed336c"/>
+ <stop offset="1" stop-color="#ffa348"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0 1 -1 0 144 -32)" gradientUnits="userSpaceOnUse" x1="72" x2="96" y1="68" y2="68">
+ <stop offset="0" stop-color="#404ce6"/>
+ <stop offset="1" stop-color="#c061cb"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="68.84919" x2="95.257637" y1="84" y2="84">
+ <stop offset="0" stop-color="#33d1c6"/>
+ <stop offset="1" stop-color="#1c25d8"/>
+ </linearGradient>
+ <clipPath id="d">
+ <rect height="128" width="128"/>
+ </clipPath>
+ <clipPath id="e">
+ <rect height="128" width="128"/>
+ </clipPath>
+ <filter id="f" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="g">
+ <g clip-path="url(#e)" filter="url(#f)">
+ <g clip-path="url(#d)">
+ <path d="m 44 16 l 8 -8 h 24 l 8 8 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 52 8 l -8 8 v 16 h 8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 76 8 l 8 8 v 16 h -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 16 72 h 96 c 4.417969 0 8 3.582031 8 8 v 28 c 0 4.417969 -3.582031 8 -8 8 h -96 c -4.417969 0 -8 -3.582031 -8 -8 v -28 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 8 28 h 112 v 80 h -112 z m 0 0" fill="#e5e5e1"/>
+ <path d="m 8 68 h 112 v 40 h -112 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 44 56 h 8 c 4.417969 0 8 3.582031 8 8 v 8 c 0 4.417969 -3.582031 8 -8 8 h -8 c -4.417969 0 -8 -3.582031 -8 -8 v -8 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 76 64 c -6.628906 0 -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 s -5.371094 12 -12 12 z m 0 0" fill="url(#b)"/>
+ <path d="m 82.789062 70.976562 l -17.578124 10.046876 c -1.070313 0.609374 -1.730469 1.746093 -1.730469 2.976562 s 0.660156 2.367188 1.730469 2.976562 l 17.578124 10.046876 c 1.078126 0.617187 2.402344 0.609374 3.476563 -0.011719 c 1.074219 -0.625 1.734375 -1.769531 1.734375 -3.011719 v -20 c 0 -1.242188 -0.660156 -2.386719 -1.734375 -3.011719 c -1.074219 -0.621093 -2.398437 -0.628906 -3.476563 -0.011719 z m 0 0" fill="url(#c)"/>
+ </g>
+ </g>
+ </mask>
+ <mask id="h">
+ <g filter="url(#f)">
+ <rect fill-opacity="0.8" height="128" width="128"/>
+ </g>
+ </mask>
+ <linearGradient id="i" gradientTransform="matrix(0 0.37 -0.98462 0 295.38501 -30.360001)" gradientUnits="userSpaceOnUse" x1="300" x2="428" y1="235" y2="235">
+ <stop offset="0" stop-color="#f9f06b"/>
+ <stop offset="1" stop-color="#f5c211"/>
+ </linearGradient>
+ <clipPath id="j">
+ <rect height="128" width="128"/>
+ </clipPath>
+ <clipPath id="k">
+ <rect height="128" width="128"/>
+ </clipPath>
+ <path d="m 44 16 l 8 -8 h 24 l 8 8 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 52 8 l -8 8 v 16 h 8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 76 8 l 8 8 v 16 h -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 16 72 h 96 c 4.417969 0 8 3.582031 8 8 v 28 c 0 4.417969 -3.582031 8 -8 8 h -96 c -4.417969 0 -8 -3.582031 -8 -8 v -28 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 8 28 h 112 v 80 h -112 z m 0 0" fill="#e5e5e1"/>
+ <path d="m 8 68 h 112 v 40 h -112 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 44 56 h 8 c 4.417969 0 8 3.582031 8 8 v 8 c 0 4.417969 -3.582031 8 -8 8 h -8 c -4.417969 0 -8 -3.582031 -8 -8 v -8 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 76 64 c -6.628906 0 -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 s -5.371094 12 -12 12 z m 0 0" fill="url(#b)"/>
+ <path d="m 82.789062 70.976562 l -17.578124 10.046876 c -1.070313 0.609374 -1.730469 1.746093 -1.730469 2.976562 s 0.660156 2.367188 1.730469 2.976562 l 17.578124 10.046876 c 1.078126 0.617187 2.402344 0.609374 3.476563 -0.011719 c 1.074219 -0.625 1.734375 -1.769531 1.734375 -3.011719 v -20 c 0 -1.242188 -0.660156 -2.386719 -1.734375 -3.011719 c -1.074219 -0.621093 -2.398437 -0.628906 -3.476563 -0.011719 z m 0 0" fill="url(#c)"/>
+ <g clip-path="url(#k)" mask="url(#g)">
+ <g clip-path="url(#j)" mask="url(#h)">
+ <path d="m 128 80.640625 v 47.359375 h -128 v -47.359375 z m 0 0" fill="url(#i)"/>
+ <path d="m 13.308594 80.640625 l 47.355468 47.359375 h 21.214844 l -47.359375 -47.359375 z m 42.421875 0 l 47.363281 47.359375 h 21.214844 l -47.363282 -47.359375 z m 42.429687 0 l 29.839844 29.839844 v -21.210938 l -8.628906 -8.628906 z m -98.160156 7.90625 v 21.214844 l 18.238281 18.238281 h 21.214844 z m 0 0"/>
+ </g>
+ </g>
+</svg>
diff --git a/data/icons/hicolor/symbolic/app-remove-symbolic.svg b/data/icons/hicolor/symbolic/app-remove-symbolic.svg
new file mode 100644
index 0000000..734827e
--- /dev/null
+++ b/data/icons/hicolor/symbolic/app-remove-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M13 5v9H4V5H2v9c0 2 2 2 2 2h9c2 0 2-2 2-2V5zM9 6H8v6h1zM7 6H6v6h1zm4 0h-1v6h1zm1-6c2 0 2 2 2 2h2v2H1V2h2c0-2 2-2 2-2zm0 1H5v1h7z" fill="#474747"/></svg> \ No newline at end of file
diff --git a/data/icons/hicolor/symbolic/org.gnome.Software-symbolic.svg b/data/icons/hicolor/symbolic/org.gnome.Software-symbolic.svg
new file mode 100644
index 0000000..8311292
--- /dev/null
+++ b/data/icons/hicolor/symbolic/org.gnome.Software-symbolic.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <path d="m 1 4 v 8 c 0 1.109375 0.890625 2 2 2 h 10 c 1.109375 0 2 -0.890625 2 -2 v -8 z m 7 1.75 c 0.691406 0 1.25 0.558594 1.25 1.25 s -0.558594 1.25 -1.25 1.25 s -1.25 -0.558594 -1.25 -1.25 s 0.558594 -1.25 1.25 -1.25 z m -2 3 c 0.691406 0 1.25 0.558594 1.25 1.25 s -0.558594 1.25 -1.25 1.25 s -1.25 -0.558594 -1.25 -1.25 s 0.558594 -1.25 1.25 -1.25 z m 4 0 c 0.691406 0 1.25 0.558594 1.25 1.25 s -0.558594 1.25 -1.25 1.25 s -1.25 -0.558594 -1.25 -1.25 s 0.558594 -1.25 1.25 -1.25 z m 0 0"/>
+ <path d="m 6 1 l -1 1 v 3 h 2 v -3 h 2 v 3 h 2 v -3 l -1 -1 z m 0 0"/>
+</svg>
diff --git a/data/icons/meson.build b/data/icons/meson.build
new file mode 100644
index 0000000..13ca713
--- /dev/null
+++ b/data/icons/meson.build
@@ -0,0 +1 @@
+subdir('hicolor')
diff --git a/data/icons/money-none-symbolic.svg b/data/icons/money-none-symbolic.svg
new file mode 100644
index 0000000..9e74edf
--- /dev/null
+++ b/data/icons/money-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06L2.85 3.91l1.41 1.418a.985.985 0 0 1 .005-.004L5.94 7h-.003L9 10.063v-.004l.941.941h-.004l1.868 1.867h.004l2.662 2.662 1.06-1.06-2.396-2.397c.53-.537.861-1.268.861-2.076A3.01 3.01 0 0 0 11 7H9V5h4V3H9V1H7v2H5c-.281 0-.557.042-.82.117L1.53.47zM6.063 5H7v.938L6.062 5zm-3.97.277A2.99 2.99 0 0 0 5 8.992v.012h.82L2.094 5.277zM10.064 9H11a.98.98 0 0 1 .996.996.994.994 0 0 1-.26.678L10.062 9zM7 10.184V11H3v2h4v2h2v-2h.82L7 10.184z"/></svg> \ No newline at end of file
diff --git a/data/icons/money-symbolic.svg b/data/icons/money-symbolic.svg
new file mode 100644
index 0000000..0c06a39
--- /dev/null
+++ b/data/icons/money-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M7 1v2H5a2.996 2.996 0 0 0 0 5.992v.012h2v2H3v2h4v2h2v-2h2v-.012a3.01 3.01 0 0 0 2.996-2.996A3.01 3.01 0 0 0 11 7H9V5h4V3H9V1zM5.04 5H7v2H5.105a9.66 9.66 0 0 1-.109-.012.992.992 0 0 1-.863-1.492c.18-.309.504-.5.863-.5a.08.08 0 0 0 .043 0zM9 9h2c.563 0 .996.434.996.996s-.434.996-.996.996l-2 .012zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/nudity-none-symbolic.svg b/data/icons/nudity-none-symbolic.svg
new file mode 100644
index 0000000..410fbb3
--- /dev/null
+++ b/data/icons/nudity-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06 2.498 2.498v.004l5.785 5.782.744.744s-.002 0-.002.002l1.473 1.472v-.004l3.502 3.502 1.06-1.06-3.111-3.112c.634-.634 1.049-1.67 1.049-2.845 0-1.933-1.117-3.5-2.5-3.5v-4h-8v.894L1.53.47zM6.97 4.512c.883 0 1.652.504 2.176 1.234.523.73.824 1.703.824 2.766 0 .128-.006.254-.016.379L8.92 7.857c-.091-.602-.304-1.132-.588-1.529-.383-.539-.86-.816-1.363-.816a.501.501 0 0 1 0-1zm-4 1.644v9.856h4v-4.45l.363-.105c.207-.059.415-.172.606-.336l-4.97-4.965zm5.586 5.582a3.042 3.042 0 0 1-.586.387v3.887h3v-1.856l-2.414-2.418z"/></svg> \ No newline at end of file
diff --git a/data/icons/nudity-symbolic.svg b/data/icons/nudity-symbolic.svg
new file mode 100644
index 0000000..6d7865c
--- /dev/null
+++ b/data/icons/nudity-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M2.969 1.012v15h4v-4.45l.363-.105c.84-.234 1.637-1.422 1.637-2.945 0-.871-.254-1.649-.637-2.184-.383-.539-.86-.816-1.363-.816a.501.501 0 0 1 0-1c.883 0 1.652.504 2.176 1.234.523.73.824 1.703.824 2.766 0 1.668-.809 3.023-2 3.613v3.887h3v-4c1.383 0 2.5-1.567 2.5-3.5 0-1.934-1.117-3.5-2.5-3.5v-4zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/org.gnome.Software.Create.svg b/data/icons/org.gnome.Software.Create.svg
new file mode 100644
index 0000000..234a6f7
--- /dev/null
+++ b/data/icons/org.gnome.Software.Create.svg
@@ -0,0 +1,70 @@
+<?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" gradientTransform="matrix(0.25 0 0 0.244048 -0.499619 50.195877)" gradientUnits="userSpaceOnUse" x1="48" x2="464" y1="44" y2="44">
+ <stop offset="0" stop-color="#babdb6"/>
+ <stop offset="0.0416667" stop-color="#f6f5f4"/>
+ <stop offset="0.0833333" stop-color="#d5d3cf"/>
+ <stop offset="0.916667" stop-color="#deddda"/>
+ <stop offset="0.958333" stop-color="#f6f5f4"/>
+ <stop offset="1" stop-color="#babdb6"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(-0.471598 0 0 0.471598 569.325439 -130.366928)" gradientUnits="userSpaceOnUse" x1="953.275024" x2="944.207458" y1="350.855988" y2="359.923553">
+ <stop offset="0" stop-color="#e9b96e"/>
+ <stop offset="1" stop-color="#dc9321"/>
+ </linearGradient>
+ <linearGradient id="c" gradientTransform="matrix(-0.358336 0 0 0.358336 230.872086 1.097)" gradientUnits="userSpaceOnUse" x1="418.838409" x2="433.349823" y1="227" y2="212.868271">
+ <stop offset="0" stop-color="#9a9996"/>
+ <stop offset="0.415508" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#deddda"/>
+ </linearGradient>
+ <radialGradient id="d" cx="450.948059" cy="225.394623" gradientTransform="matrix(-0.658592 0 0 0.658592 370.111938 -72.351868)" gradientUnits="userSpaceOnUse" r="39.999989">
+ <stop offset="0" stop-color="#5b5b5b"/>
+ <stop offset="0.634455" stop-color="#262e39"/>
+ <stop offset="1" stop-color="#113f78"/>
+ </radialGradient>
+ <filter id="e" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="f">
+ <g filter="url(#e)">
+ <rect fill-opacity="0.3" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="g">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <linearGradient id="h" gradientUnits="userSpaceOnUse" x1="19.25" x2="54.820038" y1="55.999985" y2="91.570023">
+ <stop offset="0" stop-color="#dc8add"/>
+ <stop offset="1" stop-color="#103c72"/>
+ </linearGradient>
+ <radialGradient id="i" cx="67.502945" cy="244.504639" gradientTransform="matrix(1.001091 -0.00000013 0.00000014 0.81247 -0.576645 -108.652573)" gradientUnits="userSpaceOnUse" r="11.077337">
+ <stop offset="0" stop-color="#113f78" stop-opacity="0"/>
+ <stop offset="0.786035" stop-color="#113f78" stop-opacity="0.105882"/>
+ <stop offset="1" stop-color="#103c72"/>
+ </radialGradient>
+ <mask id="j">
+ <g filter="url(#e)">
+ <rect fill-opacity="0.2" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="k">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <path d="m 24 123 v 1 h 16 v -1 z m 64 0 v 1 h 16 v -1 z m 0 0" fill="#9a9996"/>
+ <path d="m 88 124 v -4 l -24 -96 v 4 z" fill="#77767b" fill-rule="evenodd"/>
+ <path d="m 40 124 v -4 l 24 -96 v 4 z" fill="#77767b" fill-rule="evenodd"/>
+ <path d="m 64 4 c -2.90625 0.003906 -5.417969 2.027344 -6.039062 4.867188 l -0.003907 -0.003907 l -33.957031 114.136719 h 16 l 24 -101 l 24 101 h 16 l -33.992188 -114.285156 l -0.007812 0.011718 c -0.671875 -2.773437 -3.148438 -4.722656 -6 -4.726562 z m 0 5 c 1.65625 0 3 1.34375 3 3 s -1.34375 3 -3 3 s -3 -1.34375 -3 -3 s 1.34375 -3 3 -3 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 20 30 h 88 c 4.417969 0 8 3.582031 8 8 v 66 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -66 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 20 20 h 88 c 4.417969 0 8 3.582031 8 8 v 72 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -72 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 128 36 l -48.90625 48.910156 c -2.199219 2.285156 -5.84375 2.324219 -8.085938 0.082032 c -2.242187 -2.242188 -2.203124 -5.886719 0.082032 -8.085938 l 41.132812 -41.132812 c 4.898438 -4.203126 11.777344 -3.773438 15.777344 0.226562 z m 0 0" fill="url(#b)"/>
+ <path d="m 90.683594 59.585938 c 5.148437 0.003906 7.6875 6.257812 3.996094 9.847656 l -19.066407 21.058594 c -2.785156 2.828124 -7.339843 2.847656 -10.144531 0.039062 c -2.804688 -2.804688 -2.785156 -7.359375 0.042969 -10.140625 l 21.058593 -19.066406 c 1.078126 -1.113281 2.5625 -1.738281 4.113282 -1.738281 z m 0 0" fill="url(#c)"/>
+ <path d="m 72 68 c 8.835938 0 16 7.164062 16 16 s -7.164062 16 -16 16 h -16 v -16 c 0 -8.835938 7.164062 -16 16 -16 z m 0 0" fill="url(#d)"/>
+ <g clip-path="url(#g)" mask="url(#f)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 72.003906 95 c 0 -1.65625 1.339844 -2.996094 2.996094 -2.996094 s 2.996094 1.339844 2.996094 2.996094 s -1.339844 2.996094 -2.996094 2.996094 s -2.996094 -1.339844 -2.996094 -2.996094 z m 0 0" fill="#ffffff"/>
+ </g>
+ <path d="m 12 39.867188 v 24 c 2.003906 -1.125 4.425781 -1.488282 6.671875 -1.003907 s 4.304687 1.8125 5.667969 3.664063 c 1.761718 2.390625 2.3125 5.460937 2.457031 8.429687 c 0.144531 2.964844 -0.066406 5.957031 0.394531 8.894531 c 0.628906 3.996094 2.539063 7.792969 5.410156 10.648438 c 2.867188 2.855469 6.6875 4.753906 10.703126 5.269531 c 2.609374 0.335938 5.253906 0.203125 7.886718 0.210938 l 4.808594 0.019531 c 0 -0.441406 0 -0.886719 0 -1.328125 c 0 -0.222656 0 -0.449219 0 -0.671875 c -2.035156 -0.476562 -4.085938 -0.863281 -6.15625 -1.160156 c -1.339844 -0.191406 -2.695312 -0.34375 -3.996094 -0.734375 c -1.300781 -0.386719 -2.5625 -1.023438 -3.460937 -2.039063 c -0.757813 -0.855468 -1.226563 -1.941406 -1.429688 -3.066406 c -0.207031 -1.121094 -0.152343 -2.28125 0.046875 -3.402344 c 0.40625 -2.246094 1.390625 -4.339844 2.132813 -6.5 c 2.398437 -6.988281 2.167969 -14.796875 -0.375 -21.730468 c -2.804688 -7.644532 -8.546875 -14.3125 -16.011719 -17.5625 c -4.605469 -2.007813 -9.78125 -2.6875 -14.75 -1.9375 z m 0 0" fill="url(#h)"/>
+ <path d="m 46.90625 96.375 l 4.285156 3.605469 l 18.808594 0.019531 l -2 -3 c -3.144531 -4.714844 -9.132812 -9 -12 -9 c 0 6 -5.5625 9.097656 -9.09375 8.375 z m 0 0" fill="url(#i)"/>
+ <g clip-path="url(#k)" mask="url(#j)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 35 128 l -0.621094 2 h 16.054688 l 0.523437 -1.972656 z m 57.988281 0 l 0.5 2 h 16.132813 l -0.621094 -2 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/org.gnome.Software.Develop.svg b/data/icons/org.gnome.Software.Develop.svg
new file mode 100644
index 0000000..78792bb
--- /dev/null
+++ b/data/icons/org.gnome.Software.Develop.svg
@@ -0,0 +1,44 @@
+<?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="12" x2="116" y1="64" y2="64">
+ <stop offset="0" stop-color="#77767b"/>
+ <stop offset="0.05" stop-color="#c0bfbc"/>
+ <stop offset="0.1" stop-color="#9a9996"/>
+ <stop offset="0.899999" stop-color="#9a9996"/>
+ <stop offset="0.95" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#77767b"/>
+ </linearGradient>
+ <filter id="b" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="c">
+ <g filter="url(#b)">
+ <rect fill-opacity="0.05" height="128" width="128"/>
+ </g>
+ </mask>
+ <radialGradient id="d" cx="63.999996" cy="194.190475" gradientTransform="matrix(4.727273 -0.00000079 0.0000003 1.636364 -230.545471 -205.766182)" gradientUnits="userSpaceOnUse" r="44">
+ <stop offset="0" stop-color="#ffffff"/>
+ <stop offset="1" stop-color="#ffffff" stop-opacity="0.094118"/>
+ </radialGradient>
+ <clipPath id="e">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <path d="m 20 22 h 88 c 4.417969 0 8 3.582031 8 8 v 78 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -78 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 20 12 h 88 c 4.417969 0 8 3.582031 8 8 v 80 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -80 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 20 104 h 88 c 2.210938 0 4 -1.789062 4 -4 v -80 c 0 -2.210938 -1.789062 -4 -4 -4 h -88 c -2.210938 0 -4 1.789062 -4 4 v 80 c 0 2.210938 1.789062 4 4 4 z m 0 0" fill="#241f31"/>
+ <g clip-path="url(#e)" mask="url(#c)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 116 116 h -88 v -78 h 88 z m 0 0" fill="url(#d)"/>
+ </g>
+ <path d="m 24 28 h 28 v 4 h -28 z m 0 0" fill="#ff7800"/>
+ <path d="m 24 36 h 16 v 4 h -16 z m 0 0" fill="#deddda"/>
+ <path d="m 32 44 h 42 v 4 h -42 z m 0 0" fill="#3584e4"/>
+ <path d="m 32 52 h 22 v 4 h -22 z m 0 0" fill="#deddda"/>
+ <path d="m 40 60 h 36 v 4 h -36 z m 0 0" fill="#deddda"/>
+ <path d="m 40 68 h 20 v 4 h -20 z m 0 0" fill="#8ff0a4"/>
+ <path d="m 48 76 h 24 v 4 h -24 z m 0 0" fill="#ff7800"/>
+ <path d="m 24 84 h 32 v 4 h -32 z m 0 0" fill="#deddda"/>
+ <path d="m 24 92 h 18 v 4 h -18 z m 0 0" fill="#3584e4"/>
+ <path d="m 32 76 h 14 v 4 h -14 z m 0 0" fill="#8ff0a4"/>
+ <path d="m 62 68 h 20 v 4 h -20 z m 0 0" fill="#deddda"/>
+ <path d="m 78 60 h 18 v 4 h -18 z m 0 0" fill="#3584e4"/>
+</svg>
diff --git a/data/icons/org.gnome.Software.Learn.svg b/data/icons/org.gnome.Software.Learn.svg
new file mode 100644
index 0000000..7ad3721
--- /dev/null
+++ b/data/icons/org.gnome.Software.Learn.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg">
+ <path d="m 64 4 l 60 100 h -120 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 64 5.503906 v 90.496094 h 8 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 69.878906 72 l -5.878906 12 l 8 20 h 52 l -18.773438 -31.875 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 64 5.503906 v 90.496094 h -8 z m 0 0" fill="#deddda"/>
+ <path d="m 23.199219 72 l -19.199219 32 h 52 l 8 -20 l -5.878906 -12 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 58.121094 72 l 5.878906 12 v 44 l -8 -24 z m 0 0" fill="#deddda"/>
+ <path d="m 69.878906 72 l -5.878906 12 v 44 l 8 -24 z m 0 0" fill="#c0bfbc"/>
+</svg>
diff --git a/data/icons/org.gnome.Software.Play.svg b/data/icons/org.gnome.Software.Play.svg
new file mode 100644
index 0000000..67fe0dd
--- /dev/null
+++ b/data/icons/org.gnome.Software.Play.svg
@@ -0,0 +1,37 @@
+<?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">
+ <stop offset="0" stop-color="#9a9996"/>
+ <stop offset="1" stop-color="#9a9996" stop-opacity="0"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0 -1.333333 -1.333333 0 414.662385 134.674892)" x1="38" x2="50" xlink:href="#a" y1="248" y2="248"/>
+ <linearGradient id="c" gradientTransform="matrix(0 -1.333333 -1.333333 0 374.778504 134.674892)" x1="38" x2="50" xlink:href="#a" y1="248" y2="248"/>
+ <path d="m 89.175781 41.980469 l 6.082031 7.5625 l 22.648438 -4.671875 l 9.875 47.90625 c 1.488281 7.234375 -2.171875 14.546875 -8.851562 17.695312 c -6.679688 3.148438 -14.648438 1.316406 -19.28125 -4.433594 l -35.40625 -44 z m 0 0" fill="#deddda"/>
+ <path d="m 39.175781 41.980469 l -6.082031 7.5625 l -22.648438 -4.671875 l -9.875 47.90625 c -1.488281 7.234375 2.171876 14.546875 8.851563 17.695312 c 6.679687 3.148438 14.648437 1.316406 19.28125 -4.433594 l 35.40625 -44 z m 0 0" fill="#deddda"/>
+ <path d="m 41.113281 28.007812 h 46 v 32 h -46 z m 0 0" fill="#deddda"/>
+ <path d="m 60.445312 59.289062 l -31.984374 39.75 c -3.859376 4.78125 -10.117188 6.929688 -16.101563 5.527344 s -10.632813 -6.105468 -11.96875 -12.105468 l -0.066406 0.316406 c -1.484375 7.234375 2.171875 14.546875 8.855469 17.695312 c 6.679687 3.148438 14.648437 1.316406 19.28125 -4.433594 l 35.402343 -44 z m 7.101563 0 l -3.421875 2.75 l 35.40625 44 c 4.632812 5.75 12.601562 7.582032 19.28125 4.433594 c 6.683594 -3.148437 10.339844 -10.460937 8.851562 -17.695312 l -0.0625 -0.316406 c -1.335937 6 -5.988281 10.703124 -11.96875 12.105468 c -5.984374 1.402344 -12.242187 -0.746094 -16.101562 -5.527344 z m 0 0" fill="#5e5c64" fill-opacity="0.235294"/>
+ <g fill="#c0bfbc">
+ <path d="m 54.113281 49.007812 c 0 12.152344 -9.851562 22 -22 22 c -12.152343 0 -22 -9.847656 -22 -22 c 0 -12.148437 9.847657 -22 22 -22 c 12.148438 0 22 9.851563 22 22 z m 0 0"/>
+ <path d="m 46.113281 32.007812 h 36 v 52 h -36 z m 0 0"/>
+ <path d="m 118.113281 49.007812 c 0 12.152344 -9.851562 22 -22 22 c -12.152343 0 -22 -9.847656 -22 -22 c 0 -12.148437 9.847657 -22 22 -22 c 12.148438 0 22 9.851563 22 22 z m 0 0"/>
+ <path d="m 57.996094 80.007812 c 0 7.667969 -6.214844 13.882813 -13.882813 13.882813 s -13.886719 -6.214844 -13.886719 -13.882813 c 0 -7.667968 6.21875 -13.882812 13.886719 -13.882812 s 13.882813 6.214844 13.882813 13.882812 z m 0 0"/>
+ <path d="m 97.996094 80.007812 c 0 7.667969 -6.214844 13.882813 -13.882813 13.882813 s -13.886719 -6.214844 -13.886719 -13.882813 c 0 -7.667968 6.21875 -13.882812 13.886719 -13.882812 s 13.882813 6.214844 13.882813 13.882812 z m 0 0"/>
+ </g>
+ <path d="m 46.113281 32.007812 h 36 v 48 h -36 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 57.996094 78.007812 c 0 7.667969 -6.214844 13.882813 -13.882813 13.882813 s -13.886719 -6.214844 -13.886719 -13.882813 c 0 -7.667968 6.21875 -13.882812 13.886719 -13.882812 s 13.882813 6.214844 13.882813 13.882812 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 97.996094 78.007812 c 0 7.667969 -6.214844 13.882813 -13.882813 13.882813 s -13.886719 -6.214844 -13.886719 -13.882813 c 0 -7.667968 6.21875 -13.882812 13.886719 -13.882812 s 13.882813 6.214844 13.882813 13.882812 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 54.113281 47.007812 c 0 12.152344 -9.851562 22 -22 22 c -12.152343 0 -22 -9.847656 -22 -22 c 0 -12.148437 9.847657 -22 22 -22 c 12.148438 0 22 9.851563 22 22 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 118.113281 47.007812 c 0 12.152344 -9.851562 22 -22 22 c -12.152343 0 -22 -9.847656 -22 -22 c 0 -12.148437 9.847657 -22 22 -22 c 12.148438 0 22 9.851563 22 22 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 29.996094 36.007812 c -1.109375 0 -2 0.890626 -2 2 v 6 h -6 c -1.109375 0 -2 0.890626 -2 2 v 4 c 0 1.109376 0.890625 2 2 2 h 6 v 6 c 0 1.109376 0.890625 2 2 2 h 4 c 1.109375 0 2 -0.890624 2 -2 v -6 h 6 c 1.109375 0 2 -0.890624 2 -2 v -4 c 0 -1.109374 -0.890625 -2 -2 -2 h -6 v -6 c 0 -1.109374 -0.890625 -2 -2 -2 z m 0 0" fill="#3d3846"/>
+ <path d="m 29.996094 34.007812 c -1.109375 0 -2 0.890626 -2 2 v 6 h -6 c -1.109375 0 -2 0.890626 -2 2 v 4 c 0 1.109376 0.890625 2 2 2 h 6 v 6 c 0 1.109376 0.890625 2 2 2 h 4 c 1.109375 0 2 -0.890624 2 -2 v -6 h 6 c 1.109375 0 2 -0.890624 2 -2 v -4 c 0 -1.109374 -0.890625 -2 -2 -2 h -6 v -6 c 0 -1.109374 -0.890625 -2 -2 -2 z m 0 0" fill="#5e5c64"/>
+ <path d="m 109.996094 50.007812 v 2 c 0 3.324219 -2.675782 6 -6 6 c -3.324219 0 -6 -2.675781 -6 -6 v -2 z m 0 0" fill="#c01c28"/>
+ <path d="m 97.996094 50.007812 c 0 3.3125 2.6875 6 6 6 s 6 -2.6875 6 -6 s -2.6875 -6 -6 -6 s -6 2.6875 -6 6 z m 0 0" fill="#ed333b"/>
+ <path d="m 93.996094 42.007812 v 2 c 0 3.324219 -2.675782 6 -6 6 c -3.324219 0 -6 -2.675781 -6 -6 v -2 z m 0 0" fill="#1a5fb4"/>
+ <path d="m 81.996094 42.007812 c 0 3.3125 2.6875 6 6 6 s 6 -2.6875 6 -6 s -2.6875 -6 -6 -6 s -6 2.6875 -6 6 z m 0 0" fill="#3584e4"/>
+ <path d="m 54.113281 78.007812 c 0 5.523438 -4.480469 10 -10 10 c -5.523437 0 -10 -4.476562 -10 -10 c 0 -5.523437 4.476563 -10 10 -10 c 5.519531 0 10 4.476563 10 10 z m 0 0" fill="#241f31"/>
+ <path d="m 94.113281 78.007812 c 0 5.523438 -4.480469 10 -10 10 c -5.523437 0 -10 -4.476562 -10 -10 c 0 -5.523437 4.476563 -10 10 -10 c 5.519531 0 10 4.476563 10 10 z m 0 0" fill="#241f31"/>
+ <path d="m 54.113281 76.007812 c 0 5.523438 -4.480469 10 -10 10 c -5.523437 0 -10 -4.476562 -10 -10 c 0 -5.523437 4.476563 -10 10 -10 c 5.519531 0 10 4.476563 10 10 z m 0 0" fill="#3d3846"/>
+ <path d="m 94.113281 76.007812 c 0 5.523438 -4.480469 10 -10 10 c -5.523437 0 -10 -4.476562 -10 -10 c 0 -5.523437 4.476563 -10 10 -10 c 5.519531 0 10 4.476563 10 10 z m 0 0" fill="#3d3846"/>
+ <path d="m 83.996094 68.007812 c -4.417969 0 -8 3.582032 -8 8 c 0 4.417969 3.582031 8 8 8 c 4.417968 0 8 -3.582031 8 -8 c 0 -4.417968 -3.582032 -8 -8 -8 z m 0 0" fill="url(#b)"/>
+ <path d="m 44.113281 68.007812 c -4.417969 0 -8 3.582032 -8 8 c 0 4.417969 3.582031 8 8 8 s 8 -3.582031 8 -8 c 0 -4.417968 -3.582031 -8 -8 -8 z m 0 0" fill="url(#c)"/>
+</svg>
diff --git a/data/icons/org.gnome.Software.Socialize.svg b/data/icons/org.gnome.Software.Socialize.svg
new file mode 100644
index 0000000..7c74f8e
--- /dev/null
+++ b/data/icons/org.gnome.Software.Socialize.svg
@@ -0,0 +1,23 @@
+<?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">
+ <radialGradient id="a" cx="64" cy="40" gradientUnits="userSpaceOnUse" r="60">
+ <stop offset="0" stop-color="#f8e45c"/>
+ <stop offset="1" stop-color="#f5c211"/>
+ </radialGradient>
+ <linearGradient id="b" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#f66151"/>
+ <stop offset="0.6" stop-color="#e6272f"/>
+ <stop offset="1" stop-color="#e01b24"/>
+ </linearGradient>
+ <radialGradient id="c" cx="52" cy="29.856375" gradientTransform="matrix(0.776974 0 0 0.621716 11.597331 20.590141)" r="16.084499" xlink:href="#b"/>
+ <radialGradient id="d" cx="52" cy="29.856375" gradientTransform="matrix(0.776974 0 0 0.621716 51.597511 20.590141)" r="16.084499" xlink:href="#b"/>
+ <path d="m 124 64 c 0 33.136719 -26.863281 60 -60 60 s -60 -26.863281 -60 -60 s 26.863281 -60 60 -60 s 60 26.863281 60 60 z m 0 0" fill="url(#a)"/>
+ <path d="m 123.824219 59.539062 c -1.871094 31.679688 -28.089844 56.421876 -59.824219 56.460938 c -31.402344 -0.003906 -57.488281 -24.222656 -59.824219 -55.539062 c -0.09375 1.175781 -0.152343 2.359374 -0.175781 3.539062 c 0 33.136719 26.863281 60 60 60 s 60 -26.863281 60 -60 c -0.003906 -1.488281 -0.0625 -2.976562 -0.175781 -4.460938 z m 0 0" fill="#e5a50a"/>
+ <path d="m 71.632812 64.992188 c 0 2.503906 -1.457031 4.816406 -3.816406 6.066406 c -2.363281 1.253906 -5.269531 1.253906 -7.632812 0 c -2.359375 -1.25 -3.816406 -3.5625 -3.816406 -6.066406" fill="none" stroke="#3d3846" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 51.910156 31.996094 c -2.082031 0.058594 -4.0625 0.929687 -5.515625 2.425781 l -2.34375 2.34375 l -2.34375 -2.34375 c -1.507812 -1.546875 -3.578125 -2.421875 -5.738281 -2.421875 c -3.257812 0 -6.1875 1.976562 -7.414062 4.992188 c -1.222657 3.019531 -0.496094 6.476562 1.839843 8.746093 l 10.832031 10.832031 v -0.007812 c 1.5625 1.5625 4.09375 1.5625 5.65625 0 l 10.824219 -10.824219 c 2.371094 -2.296875 3.085938 -5.8125 1.804688 -8.855469 c -1.285157 -3.039062 -4.300781 -4.980468 -7.601563 -4.886718 z m 0 0" fill="url(#c)"/>
+ <path d="m 91.914062 31.996094 c -2.085937 0.058594 -4.066406 0.929687 -5.519531 2.425781 l -2.34375 2.34375 l -2.34375 -2.34375 c -1.507812 -1.546875 -3.578125 -2.421875 -5.738281 -2.421875 c -3.257812 0 -6.1875 1.976562 -7.410156 4.992188 c -1.226563 3.019531 -0.5 6.476562 1.835937 8.746093 l 10.832031 10.832031 v -0.007812 c 1.5625 1.5625 4.09375 1.5625 5.65625 0 l 10.824219 -10.824219 c 2.371094 -2.296875 3.085938 -5.8125 1.804688 -8.855469 c -1.285157 -3.039062 -4.300781 -4.980468 -7.597657 -4.886718 z m 0 0" fill="url(#d)"/>
+ <g fill="#c01c28">
+ <path d="m 28.121094 38.492188 c -0.511719 2.644531 0.34375 5.367187 2.273437 7.246093 l 10.832031 10.832031 v -0.007812 c 1.5625 1.5625 4.09375 1.5625 5.65625 0 l 10.824219 -10.824219 c 1.933594 -1.875 2.792969 -4.597656 2.285157 -7.246093 c -0.308594 1.617187 -1.105469 3.101562 -2.285157 4.246093 l -10.824219 10.824219 c -1.5625 1.5625 -4.09375 1.5625 -5.65625 0 v 0.007812 l -10.832031 -10.832031 c -1.175781 -1.148437 -1.972656 -2.628906 -2.273437 -4.246093 z m 0 0"/>
+ <path d="m 68.121094 38.492188 c -0.511719 2.644531 0.34375 5.367187 2.273437 7.246093 l 10.832031 10.832031 v -0.007812 c 1.5625 1.5625 4.09375 1.5625 5.65625 0 l 10.824219 -10.824219 c 1.933594 -1.875 2.792969 -4.597656 2.285157 -7.246093 c -0.308594 1.617187 -1.105469 3.101562 -2.285157 4.246093 l -10.824219 10.824219 c -1.5625 1.5625 -4.09375 1.5625 -5.65625 0 v 0.007812 l -10.832031 -10.832031 c -1.175781 -1.148437 -1.972656 -2.628906 -2.273437 -4.246093 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/org.gnome.Software.Work.svg b/data/icons/org.gnome.Software.Work.svg
new file mode 100644
index 0000000..46433a4
--- /dev/null
+++ b/data/icons/org.gnome.Software.Work.svg
@@ -0,0 +1,27 @@
+<?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="20.00001801213" x2="108.00010899163" y1="88.00001906939" y2="88.00001906939">
+ <stop offset="0" stop-color="#1a5fb4"/>
+ <stop offset="0.0340909" stop-color="#1c71d8"/>
+ <stop offset="0.0681818" stop-color="#3584e4"/>
+ <stop offset="0.931818" stop-color="#3584e4"/>
+ <stop offset="0.965909" stop-color="#1c71d8"/>
+ <stop offset="1" stop-color="#1a5fb4"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0.272543 0 0 0.295903 1.85959 50.447067)" gradientUnits="userSpaceOnUse" x1="88.574776" x2="367.430145" y1="1.578945" y2="1.578945">
+ <stop offset="0" stop-color="#1a5fb4"/>
+ <stop offset="0.0263158" stop-color="#3584e4"/>
+ <stop offset="0.973324" stop-color="#3584e4"/>
+ <stop offset="1" stop-color="#1a5fb4"/>
+ </linearGradient>
+ <path d="m 28.722656 44 h 70.554688 c 4.816406 0 8.722656 3.90625 8.722656 8.722656 v 58.554688 c 0 4.816406 -3.90625 8.722656 -8.722656 8.722656 h -70.554688 c -4.816406 0 -8.722656 -3.90625 -8.722656 -8.722656 v -58.554688 c 0 -4.816406 3.90625 -8.722656 8.722656 -8.722656 z m 0 0" fill="url(#a)"/>
+ <path d="m 28.722656 8 h 70.554688 c 4.816406 0 8.722656 3.90625 8.722656 8.722656 v 70.554688 c 0 4.816406 -3.90625 8.722656 -8.722656 8.722656 h -70.554688 c -4.816406 0 -8.722656 -3.90625 -8.722656 -8.722656 v -70.554688 c 0 -4.816406 3.90625 -8.722656 8.722656 -8.722656 z m 0 0" fill="#62a0ea"/>
+ <path d="m 48 80 h 32 c 2.210938 0 4 1.789062 4 4 v 22 c 0 2.210938 -1.789062 4 -4 4 h -32 c -2.210938 0 -4 -1.789062 -4 -4 v -22 c 0 -2.210938 1.789062 -4 4 -4 z m 0 0" fill="#62a0ea"/>
+ <path d="m 30 14 h 68 c 2.210938 0 4 1.789062 4 4 v 68 c 0 2.210938 -1.789062 4 -4 4 h -68 c -2.210938 0 -4 -1.789062 -4 -4 v -68 c 0 -2.210938 1.789062 -4 4 -4 z m 0 0" fill="url(#b)"/>
+ <path d="m 48 84 h 32 c 2.210938 0 4 1.789062 4 4 v 12 c 0 2.210938 -1.789062 4 -4 4 h -32 c -2.210938 0 -4 -1.789062 -4 -4 v -12 c 0 -2.210938 1.789062 -4 4 -4 z m 0 0" fill="#deddda"/>
+ <path d="m 30.203125 20 c -1.203125 0 -2.179687 1.03125 -2.179687 2.304688 l -0.0625 66.773437 s 1.039062 0.582031 2.039062 0.582031 h 14 v 6.339844 h 40 v -6.339844 h 14 c 1 0 2.011719 -0.566406 2.011719 -0.566406 l -0.066407 -66.789062 c 0 -1.273438 -0.976562 -2.304688 -2.179687 -2.304688 z m 0 0" fill="#ffffff"/>
+ <path d="m 40 68 l 6 6 l 10 -10" fill="none" stroke="#3d3846" stroke-width="4"/>
+ <path d="m 64 40 h 24 v 4 h -24 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 64 68 h 24 v 4 h -24 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 40 40 l 6 6 l 10 -10" fill="none" stroke="#3d3846" stroke-width="4"/>
+</svg>
diff --git a/data/icons/package-x-generic-symbolic.svg b/data/icons/package-x-generic-symbolic.svg
new file mode 100644
index 0000000..abe6ec5
--- /dev/null
+++ b/data/icons/package-x-generic-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#2e3434">
+ <path d="m 4.027344 0.996094 c -1.660156 0 -3.027344 1.367187 -3.027344 3.027344 v 7.910156 c 0 1.660156 1.367188 3.027344 3.027344 3.027344 h 7.945312 c 1.660156 0 3.027344 -1.367188 3.027344 -3.027344 v -7.910156 c 0 -1.660157 -1.367188 -3.027344 -3.027344 -3.027344 z m 0 2 h 7.945312 c 0.585938 0 1.027344 0.441406 1.027344 1.027344 v 7.910156 c 0 0.585937 -0.441406 1.027344 -1.027344 1.027344 h -7.945312 c -0.589844 0 -1.027344 -0.441407 -1.027344 -1.027344 v -7.910156 c 0 -0.585938 0.4375 -1.027344 1.027344 -1.027344 z m 0 0"/>
+ <path d="m 4.027344 1 c -1.660156 0 -3.027344 1.367188 -3.027344 3.027344 v 0.945312 s 1.386719 2.03125 3.027344 2.03125 h 7.945312 c 1.46875 0 3.027344 -2.03125 3.027344 -2.03125 v -0.945312 c 0 -1.660156 -1.367188 -3.027344 -3.027344 -3.027344 z m 0 2 h 7.945312 c 0.585938 0 1.027344 0.441406 1.027344 1.027344 v 0.945312 c 0 0.585938 -0.441406 1.027344 -1.027344 1.027344 h -7.945312 c -0.589844 0 -1.027344 -0.441406 -1.027344 -1.027344 v -0.945312 c 0 -0.585938 0.4375 -1.027344 1.027344 -1.027344 z m 0 0"/>
+ <path d="m 7 0.996094 h 2 v 10.03125 l -2 -0.988282 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/padlock-open-symbolic.svg b/data/icons/padlock-open-symbolic.svg
new file mode 100644
index 0000000..31efb43
--- /dev/null
+++ b/data/icons/padlock-open-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M8 0C5.801 0 4 1.801 4 4v1a1 1 0 0 0 1 1 1 1 0 0 0 1-1V4c0-1.125.875-2 2-2s2 .875 2 2v4H4c-1.108 0-2 .892-2 2v5c0 .554.446 1 1 1h10c.554 0 1-.446 1-1v-5c0-1.108-.892-2-2-2V4c0-2.199-1.801-4-4-4Z" style="fill:#241f31"/></svg> \ No newline at end of file
diff --git a/data/icons/phone-symbolic.svg b/data/icons/phone-symbolic.svg
new file mode 100644
index 0000000..f73dab6
--- /dev/null
+++ b/data/icons/phone-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="M5 0C3.355 0 2 1.355 2 3v10c0 1.645 1.355 3 3 3h6c1.645 0 3-1.355 3-3V3c0-1.645-1.355-3-3-3zm0 2h1c0 .554.446 1 1 1h2c.554 0 1-.446 1-1h1c.571 0 1 .429 1 1v9c0 .554-.446 1-1 1H5c-.554 0-1-.446-1-1V3c0-.571.429-1 1-1z"/></svg> \ No newline at end of file
diff --git a/data/icons/pub-symbolic.svg b/data/icons/pub-symbolic.svg
new file mode 100644
index 0000000..e6ba35c
--- /dev/null
+++ b/data/icons/pub-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="M7.262.996a1.982 1.982 0 0 0-1.465.692A1.99 1.99 0 0 0 4.297 1c-1.11 0-2 .89-2 2H5v4.5a.499.499 0 1 0 1 0V3h6.02c-.344-.598-.98-1-1.723-1-.414 0-.8.125-1.121.34A1.982 1.982 0 0 0 7.262.996zM3 4v7.52A2.474 2.474 0 0 0 5.48 14h4.04a2.47 2.47 0 0 0 2.43-2h.257A2.808 2.808 0 0 0 15 9.207V6.793A2.808 2.808 0 0 0 12.207 4H7v3.5C7 8.332 6.332 9 5.5 9S4 8.332 4 7.5V4H3zm9 2h.207a.77.77 0 0 1 .793.793v2.414a.77.77 0 0 1-.793.793H12V6zM1 15v1h14v-1H1z"/></svg> \ No newline at end of file
diff --git a/data/icons/review-symbolic.svg b/data/icons/review-symbolic.svg
new file mode 100644
index 0000000..3c7529b
--- /dev/null
+++ b/data/icons/review-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#2e3436">
+ <path d="m 2.5 0 c -1.382812 0 -2.50390625 1.117188 -2.5 2.5 v 8 c 0 1.386719 1.113281 2.5 2.5 2.5 h 8.375 l 3.125 3 v -3.0625 c 1.164062 -0.230469 2 -1.253906 2 -2.4375 v -8 c 0 -1.386719 -1.113281 -2.5 -2.5 -2.5 z m 0 2 h 11 c 0.277344 0 0.5 0.222656 0.5 0.5 v 8 c 0 0.277344 -0.222656 0.5 -0.5 0.5 h -11 c -0.277344 0 -0.5 -0.222656 -0.5 -0.5 v -8 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 z m 0 0"/>
+ <path d="m 4 7 h 6 v 2 h -6 z m 0 0"/>
+ <path d="m 4 4 h 8 v 2 h -8 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/safety-symbolic.svg b/data/icons/safety-symbolic.svg
new file mode 100644
index 0000000..a01e586
--- /dev/null
+++ b/data/icons/safety-symbolic.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M2 1v7c0 2.072 1.498 3.695 2.832 4.889a18.66 18.66 0 0 0 2.66 1.972l.516.305.512-.31s1.32-.8 2.65-2.002C12.5 11.65 14 10.044 14 8V1H2zm2 2h8v.586l-4 4-1.793-1.793-1.414 1.414L8 10.414l4-4V8c0 .92-1 2.312-2.17 3.37-.913.824-1.477 1.154-1.836 1.386-.358-.226-.918-.543-1.828-1.358C5 10.355 4 8.98 4 8V3z" style="fill:#3d3846"/></svg> \ No newline at end of file
diff --git a/data/icons/sign-language-symbolic.svg b/data/icons/sign-language-symbolic.svg
new file mode 100644
index 0000000..f1721ab
--- /dev/null
+++ b/data/icons/sign-language-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M9 7v.5s0 .5.5.5.5-.5.5-.5V2c0-.555.445-1 1-1s1 .445 1 1v9.5c0 .5.5.5.5.5l1.793-1.707a.992.992 0 0 1 .719-.305c1.082.086 1.144 1.27.695 1.719l-3 3C12 15.5 10.949 15.997 10 16H4c-3 0-3-3-3-3V3c0-.555.445-1 1-1s1 .445 1 1v4.5s0 .5.5.5.5-.5.5-.5V7c0-.555.445-1 1-1s1 .445 1 1v.5s0 .5.5.5.5-.5.5-.5V7c0-.555.453-.992 1-1 .586-.012 1 .445 1 1zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/snap-symbolic.svg b/data/icons/snap-symbolic.svg
new file mode 100644
index 0000000..f5f93f3
--- /dev/null
+++ b/data/icons/snap-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#2e3434">
+ <path d="m 1 0.996094 l 7.136719 10.847656 l 4.898437 -3.507812 z m 0 0"/>
+ <path d="m 5.507812 5.328125 c -0.339843 0.058594 -0.625 0.285156 -0.753906 0.597656 l -3.617187 8.652344 c -0.175781 0.414063 -0.050781 0.890625 0.296875 1.167969 c 0.351562 0.28125 0.847656 0.292968 1.210937 0.027344 l 6.929688 -4.984376 c 0.230469 -0.164062 0.382812 -0.421874 0.410156 -0.703124 c 0.03125 -0.285157 -0.058594 -0.566407 -0.25 -0.78125 l -3.316406 -3.664063 c -0.230469 -0.25 -0.574219 -0.371094 -0.910157 -0.3125 z m 0.480469 2.820313 l 1.511719 1.667968 l -3.15625 2.269532 z m 0 0"/>
+ <path d="m 6.042969 2.914062 l 9.957031 6.15625 l -0.039062 -5.066406 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/strong-language-none-symbolic.svg b/data/icons/strong-language-none-symbolic.svg
new file mode 100644
index 0000000..0d62d57
--- /dev/null
+++ b/data/icons/strong-language-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06 14 14 1.06-1.06-1.035-1.035a1.5 1.5 0 0 0-1.426-1.426L12.062 11H14V2h-2v8.938l-1-1V9h-.938L9 7.937V7h2V5H9V2H7v3h-.938L5 3.937V2H3.062L1.532.469zM1 5v2h2v2H1v2h2v3h2v-3h2v3h2v-1.879L5.879 9H5v-.879L1.879 5H1z"/></svg> \ No newline at end of file
diff --git a/data/icons/strong-language-symbolic.svg b/data/icons/strong-language-symbolic.svg
new file mode 100644
index 0000000..5b22d2f
--- /dev/null
+++ b/data/icons/strong-language-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="M3 2v3H1v2h2v2H1v2h2v3h2v-3h2v3h2v-3h2V9H9V7h2V5H9V2H7v3H5V2H3zm9 0v9h2V2h-2zM5 7h2v2H5V7zm8 5a1.5 1.5 0 0 0-1.5 1.5 1.5 1.5 0 0 0 3 0A1.5 1.5 0 0 0 13 12z"/></svg> \ No newline at end of file
diff --git a/data/icons/system-component-addon.svg b/data/icons/system-component-addon.svg
new file mode 100644
index 0000000..83c1b34
--- /dev/null
+++ b/data/icons/system-component-addon.svg
@@ -0,0 +1,35 @@
+<?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 40 30 h 56 v 56 h -56 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>
+ <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 62 30 c -3.324219 0 -6 2.675781 -6 6 v 6 h -12 c -2.214844 0 -4 1.785156 -4 4 v 12 h 6 c 3.324219 0 6 2.675781 6 6 s -2.675781 6 -6 6 h -6 v 12 c 0 2.214844 1.785156 4 4 4 h 12 v -6 c 0 -3.324219 2.675781 -6 6 -6 s 6 2.675781 6 6 v 6 h 12 c 2.214844 0 4 -1.785156 4 -4 v -12 h 6 c 3.324219 0 6 -2.675781 6 -6 s -2.675781 -6 -6 -6 h -6 v -12 c 0 -2.214844 -1.785156 -4 -4 -4 h -12 v -6 c 0 -3.324219 -2.675781 -6 -6 -6 z m 0 0" fill="#99c1f1"/>
+ </g>
+ </g>
+</svg>
diff --git a/data/icons/system-component-application.svg b/data/icons/system-component-application.svg
new file mode 100644
index 0000000..32d3195
--- /dev/null
+++ b/data/icons/system-component-application.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/data/icons/system-component-codecs.svg b/data/icons/system-component-codecs.svg
new file mode 100644
index 0000000..87ca2a2
--- /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 0000000..957277a
--- /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 0000000..957277a
--- /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 0000000..071034c
--- /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 0000000..2c28ad7
--- /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 0000000..18ec3fd
--- /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 0000000..32d3195
--- /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/data/icons/test-symbolic.svg b/data/icons/test-symbolic.svg
new file mode 100644
index 0000000..063260d
--- /dev/null
+++ b/data/icons/test-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#222222">
+ <path d="m 8 0 c -4.40625 0 -8 3.59375 -8 8 s 3.59375 8 8 8 s 8 -3.59375 8 -8 s -3.59375 -8 -8 -8 z m 0 1.941406 c 3.359375 0 6.058594 2.699219 6.058594 6.058594 s -2.699219 6.058594 -6.058594 6.058594 s -6.058594 -2.699219 -6.058594 -6.058594 s 2.699219 -6.058594 6.058594 -6.058594 z m 0 0"/>
+ <path d="m 13 8 c 0 2.761719 -2.238281 5 -5 5 v -5 z m 0 0"/>
+ <path d="m 3 8 c 0 -2.761719 2.238281 -5 5 -5 v 5 z m 0 0"/>
+ </g>
+</svg>
diff --git a/data/icons/violence-none-symbolic.svg b/data/icons/violence-none-symbolic.svg
new file mode 100644
index 0000000..c25c981
--- /dev/null
+++ b/data/icons/violence-none-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path style="fill:#2e3436" d="m1.531.469-1.06 1.06 6.154 6.155L10 11.062a25.453 25.453 0 0 0 .002-.001l4.469 4.468 1.06-1.06-4.363-4.364a25.453 25.453 0 0 0 1.395-1.293L9.027 5.277 7.686 6.623 1.53.469zm12.754.125a1.504 1.504 0 0 0-1.015.441L9.734 4.57l1.414 1.414 2.536-2.535a1.501 1.501 0 1 0 .601-2.855zM5.562 8.746l-5.019 5.02c.559.554 3.766 1.096 8.219-1.82l-3.2-3.2z"/></svg> \ No newline at end of file
diff --git a/data/icons/violence-symbolic.svg b/data/icons/violence-symbolic.svg
new file mode 100644
index 0000000..2a6d392
--- /dev/null
+++ b/data/icons/violence-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.285.594a1.504 1.504 0 0 0-1.015.441L9.734 4.57l1.414 1.414 2.536-2.535a1.501 1.501 0 1 0 .601-2.855zM9.027 5.277.543 13.766c.707.703 5.656 1.41 12.02-4.954zm0 0" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/data/icons/webpage-symbolic.svg b/data/icons/webpage-symbolic.svg
new file mode 100644
index 0000000..8415de5
--- /dev/null
+++ b/data/icons/webpage-symbolic.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M7.5 0C3.37 0 0 3.37 0 7.5S3.37 15 7.5 15 15 11.63 15 7.5 11.63 0 7.5 0zm0 2c.183 0 .382.084.617.322.235.239.48.626.69 1.127.373.897.632 2.151.683 3.551H5.51c.05-1.4.31-2.654.683-3.55.21-.502.455-.889.69-1.128C7.118 2.084 7.317 2 7.5 2zm-1.857.318a5.85 5.85 0 0 0-.372.746c-.439 1.054-.71 2.422-.76 3.936H2.024a5.481 5.481 0 0 1 3.62-4.682zm3.714 0A5.481 5.481 0 0 1 12.977 7h-2.489c-.05-1.514-.32-2.882-.76-3.936a5.85 5.85 0 0 0-.37-.746zM2.023 8h2.489c.05 1.514.32 2.882.76 3.936.112.27.235.519.37.746A5.481 5.481 0 0 1 2.024 8zM5.51 8h3.98c-.05 1.4-.31 2.654-.683 3.55-.21.502-.455.889-.69 1.128-.235.238-.434.322-.617.322s-.382-.084-.617-.322c-.235-.239-.48-.626-.69-1.127C5.82 10.654 5.561 9.4 5.51 8zm4.978 0h2.489a5.481 5.481 0 0 1-3.62 4.682 5.85 5.85 0 0 0 .372-.746c.439-1.054.71-2.422.76-3.936z" style="fill:#3d3846"/></svg> \ No newline at end of file