New app icon: a K drawn as the pipeline splitting

The stem is every application, splitting into a green success path
rising to an outcome and a drop-off falling away, on a Breeze-blue
rounded square. Plain shapes and gradients only, so QtSvg renders it
exactly; PNGs from 16 to 128 px are rendered from the SVG.

The icon set is now named after the app ID (io.github.toservetheking.
Kareer). It was installed as "kareer", which nothing looked up: the
desktop file and the window ask for the app ID, so launchers fell back
to a generic icon, and Flatpak (which only exports icons prefixed with
the app ID) shipped none.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01BxDf7HqD1xPnsZP8wt3NTk
This commit is contained in:
2026-09-11 17:00:30 -05:00
co-authored by Claude Opus 5
parent 1f1c628ee4
commit 289246a6d0
17 changed files with 49 additions and 34 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 825 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

+10 -8
View File
@@ -2,15 +2,17 @@
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# Named after the app ID, as the desktop file, the window icon and Flatpak
# (which only exports icons prefixed with the app ID) all expect.
ecm_install_icons(ICONS ecm_install_icons(ICONS
sc-apps-kareer.svg sc-apps-io.github.toservetheking.Kareer.svg
128-apps-kareer.png 128-apps-io.github.toservetheking.Kareer.png
64-apps-kareer.png 64-apps-io.github.toservetheking.Kareer.png
48-apps-kareer.png 48-apps-io.github.toservetheking.Kareer.png
44-apps-kareer.png 44-apps-io.github.toservetheking.Kareer.png
32-apps-kareer.png 32-apps-io.github.toservetheking.Kareer.png
22-apps-kareer.png 22-apps-io.github.toservetheking.Kareer.png
16-apps-kareer.png 16-apps-io.github.toservetheking.Kareer.png
DESTINATION ${KDE_INSTALL_ICONDIR} DESTINATION ${KDE_INSTALL_ICONDIR}
THEME hicolor THEME hicolor
) )
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- SPDX-FileCopyrightText: 2026 ToServeTheKing <[email protected]> -->
<!-- SPDX-License-Identifier: GPL-3.0-or-later -->
<!--
A K for Kareer, drawn as its application pipeline: the stem is every
application, splitting into a success path rising to an outcome and a
drop-off falling away. Plain shapes and gradients only, so QtSvg (which
ignores filters) renders it exactly as other renderers do.
-->
<svg width="128" height="128" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="backdrop" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#4cbcf2"/>
<stop offset="1" stop-color="#1c6ea9"/>
</linearGradient>
<linearGradient id="success" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#ffffff"/>
<stop offset="1" stop-color="#6ff0a0"/>
</linearGradient>
<linearGradient id="dropoff" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#ffffff" stop-opacity="0.92"/>
<stop offset="1" stop-color="#ffffff" stop-opacity="0.3"/>
</linearGradient>
</defs>
<!-- shadow, rounded-square backdrop, and a soft highlight on its top half -->
<rect x="10" y="12" width="108" height="108" rx="24" fill="#0b2a44" fill-opacity="0.28"/>
<rect x="10" y="10" width="108" height="108" rx="24" fill="url(#backdrop)"/>
<rect x="10" y="10" width="108" height="54" rx="24" fill="#ffffff" fill-opacity="0.06"/>
<!-- the arms of the K: success rising, drop-off falling -->
<path d="M41,44 C67,44 67,20 95,20 L95,40 C67,40 67,64 41,64 Z" fill="url(#success)"/>
<path d="M41,64 C67,64 67,88 95,88 L95,108 C67,108 67,84 41,84 Z" fill="url(#dropoff)"/>
<!-- the stem (all applications) and the two outcomes -->
<rect x="27" y="20" width="14" height="88" rx="4" fill="#ffffff"/>
<rect x="95" y="20" width="6" height="20" rx="2" fill="#4be07a"/>
<rect x="95" y="88" width="6" height="20" rx="2" fill="#ffffff" fill-opacity="0.3"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

-26
View File
@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- SPDX-FileCopyrightText: 2026 ToServeTheKing <[email protected]> -->
<!-- SPDX-License-Identifier: GPL-3.0-or-later -->
<svg width="128" height="128" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#63d4c7"/>
<stop offset="1" stop-color="#1a7a70"/>
</linearGradient>
</defs>
<!-- rounded-square backdrop -->
<rect x="8" y="8" width="112" height="112" rx="28" ry="28" fill="url(#bg)"/>
<!-- briefcase -->
<g>
<rect x="34" y="58" width="60" height="42" rx="6" fill="#ffffff" fill-opacity="0.92"/>
<rect x="52" y="46" width="24" height="14" rx="4" fill="none" stroke="#ffffff" stroke-opacity="0.92" stroke-width="6"/>
<rect x="34" y="72" width="60" height="10" fill="#1a7a70" fill-opacity="0.35"/>
<rect x="60" y="68" width="8" height="10" rx="2" fill="#1a7a70" fill-opacity="0.55"/>
</g>
<!-- upward trend line, representing progress through the pipeline -->
<polyline points="30,44 46,30 58,38 74,22 90,30" fill="none" stroke="#ffffff" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<polygon points="90,30 98,28 92,36" fill="#ffffff"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB