diff options
author | Sam Tay <sam.chong.tay@gmail.com> | 2020-06-25 23:33:46 -0700 |
---|---|---|
committer | Sam Tay <sam.chong.tay@gmail.com> | 2020-06-26 10:19:06 -0700 |
commit | 1b410e561cd932fb10f1c0884609a29889822a0f (patch) | |
tree | 75c79a8b87f0ee13254f46a3833ba9103c868e40 | |
parent | 408660cb5d9a900921200d9cc43943e912f815e6 (diff) |
Add demo gif
-rw-r--r-- | README.md | 9 | ||||
-rw-r--r-- | TODO.md | 6 | ||||
-rw-r--r-- | assets/demo.svg | 214 | ||||
-rw-r--r-- | example.txt | 13 | ||||
-rw-r--r-- | roadmap.md | 40 |
5 files changed, 243 insertions, 39 deletions
@@ -14,12 +14,15 @@ [s3]: https://img.shields.io/badge/license-MIT-blue.svg [l3]: ./LICENSE -<h5 align="center">A terminal interface for StackOverflow written in Rust</h5> +<h5 align="center"> A terminal interface for StackOverflow written in Rust </h5> -# so +<h1 align="center"> + +![](assets/demo.svg) + +</h1> **Note**: still working out some kinks. Initial release not published just yet. -**<Insert GIF here>** ## example usage While I like the acronym *so*, this tool would actually be better described as @@ -1,14 +1,14 @@ # TODO ### chores -1. Make an example GIF 2. Move to github actions ASAP, travis & appveyor are a PITA. See resources below. 3. Benchmark parsing. Probaly way faster to use regex to find question IDs within URLs (or *gasp* the entire doc). 4. Refactor layout handling (see TODO on `tui::views::LayoutView::relayout`) +5. Release on AUR & Homebrew ### bugs -0. Another parser bug: some links return /questions/tagged/; need to make sure +0. **Priority** Another parser bug: some links return /questions/tagged/; need to make sure we only select digits. Hello regex. (use test/duckduckgo/tagged.html to write a new test). 1. @@ -32,7 +32,7 @@ SpannedString, and own everything... #### Endless improvements for the TUI 1. Add Shift+TAB to cycle focus backwards (just add CirculularFocus wrapper) -3. Small text at bottom with '?' to bring up key mapping dialog +3. **Priority** Small text at bottom with '?' to bring up key mapping dialog 1. Init with smaller layout depending on initial screen size. 2. Maybe cli `--auto-resize` option that changes layouts at breakpoints. 5. Maybe **[ESC]** cycles layout in the opposite direction? And stops at diff --git a/assets/demo.svg b/assets/demo.svg new file mode 100644 index 0000000..625cf30 --- /dev/null +++ b/assets/demo.svg @@ -0,0 +1,214 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="terminal" baseProfile="full" viewBox="0 0 720 495" width="720" version="1.1"> + <defs> + <termtosvg:template_settings xmlns:termtosvg="https://github.com/nbedos/termtosvg"> + <termtosvg:screen_geometry columns="90" rows="29"/> + <termtosvg:animation type="css"/> + </termtosvg:template_settings> + <style type="text/css" id="generated-style"><![CDATA[#screen { + font-family: 'DejaVu Sans Mono', monospace; + font-style: normal; + font-size: 14px; + } + + text { + dominant-baseline: text-before-edge; + white-space: pre; + } + + :root { + --animation-duration: 36716ms; + } + + @keyframes roll { + 0.000%{transform:translateY(0px)} +0.103%{transform:translateY(-510px)} +1.422%{transform:translateY(-1020px)} +1.694%{transform:translateY(-1530px)} +1.953%{transform:translateY(-2040px)} +2.955%{transform:translateY(-2550px)} +3.086%{transform:translateY(-3060px)} +3.285%{transform:translateY(-3570px)} +3.516%{transform:translateY(-4080px)} +3.936%{transform:translateY(-4590px)} +4.276%{transform:translateY(-5100px)} +4.317%{transform:translateY(-5610px)} +5.839%{transform:translateY(-6120px)} +6.022%{transform:translateY(-6630px)} +6.692%{transform:translateY(-7140px)} +7.239%{transform:translateY(-7650px)} +7.490%{transform:translateY(-8160px)} +7.898%{transform:translateY(-8670px)} +8.075%{transform:translateY(-9180px)} +8.863%{transform:translateY(-9690px)} +9.369%{transform:translateY(-10200px)} +9.688%{transform:translateY(-10710px)} +11.554%{transform:translateY(-11220px)} +11.575%{transform:translateY(-11730px)} +13.199%{transform:translateY(-12240px)} +16.886%{transform:translateY(-12750px)} +16.889%{transform:translateY(-13260px)} +20.457%{transform:translateY(-13770px)} +20.650%{transform:translateY(-14280px)} +20.800%{transform:translateY(-14790px)} +21.388%{transform:translateY(-15300px)} +21.898%{transform:translateY(-15810px)} +22.069%{transform:translateY(-16320px)} +22.601%{transform:translateY(-16830px)} +22.840%{transform:translateY(-17340px)} +23.230%{transform:translateY(-17850px)} +23.576%{transform:translateY(-18360px)} +23.772%{transform:translateY(-18870px)} +24.235%{transform:translateY(-19380px)} +24.355%{transform:translateY(-19890px)} +25.931%{transform:translateY(-20400px)} +26.381%{transform:translateY(-20910px)} +26.593%{transform:translateY(-21420px)} +27.473%{transform:translateY(-21930px)} +27.732%{transform:translateY(-22440px)} +28.004%{transform:translateY(-22950px)} +28.522%{transform:translateY(-23460px)} +28.993%{transform:translateY(-23970px)} +29.407%{transform:translateY(-24480px)} +29.864%{transform:translateY(-24990px)} +30.229%{transform:translateY(-25500px)} +30.540%{transform:translateY(-26010px)} +30.799%{transform:translateY(-26520px)} +31.395%{transform:translateY(-27030px)} +31.801%{transform:translateY(-27540px)} +31.992%{transform:translateY(-28050px)} +36.886%{transform:translateY(-28560px)} +37.343%{transform:translateY(-29070px)} +37.526%{transform:translateY(-29580px)} +38.275%{transform:translateY(-30090px)} +38.610%{transform:translateY(-30600px)} +40.081%{transform:translateY(-31110px)} +40.179%{transform:translateY(-31620px)} +40.424%{transform:translateY(-32130px)} +40.783%{transform:translateY(-32640px)} +41.630%{transform:translateY(-33150px)} +41.954%{transform:translateY(-33660px)} +42.142%{transform:translateY(-34170px)} +44.351%{transform:translateY(-34680px)} +44.534%{transform:translateY(-35190px)} +44.686%{transform:translateY(-35700px)} +44.874%{transform:translateY(-36210px)} +45.226%{transform:translateY(-36720px)} +45.972%{transform:translateY(-37230px)} +46.394%{transform:translateY(-37740px)} +46.753%{transform:translateY(-38250px)} +46.933%{transform:translateY(-38760px)} +47.176%{transform:translateY(-39270px)} +47.516%{transform:translateY(-39780px)} +47.636%{transform:translateY(-40290px)} +48.083%{transform:translateY(-40800px)} +48.401%{transform:translateY(-41310px)} +48.548%{transform:translateY(-41820px)} +48.777%{transform:translateY(-42330px)} +48.829%{transform:translateY(-42840px)} +49.243%{transform:translateY(-43350px)} +49.504%{transform:translateY(-43860px)} +49.719%{transform:translateY(-44370px)} +49.989%{transform:translateY(-44880px)} +50.245%{transform:translateY(-45390px)} +50.929%{transform:translateY(-45900px)} +50.997%{transform:translateY(-46410px)} +51.659%{transform:translateY(-46920px)} +51.887%{transform:translateY(-47430px)} +52.190%{transform:translateY(-47940px)} +52.579%{transform:translateY(-48450px)} +52.936%{transform:translateY(-48960px)} +53.271%{transform:translateY(-49470px)} +53.688%{transform:translateY(-49980px)} +53.726%{transform:translateY(-50490px)} +55.861%{transform:translateY(-51000px)} +55.913%{transform:translateY(-51510px)} +58.754%{transform:translateY(-52020px)} +58.756%{transform:translateY(-52530px)} +61.485%{transform:translateY(-53040px)} +61.537%{transform:translateY(-53550px)} +61.540%{transform:translateY(-54060px)} +61.543%{transform:translateY(-54570px)} +66.568%{transform:translateY(-55080px)} +66.570%{transform:translateY(-55590px)} +68.804%{transform:translateY(-56100px)} +69.964%{transform:translateY(-56610px)} +71.457%{transform:translateY(-57120px)} +75.172%{transform:translateY(-57630px)} +79.625%{transform:translateY(-58140px)} +81.044%{transform:translateY(-58650px)} +84.012%{transform:translateY(-59160px)} +85.829%{transform:translateY(-59670px)} +85.922%{transform:translateY(-60180px)} +86.025%{transform:translateY(-60690px)} +86.120%{transform:translateY(-61200px)} +86.216%{transform:translateY(-61710px)} +86.393%{transform:translateY(-62220px)} +86.485%{transform:translateY(-62730px)} +86.578%{transform:translateY(-63240px)} +86.673%{transform:translateY(-63750px)} +86.766%{transform:translateY(-64260px)} +86.943%{transform:translateY(-64770px)} +87.038%{transform:translateY(-65280px)} +87.131%{transform:translateY(-65790px)} +87.229%{transform:translateY(-66300px)} +87.322%{transform:translateY(-66810px)} +87.417%{transform:translateY(-67320px)} +87.594%{transform:translateY(-67830px)} +87.689%{transform:translateY(-68340px)} +87.785%{transform:translateY(-68850px)} +87.877%{transform:translateY(-69360px)} +87.973%{transform:translateY(-69870px)} +88.150%{transform:translateY(-70380px)} +88.242%{transform:translateY(-70890px)} +88.338%{transform:translateY(-71400px)} +88.433%{transform:translateY(-71910px)} +88.536%{transform:translateY(-72420px)} +88.623%{transform:translateY(-72930px)} +88.801%{transform:translateY(-73440px)} +88.896%{transform:translateY(-73950px)} +88.991%{transform:translateY(-74460px)} +89.087%{transform:translateY(-74970px)} +89.182%{transform:translateY(-75480px)} +90.917%{transform:translateY(-75990px)} +90.919%{transform:translateY(-76500px)} +92.829%{transform:translateY(-77010px)} +92.834%{transform:translateY(-77520px)} +97.271%{transform:translateY(-78030px)} +97.276%{transform:translateY(-78540px)} +100.000%{transform:translateY(-78540px)} + } + + #screen_view { + animation-duration: 36716ms; + animation-iteration-count:infinite; + animation-name:roll; + animation-timing-function: steps(1,end); + animation-fill-mode: forwards; + } + ]]></style> + <style type="text/css" id="user-style"> + /* The colors defined below are the default 16 colors used for rendering text of the terminal. Adjust + them as needed. + Solarized light color theme (http://ethanschoonover.com/solarized) */ + .foreground {fill: #586e75;} + .background {fill: #fdf6e3;} + .color0 {fill: #fdf6e3;} + .color1 {fill: #dc322f;} + .color2 {fill: #859900;} + .color3 {fill: #b58900;} + .color4 {fill: #268bd2;} + .color5 {fill: #6c71c4;} + .color6 {fill: #2aa198;} + .color7 {fill: #586e75;} + .color8 {fill: #839496;} + .color9 {fill: #cb4b16;} + .color10 {fill: #eee8d5;} + .color11 {fill: #93a1a1;} + .color12 {fill: #657b83;} + .color13 {fill: #073642;} + .color14 {fill: #d33682;} + .color15 {fill: #002b36;} + </style> + </defs> + <svg id="screen" width="720" height="493" viewBox="0 0 720 493" preserveAspectRatio="xMidYMin slice"><rect class="background" height="100%" width="100%" x="0" y="0"/><defs><g id="g1"><text x="0" textLength="8" class="background"> </text></g><g id="g2"><text x="0" textLength="8" class="color4">~</text><text x="8" textLength="712" class="foreground"> </text></g><g id="g3"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="8" class="background"> </text><text x="24" textLength="696" class="foreground"> </text></g><g id="g4"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="8" text-decoration="underline" class="foreground">s</text><text x="24" textLength="8" class="background"> </text><text x="32" textLength="688" class="foreground"> </text></g><g id="g5"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="8" class="background"> </text><text x="40" textLength="680" class="foreground"> </text></g><g id="g6"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="8" class="foreground"> </text><text x="40" textLength="8" class="background"> </text><text x="48" textLength="672" class="foreground"> </text></g><g id="g7"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="16" class="foreground"> h</text><text x="48" textLength="8" class="background"> </text><text x="56" textLength="664" class="foreground"> </text></g><g id="g8"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="24" class="foreground"> ho</text><text x="56" textLength="8" class="background"> </text><text x="64" textLength="656" class="foreground"> </text></g><g id="g9"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="32" class="foreground"> how</text><text x="64" textLength="8" class="background"> </text><text x="72" textLength="648" class="foreground"> </text></g><g id="g10"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="40" class="foreground"> how </text><text x="72" textLength="8" class="background"> </text><text x="80" textLength="640" class="foreground"> </text></g><g id="g11"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="48" class="foreground"> how d</text><text x="80" textLength="8" class="background"> </text><text x="88" textLength="632" class="foreground"> </text></g><g id="g12"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="56" class="foreground"> how do</text><text x="88" textLength="8" class="background"> </text><text x="96" textLength="624" class="foreground"> </text></g><g id="g13"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="64" class="foreground"> how do </text><text x="96" textLength="8" class="background"> </text><text x="104" textLength="616" class="foreground"> </text></g><g id="g14"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="72" class="foreground"> how do I</text><text x="104" textLength="8" class="background"> </text><text x="112" textLength="608" class="foreground"> </text></g><g id="g15"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="80" class="foreground"> how do I </text><text x="112" textLength="8" class="background"> </text><text x="120" textLength="600" class="foreground"> </text></g><g id="g16"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="80" class="foreground"> how do I </text><text x="112" textLength="8" text-decoration="underline" class="foreground">e</text><text x="120" textLength="8" class="background"> </text><text x="128" textLength="592" class="foreground"> </text></g><g id="g17"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="80" class="foreground"> how do I </text><text x="112" textLength="16" text-decoration="underline" class="foreground">ex</text><text x="128" textLength="8" class="background"> </text><text x="136" textLength="584" class="foreground"> </text></g><g id="g18"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="104" class="foreground"> how do I exi</text><text x="136" textLength="8" class="background"> </text><text x="144" textLength="576" class="foreground"> </text></g><g id="g19"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="112" class="foreground"> how do I exit</text><text x="144" textLength="8" class="background"> </text><text x="152" textLength="568" class="foreground"> </text></g><g id="g20"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="120" class="foreground"> how do I exit </text><text x="152" textLength="8" class="background"> </text><text x="160" textLength="560" class="foreground"> </text></g><g id="g21"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="120" class="foreground"> how do I exit </text><text x="152" textLength="8" text-decoration="underline" class="foreground">V</text><text x="160" textLength="8" class="background"> </text><text x="168" textLength="552" class="foreground"> </text></g><g id="g22"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="120" class="foreground"> how do I exit </text><text x="152" textLength="16" text-decoration="underline" class="foreground">Vi</text><text x="168" textLength="8" class="background"> </text><text x="176" textLength="544" class="foreground"> </text></g><g id="g23"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="144" class="foreground"> how do I exit Vim</text><text x="176" textLength="8" class="background"> </text><text x="184" textLength="536" class="foreground"> </text></g><g id="g24"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="688" class="foreground"> how do I exit Vim </text></g><g id="g25"><text x="0" textLength="64" class="foreground">Hit the </text><text x="64" textLength="40" font-weight="bold" class="color15">[Esc]</text><text x="104" textLength="376" class="foreground"> key to enter "Normal mode". Then you can type </text><text x="480" textLength="8" class="color14">:</text><text x="488" textLength="184" class="foreground"> to enter "Command-line</text></g><g id="g26"><text x="0" textLength="128" class="foreground">mode". A colon (</text><text x="128" textLength="8" class="color14">:</text><text x="136" textLength="576" class="foreground">) will appear at the bottom of the screen and you can type in one of the</text></g><g id="g27"><text x="0" textLength="424" class="foreground"> following commands. To execute a command, press the </text><text x="424" textLength="56" font-weight="bold" class="color15">[Enter]</text><text x="480" textLength="40" class="foreground"> key.</text></g><g id="g28"><text x="0" textLength="8" fill="#585858">•</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color14">:q</text><text x="32" textLength="168" class="foreground"> to quit (short for </text><text x="200" textLength="40" class="color14">:quit</text><text x="240" textLength="8" class="foreground">)</text></g><g id="g29"><text x="0" textLength="8" fill="#585858">•</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="24" class="color14">:q!</text><text x="40" textLength="280" class="foreground"> to quit without saving (short for </text><text x="320" textLength="48" class="color14">:quit!</text><text x="368" textLength="8" class="foreground">)</text></g><g id="g30"><text x="0" textLength="8" fill="#585858">•</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="24" class="color14">:wq</text><text x="40" textLength="144" class="foreground"> to write and quit</text></g><g id="g31"><text x="0" textLength="8" fill="#585858">•</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="32" class="color14">:wq!</text><text x="48" textLength="632" class="foreground"> to write and quit even if file has only read permission (if file does not have</text></g><g id="g32"><text x="0" textLength="240" class="foreground">write permission: force write)</text></g><g id="g33"><text x="0" textLength="8" fill="#585858">•</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color14">:x</text><text x="32" textLength="256" class="foreground"> to write and quit (similar to </text><text x="288" textLength="24" class="color14">:wq</text><text x="312" textLength="304" class="foreground">, but only write if there are changes)</text></g><g id="g34"><text x="0" textLength="8" fill="#585858">•</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="40" class="color14">:exit</text><text x="56" textLength="224" class="foreground"> to write and exit (same as </text><text x="280" textLength="16" class="color14">:x</text><text x="296" textLength="8" class="foreground">)</text></g><g id="g35"><text x="0" textLength="8" fill="#585858">•</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="24" class="color14">:qa</text><text x="40" textLength="192" class="foreground"> to quit all (short for </text><text x="232" textLength="64" class="color14">:quitall</text><text x="296" textLength="8" class="foreground">)</text></g><g id="g36"><text x="0" textLength="8" fill="#585858">•</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="24" class="color14">:cq</text><text x="40" textLength="648" class="foreground"> to quit without saving and make Vim return non-zero error (i.e. exit with error)</text></g><g id="g37"><text x="0" textLength="480" class="foreground">You can also exit Vim directly from "Normal mode" by typing </text><text x="480" textLength="16" class="color14">ZZ</text><text x="496" textLength="216" class="foreground"> to save and quit (same as </text></g><g id="g38"><text x="0" textLength="16" class="color14">:x</text><text x="16" textLength="40" class="foreground">) or </text><text x="56" textLength="16" class="color14">ZQ</text><text x="72" textLength="184" class="foreground"> to just quit (same as </text><text x="256" textLength="24" class="color14">:q!</text><text x="280" textLength="304" class="foreground">). (Note that case is important here. </text><text x="584" textLength="16" class="color14">ZZ</text><text x="600" textLength="40" class="foreground"> and </text><text x="640" textLength="16" class="color14">zz</text><text x="656" textLength="56" class="foreground"> do not</text></g><g id="g39"><text x="0" textLength="176" class="foreground"> mean the same thing.)</text></g><g id="g40"><text x="0" textLength="432" class="foreground">Vim has extensive help - that you can access with the </text><text x="432" textLength="40" class="color14">:help</text><text x="472" textLength="232" class="foreground"> command - where you can find</text></g><g id="g41"><text x="0" textLength="472" class="foreground">answers to all your questions and a tutorial for beginners.</text></g><g id="g42"><text x="0" textLength="48" class="foreground">Press </text><text x="48" textLength="56" font-weight="bold" class="color15">[SPACE]</text><text x="104" textLength="368" class="foreground"> to see more results, or any other key to exit</text></g><g id="g43"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="16" class="foreground"> -</text><text x="48" textLength="8" class="background"> </text><text x="56" textLength="664" class="foreground"> </text></g><g id="g44"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="24" class="foreground"> -e</text><text x="56" textLength="8" class="background"> </text><text x="64" textLength="656" class="foreground"> </text></g><g id="g45"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="32" class="foreground"> -e </text><text x="64" textLength="8" class="background"> </text><text x="72" textLength="648" class="foreground"> </text></g><g id="g46"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="32" class="foreground"> -e </text><text x="64" textLength="8" text-decoration="underline" class="foreground">g</text><text x="72" textLength="8" class="background"> </text><text x="80" textLength="640" class="foreground"> </text></g><g id="g47"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="48" class="foreground"> -e go</text><text x="80" textLength="8" class="background"> </text><text x="88" textLength="632" class="foreground"> </text></g><g id="g48"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="56" class="foreground"> -e goo</text><text x="88" textLength="8" class="background"> </text><text x="96" textLength="624" class="foreground"> </text></g><g id="g49"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="64" class="foreground"> -e goog</text><text x="96" textLength="8" class="background"> </text><text x="104" textLength="616" class="foreground"> </text></g><g id="g50"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="72" class="foreground"> -e googl</text><text x="104" textLength="8" class="background"> </text><text x="112" textLength="608" class="foreground"> </text></g><g id="g51"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="80" class="foreground"> -e google</text><text x="112" textLength="8" class="background"> </text><text x="120" textLength="600" class="foreground"> </text></g><g id="g52"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="88" class="foreground"> -e google </text><text x="120" textLength="8" class="background"> </text><text x="128" textLength="592" class="foreground"> </text></g><g id="g53"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="96" class="foreground"> -e google -</text><text x="128" textLength="8" class="background"> </text><text x="136" textLength="584" class="foreground"> </text></g><g id="g54"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="104" class="foreground"> -e google -s</text><text x="136" textLength="8" class="background"> </text><text x="144" textLength="576" class="foreground"> </text></g><g id="g55"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="112" class="foreground"> -e google -s </text><text x="144" textLength="8" class="background"> </text><text x="152" textLength="568" class="foreground"> </text></g><g id="g56"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="120" class="foreground"> -e google -s a</text><text x="152" textLength="8" class="background"> </text><text x="160" textLength="560" class="foreground"> </text></g><g id="g57"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="128" class="foreground"> -e google -s as</text><text x="160" textLength="8" class="background"> </text><text x="168" textLength="552" class="foreground"> </text></g><g id="g58"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="136" class="foreground"> -e google -s ask</text><text x="168" textLength="8" class="background"> </text><text x="176" textLength="544" class="foreground"> </text></g><g id="g59"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="144" class="foreground"> -e google -s asku</text><text x="176" textLength="8" class="background"> </text><text x="184" textLength="536" class="foreground"> </text></g><g id="g60"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="152" class="foreground"> -e google -s askub</text><text x="184" textLength="8" class="background"> </text><text x="192" textLength="528" class="foreground"> </text></g><g id="g61"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="160" class="foreground"> -e google -s askubu</text><text x="192" textLength="8" class="background"> </text><text x="200" textLength="520" class="foreground"> </text></g><g id="g62"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="168" class="foreground"> -e google -s askubun</text><text x="200" textLength="8" class="background"> </text><text x="208" textLength="512" class="foreground"> </text></g><g id="g63"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="176" class="foreground"> -e google -s askubunt</text><text x="208" textLength="8" class="background"> </text><text x="216" textLength="504" class="foreground"> </text></g><g id="g64"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="184" class="foreground"> -e google -s askubuntu</text><text x="216" textLength="8" class="background"> </text><text x="224" textLength="496" class="foreground"> </text></g><g id="g65"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="192" class="foreground"> -e google -s askubuntu </text><text x="224" textLength="8" class="background"> </text><text x="232" textLength="488" class="foreground"> </text></g><g id="g66"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="200" class="foreground"> -e google -s askubuntu -</text><text x="232" textLength="8" class="background"> </text><text x="240" textLength="480" class="foreground"> </text></g><g id="g67"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="208" class="foreground"> -e google -s askubuntu -s</text><text x="240" textLength="8" class="background"> </text><text x="248" textLength="472" class="foreground"> </text></g><g id="g68"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="216" class="foreground"> -e google -s askubuntu -s </text><text x="248" textLength="8" class="background"> </text><text x="256" textLength="464" class="foreground"> </text></g><g id="g69"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="216" class="foreground"> -e google -s askubuntu -s </text><text x="248" textLength="8" text-decoration="underline" class="foreground">u</text><text x="256" textLength="8" class="background"> </text><text x="264" textLength="456" class="foreground"> </text></g><g id="g70"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="232" class="foreground"> -e google -s askubuntu -s un</text><text x="264" textLength="8" class="background"> </text><text x="272" textLength="448" class="foreground"> </text></g><g id="g71"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="240" class="foreground"> -e google -s askubuntu -s uni</text><text x="272" textLength="8" class="background"> </text><text x="280" textLength="440" class="foreground"> </text></g><g id="g72"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="248" class="foreground"> -e google -s askubuntu -s unix</text><text x="280" textLength="8" class="background"> </text><text x="288" textLength="432" class="foreground"> </text></g><g id="g73"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="256" class="foreground"> -e google -s askubuntu -s unix </text><text x="288" textLength="8" class="background"> </text><text x="296" textLength="424" class="foreground"> </text></g><g id="g74"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="264" class="foreground"> -e google -s askubuntu -s unix h</text><text x="296" textLength="8" class="background"> </text><text x="304" textLength="416" class="foreground"> </text></g><g id="g75"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="272" class="foreground"> -e google -s askubuntu -s unix ho</text><text x="304" textLength="8" class="background"> </text><text x="312" textLength="408" class="foreground"> </text></g><g id="g76"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="280" class="foreground"> -e google -s askubuntu -s unix how</text><text x="312" textLength="8" class="background"> </text><text x="320" textLength="400" class="foreground"> </text></g><g id="g77"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="288" class="foreground"> -e google -s askubuntu -s unix how </text><text x="320" textLength="8" class="background"> </text><text x="328" textLength="392" class="foreground"> </text></g><g id="g78"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="296" class="foreground"> -e google -s askubuntu -s unix how t</text><text x="328" textLength="8" class="background"> </text><text x="336" textLength="384" class="foreground"> </text></g><g id="g79"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="304" class="foreground"> -e google -s askubuntu -s unix how to</text><text x="336" textLength="8" class="background"> </text><text x="344" textLength="376" class="foreground"> </text></g><g id="g80"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="312" class="foreground"> -e google -s askubuntu -s unix how to </text><text x="344" textLength="8" class="background"> </text><text x="352" textLength="368" class="foreground"> </text></g><g id="g81"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="312" class="foreground"> -e google -s askubuntu -s unix how to </text><text x="344" textLength="8" text-decoration="underline" class="foreground">u</text><text x="352" textLength="8" class="background"> </text><text x="360" textLength="360" class="foreground"> </text></g><g id="g82"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="328" class="foreground"> -e google -s askubuntu -s unix how to us</text><text x="360" textLength="8" class="background"> </text><text x="368" textLength="352" class="foreground"> </text></g><g id="g83"><text x="0" textLength="8" class="color5">❯</text><text x="8" textLength="8" class="foreground"> </text><text x="16" textLength="16" class="color2">so</text><text x="32" textLength="336" class="foreground"> -e google -s askubuntu -s unix how to use</text><text x="368" textLength="8" class="background"> </text><text x="376" textLength="344" class="foreground"> </text></g><g id="g84"><text x="0" tex |