Rules-based browser launcher for TUI + GNOME. switchyard.aly.codes
tui gome bowser go
0

Configure Feed

Select the types of activity you want to include in your feed.

updat icon

Aly Raffauf (Jan 20, 2026, 6:29 PM EST) bed6be9f 873d37bd

+22 -231
data/icons/hicolor/128x128/apps/io.github.alyraffauf.Switchyard.png

This is a binary file and will not be displayed.

data/icons/hicolor/64x64/apps/io.github.alyraffauf.Switchyard.png

This is a binary file and will not be displayed.

+22 -174
data/icons/hicolor/scalable/apps/io.github.alyraffauf.Switchyard.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg 3 - width="128" 4 - height="128" 5 - viewBox="0 0 128 128" 6 - version="1.1" 7 - id="svg7" 8 - sodipodi:docname="io.github.alyraffauf.Switchyard.svg" 9 - inkscape:version="1.4.3 (0d15f75042, 2025-12-25)" 10 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 11 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 12 - xmlns:xlink="http://www.w3.org/1999/xlink" 13 - xmlns="http://www.w3.org/2000/svg" 14 - xmlns:svg="http://www.w3.org/2000/svg"> 15 - <sodipodi:namedview 16 - id="namedview7" 17 - pagecolor="#ffffff" 18 - bordercolor="#000000" 19 - borderopacity="0.25" 20 - inkscape:showpageshadow="2" 21 - inkscape:pageopacity="0.0" 22 - inkscape:pagecheckerboard="0" 23 - inkscape:deskcolor="#d1d1d1" 24 - inkscape:zoom="3" 25 - inkscape:cx="50.833333" 26 - inkscape:cy="64.5" 27 - inkscape:window-width="1600" 28 - inkscape:window-height="928" 29 - inkscape:window-x="0" 30 - inkscape:window-y="0" 31 - inkscape:window-maximized="1" 32 - inkscape:current-layer="svg7" /> 33 - <defs 34 - id="defs2"> 35 - <linearGradient 36 - id="bg" 37 - x1="0%" 38 - y1="0%" 39 - x2="0%" 40 - y2="100%"> 41 - <stop 42 - offset="0%" 43 - style="stop-color:#8ff0a4" 44 - id="stop1" /> 45 - <stop 46 - offset="100%" 47 - style="stop-color:#26a269" 48 - id="stop2" /> 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1024 1024"> 3 + <defs> 4 + <style> 5 + .cls-1 { 6 + fill: url(#linear-gradient); 7 + } 8 + 9 + .cls-2 { 10 + fill: #fff; 11 + } 12 + </style> 13 + <linearGradient id="linear-gradient" x1="205.42" y1="205.42" x2="846.69" y2="846.69" gradientUnits="userSpaceOnUse"> 14 + <stop offset="0" stop-color="#6dd791"/> 15 + <stop offset="1" stop-color="#366946"/> 49 16 </linearGradient> 50 - <linearGradient 51 - inkscape:collect="always" 52 - xlink:href="#bg" 53 - id="linearGradient7" 54 - x1="21.466253" 55 - y1="60.373835" 56 - x2="21.466253" 57 - y2="69.318107" 58 - gradientTransform="scale(1.118034,0.89442719)" 59 - gradientUnits="userSpaceOnUse" /> 60 - <linearGradient 61 - inkscape:collect="always" 62 - xlink:href="#bg" 63 - id="linearGradient8" 64 - x1="33.988233" 65 - y1="60.373835" 66 - x2="33.988233" 67 - y2="69.318107" 68 - gradientTransform="scale(1.118034,0.89442719)" 69 - gradientUnits="userSpaceOnUse" /> 70 - <linearGradient 71 - inkscape:collect="always" 72 - xlink:href="#bg" 73 - id="linearGradient9" 74 - x1="66.187612" 75 - y1="60.373835" 76 - x2="66.187612" 77 - y2="69.318107" 78 - gradientTransform="scale(1.118034,0.89442719)" 79 - gradientUnits="userSpaceOnUse" /> 80 - <linearGradient 81 - inkscape:collect="always" 82 - xlink:href="#bg" 83 - id="linearGradient10" 84 - x1="78.709593" 85 - y1="60.373835" 86 - x2="78.709593" 87 - y2="69.318107" 88 - gradientTransform="scale(1.118034,0.89442719)" 89 - gradientUnits="userSpaceOnUse" /> 90 17 </defs> 91 - <!-- Background circle --> 92 - <circle 93 - cx="64" 94 - cy="64" 95 - r="60" 96 - fill="url(#bg)" 97 - id="circle2" /> 98 - <line 99 - x1="19.565887" 100 - y1="68.360672" 101 - x2="108.43411" 102 - y2="68.360672" 103 - stroke="#ffffff" 104 - stroke-width="2.72134" 105 - stroke-linecap="round" 106 - id="line7-5" /> 107 - <!-- Two-car subway train --> 108 - <g 109 - fill="#ffffff" 110 - id="g7" 111 - transform="matrix(0.93834693,0,0,1,3.9457967,0)"> 112 - <!-- Left car --> 113 - <rect 114 - x="18" 115 - y="50" 116 - width="42" 117 - height="24" 118 - rx="4" 119 - id="rect2" /> 120 - <!-- Left car windows --> 121 - <rect 122 - x="24" 123 - y="54" 124 - width="10" 125 - height="8" 126 - rx="2" 127 - fill="url(#bg)" 128 - id="rect3" 129 - style="fill:url(#linearGradient7)" /> 130 - <rect 131 - x="38" 132 - y="54" 133 - width="10" 134 - height="8" 135 - rx="2" 136 - fill="url(#bg)" 137 - id="rect4" 138 - style="fill:url(#linearGradient8)" /> 139 - <!-- Right car --> 140 - <rect 141 - x="68" 142 - y="50" 143 - width="42" 144 - height="24" 145 - rx="4" 146 - id="rect5" /> 147 - <!-- Right car windows --> 148 - <rect 149 - x="74" 150 - y="54" 151 - width="10" 152 - height="8" 153 - rx="2" 154 - fill="url(#bg)" 155 - id="rect6" 156 - style="fill:url(#linearGradient9)" /> 157 - <rect 158 - x="88" 159 - y="54" 160 - width="10" 161 - height="8" 162 - rx="2" 163 - fill="url(#bg)" 164 - id="rect7" 165 - style="fill:url(#linearGradient10)" /> 18 + <rect class="cls-1" x="0" y="0" width="1024" height="1024" rx="512" ry="512"/> 19 + <g> 20 + <path class="cls-2" d="M737.91,324.02c-12.21,3-24.19,6.98-35.87,11.92-28.55,12.08-54.2,29.37-76.24,51.41-21.36,21.36-38.27,46.12-50.29,73.63,12.32,14.08,19.79,32.49,19.79,52.62,0,29.45-15.99,55.22-39.74,69.11v222.6c142.22-21.05,251.36-143.64,251.36-291.72,0-72.19-25.94-138.32-69-189.58Z"/> 21 + <path class="cls-2" d="M512,393.76c14.27-24.76,31.73-47.53,52.2-68,28.12-28.12,60.58-50.58,96.58-66.84-43.68-25.57-94.51-40.23-148.78-40.23s-105.1,14.66-148.78,40.23c36,16.27,68.46,38.73,96.58,66.84,20.47,20.47,37.93,43.24,52.2,68Z"/> 22 + <path class="cls-2" d="M435.29,513.6c0-17.66,5.75-33.99,15.48-47.24-.38-.92-.76-1.84-1.15-2.76-12.08-28.55-29.37-54.2-51.41-76.24-22.04-22.04-47.69-39.34-76.24-51.41-11.68-4.94-23.66-8.92-35.87-11.92-43.06,51.26-69,117.39-69,189.58,0,148.08,109.14,270.66,251.36,291.72v-226.9c-20.07-14.55-33.16-38.18-33.16-64.81Z"/> 23 + <circle class="cls-2" cx="515.24" cy="514.23" r="29.86" transform="translate(-104.36 132.13) rotate(-13.28)"/> 166 24 </g> 167 - <!-- Track --> 168 - <line 169 - x1="19.565891" 170 - y1="78" 171 - x2="108.43411" 172 - y2="78" 173 - stroke="#ffffff" 174 - stroke-width="2.72134" 175 - stroke-linecap="round" 176 - id="line7" /> 177 - </svg> 25 + </svg>
-22
data/icons/hicolor/symbolic/apps/io.github.alyraffauf.Switchyard-symbolic.svg
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"> 3 - <style> 4 - .symbolic { fill: #2e3436; } 5 - </style> 6 - <!-- Simplified subway train cars --> 7 - <g class="symbolic"> 8 - <!-- Left car --> 9 - <rect x="1" y="5" width="6" height="6" rx="1"/> 10 - <!-- Left car window --> 11 - <rect x="2" y="6" width="2" height="2" rx="0.5" fill="none" stroke="#ffffff" stroke-width="0.5"/> 12 - 13 - <!-- Right car --> 14 - <rect x="9" y="5" width="6" height="6" rx="1"/> 15 - <!-- Right car window --> 16 - <rect x="10" y="6" width="2" height="2" rx="0.5" fill="none" stroke="#ffffff" stroke-width="0.5"/> 17 - 18 - <!-- Track lines --> 19 - <rect x="1" y="12" width="14" height="0.5" rx="0.25"/> 20 - <rect x="1" y="13.5" width="14" height="0.5" rx="0.25"/> 21 - </g> 22 - </svg>
-35
flathub.json
··· 1 - { 2 - "only-arches": ["x86_64", "aarch64"], 3 - "skip-arches": [], 4 - "end-of-life": null, 5 - "end-of-life-rebase": null, 6 - "disable-external-data-checker": true, 7 - "automerge-flathubbot-prs": false, 8 - "comment": "Browser chooser that routes URLs to different browsers based on user-defined rules", 9 - "permissions": { 10 - "org.freedesktop.Flatpak": { 11 - "reason": "Required to launch Flatpak browsers and run xdg-settings on the host to manage default browser settings", 12 - "required": true 13 - }, 14 - "--filesystem=host:ro": { 15 - "reason": "Browser discovery requires reading .desktop files from /usr/share/applications (native apps).", 16 - "required": true 17 - }, 18 - "--filesystem=xdg-data/applications:ro": { 19 - "reason": "Access to user-installed applications in ~/.local/share/applications", 20 - "required": true 21 - }, 22 - "--filesystem=xdg-data/flatpak:ro": { 23 - "reason": "Access to Flatpak browser exports in ~/.local/share/flatpak/exports/share", 24 - "required": true 25 - }, 26 - "--filesystem=/var/lib/flatpak:ro": { 27 - "reason": "Access to Flatpak browser exports in /var/lib/flatpak/exports/share", 28 - "required": true 29 - }, 30 - "--filesystem=/var/lib/snapd:ro": { 31 - "reason": "Access to Snap browser .desktop files in /var/lib/snapd/desktop", 32 - "required": true 33 - } 34 - } 35 - }