mise run install builds a release binary and installs it into ~/.local with a desktop entry and a hicolor icon. Two wrinkles specific to a Nix-built GTK app installed outside the dev shell: the launcher is a generated script rather than a symlink, because a desktop launcher provides a minimal environment and GTK still needs to be pointed at its GSettings schemas and icon themes; and install registers Nix GC roots for every store path in the binary's RPATH, so nix-collect-garbage cannot delete GTK out from under the installed app. The runtime paths are exported from the flake's shellHook and read back at install time, so they cannot drift from what the binary was built against.
45 lines
1.9 KiB
XML
45 lines
1.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
vtabs app icon: a terminal pane with the vertical tab strip down its left
|
|
edge. Shapes are kept large and high-contrast so the sidebar is still
|
|
readable when the icon is scaled down to 32px in a launcher.
|
|
-->
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
|
|
<defs>
|
|
<linearGradient id="pane" x1="0" y1="0" x2="0" y2="1">
|
|
<stop offset="0" stop-color="#241f31"/>
|
|
<stop offset="1" stop-color="#14111b"/>
|
|
</linearGradient>
|
|
<linearGradient id="accent" x1="0" y1="0" x2="1" y2="1">
|
|
<stop offset="0" stop-color="#c7b3ff"/>
|
|
<stop offset="1" stop-color="#9b7ff0"/>
|
|
</linearGradient>
|
|
<!-- Everything is clipped to the rounded body so the sidebar picks up
|
|
the same corner radius without repeating the path. -->
|
|
<clipPath id="body">
|
|
<rect x="8" y="12" width="112" height="104" rx="24"/>
|
|
</clipPath>
|
|
</defs>
|
|
|
|
<rect x="8" y="12" width="112" height="104" rx="24" fill="url(#pane)"/>
|
|
|
|
<g clip-path="url(#body)">
|
|
<rect x="8" y="12" width="42" height="104" fill="#2f2743"/>
|
|
<rect x="49" y="12" width="2" height="104" fill="#3d3357"/>
|
|
|
|
<!-- Tab rows: the active one carries the accent, the rest are muted. -->
|
|
<rect x="16" y="30" width="26" height="12" rx="6" fill="url(#accent)"/>
|
|
<rect x="16" y="50" width="26" height="12" rx="6" fill="#5d5280"/>
|
|
<rect x="16" y="70" width="26" height="12" rx="6" fill="#493f66"/>
|
|
</g>
|
|
|
|
<!-- Prompt chevron and cursor, the universal shorthand for a terminal. -->
|
|
<path d="M66 51 L79 64 L66 77"
|
|
fill="none" stroke="#e8e2f7" stroke-width="9"
|
|
stroke-linecap="round" stroke-linejoin="round"/>
|
|
<rect x="86" y="70" width="22" height="8" rx="4" fill="url(#accent)"/>
|
|
|
|
<rect x="8" y="12" width="112" height="104" rx="24"
|
|
fill="none" stroke="#000000" stroke-opacity="0.28" stroke-width="2"/>
|
|
</svg>
|