pax_global_header00006660000000000000000000000064132444657000014517gustar00rootroot0000000000000052 comment=65481cb6b6f8bebc11077192c111a419b70625aa pipes.sh-1.3.0/000077500000000000000000000000001324446570000132515ustar00rootroot00000000000000pipes.sh-1.3.0/.github/000077500000000000000000000000001324446570000146115ustar00rootroot00000000000000pipes.sh-1.3.0/.github/ISSUE_TEMPLATE.md000066400000000000000000000006241324446570000173200ustar00rootroot00000000000000 pipes.sh-1.3.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001324446570000167745ustar00rootroot00000000000000pipes.sh-1.3.0/.github/ISSUE_TEMPLATE/BUG.md000066400000000000000000000012351324446570000177340ustar00rootroot00000000000000### Basic information * OS: * Terminal emulator: * Terminal multiplexer: * `echo $TERM`: * Bash version: * pipes.sh version or commit hash: ### Expected behavior ### Actual behavior ### Steps to reproduce the behavior pipes.sh-1.3.0/CONTRIBUTING.rst000066400000000000000000000011561324446570000157150ustar00rootroot00000000000000====================== Contributing Guideline ====================== Any contributions are greatly appreciated, whether it's codes or documenting, or helping out on issues. However, in order to reduce unnecessary works and communications, please make sure you read this guideline before carrying out any tasks. Pull Requests ============= Please follow this `general rules`__, and when in doubt, ask in issues first, a few examples: * It could be a big commit and impossible to split. * Changing default settings or existing behaviors. __ https://github.com/pipeseroni/pipes.sh/wiki/Development:-Coding#summary pipes.sh-1.3.0/LICENSE000066400000000000000000000022261324446570000142600ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2015-2018 Pipeseroni/pipes.sh contributors Copyright (c) 2013-2015 Yu-Jie Lin Copyright (c) 2010 Matthew Simpson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. pipes.sh-1.3.0/Makefile000066400000000000000000000010211324446570000147030ustar00rootroot00000000000000PREFIX=/usr/local DESTDIR= INSTDIR=$(DESTDIR)$(PREFIX) INSTBIN=$(INSTDIR)/bin INSTMAN=$(INSTDIR)/share/man/man6 SCRIPT=pipes.sh MANPAGE=$(SCRIPT).6 all: @echo did nothing. try targets: install, or uninstall. install: test -d $(INSTDIR) || mkdir -p $(INSTDIR) test -d $(INSTBIN) || mkdir -p $(INSTBIN) test -d $(INSTMAN) || mkdir -p $(INSTMAN) install -m 0755 $(SCRIPT) $(INSTBIN) install -m 0644 $(MANPAGE) $(INSTMAN) uninstall: rm -f $(INSTBIN)/$(SCRIPT) rm -f $(INSTMAN)/$(MANPAGE) .PHONY: all install uninstall pipes.sh-1.3.0/README.rst000066400000000000000000000155131324446570000147450ustar00rootroot00000000000000======== pipes.sh ======== *Animated pipes terminal screensaver.* .. note on taking the screenshots Font is Inconsolata, font size 24 as in 16x35 pixel per character Image size is 640x210. A sample command, where terminal at +0+18, window border is 2, terminal is urxvt, seems to 2 pixels as padding: xsnap -region 640x210+$((2+2))+$((20+2)) -file i/pipes.png .. figure:: i/pipes.png :target: screencast_ Screenshot of pipes.sh, click to watch a screencast_ on YouTube. .. _screencast: http://youtu.be/q_nYfR6CVEY .. contents:: **Contents** :local: :backlinks: top Requirements ============ * Bash 4+ since version 1.0.0. Installation ============ If you want to install, you can run: .. code:: sh $ make install By default, it installs to ``/usr/local``; for user home, you can run: .. code:: sh $ make PREFIX=$HOME/.local install Or any ``PREFIX`` you prefer. The ``Makefile`` also provides ``uninstall`` target. If you are a `Homebrew `_ user, you can install via: .. code-block:: sh $ brew install pipes-sh Options ======= Full List --------- =============== ============================================================ Options Descrptions (Defaults) =============== ============================================================ ``-p [1-]`` Number of pipes (1) ``-t [#]`` Type of pipes, can be used more than once (0) ``-c [0-7]`` Color of pipes, can be used more than once (1 2 3 4 5 6 7 0) ``-f [20-100]`` Framerate (75) ``-s [5-15]`` Probability of a straight fitting (13) ``-r LIMIT``` Reset after x characters, 0 if no limit (2000) ``-R`` Random starting point ``-B`` No bold effect ``-C`` No color ``-K`` Pipes keep their color and type when hitting the screen edge ``-h`` Help message ``-v`` Print version number =============== ============================================================ ``-t [#]``: pipe types ---------------------- .. note on taking the screenshots Font is Inconsolata, font size 24 as in 16x35 pixel per character Image size is 480x140. A sample command, where terminal at +0+18, window border is 2, terminal is urxvt, seems to 2 pixels as padding: xsnap -region 480x140+$((2+2))+$((20+2)) -file i/pipes.t#.png +----------+------------------------+----------------------------+ | ``-t #`` | Characters | Screenshots | +==========+========================+============================+ | ``-t 0`` | ``┃┏ ┓┛━┓ ┗┃┛┗ ┏━`` | .. figure:: i/pipes.t0.png | +----------+------------------------+----------------------------+ | ``-t 1`` | ``│╭ ╮╯─╮ ╰│╯╰ ╭─`` | .. figure:: i/pipes.t1.png | +----------+------------------------+----------------------------+ | ``-t 2`` | ``│┌ ┐┘─┐ └│┘└ ┌─`` | .. figure:: i/pipes.t2.png | +----------+------------------------+----------------------------+ | ``-t 3`` | ``║╔ ╗╝═╗ ╚║╝╚ ╔═`` | .. figure:: i/pipes.t3.png | +----------+------------------------+----------------------------+ | ``-t 4`` | ``|+ ++-+ +|++ +-`` | .. figure:: i/pipes.t4.png | +----------+------------------------+----------------------------+ | ``-t 5`` | ``|/ \/-\ \|/\ /-`` | .. figure:: i/pipes.t5.png | +----------+------------------------+----------------------------+ | ``-t 6`` | ``.. .... .... ..`` | .. figure:: i/pipes.t6.png | +----------+------------------------+----------------------------+ | ``-t 7`` | ``.o oo.o o.oo o.`` | .. figure:: i/pipes.t7.png | +----------+------------------------+----------------------------+ | ``-t 8`` | | ``-\ /\|/ /-\/ \|`` | .. figure:: i/pipes.t8.png | | | | (railway) | | +----------+------------------------+----------------------------+ | ``-t 9`` | | ``╿┍ ┑┚╼┒ ┕╽┙┖ ┎╾`` | .. figure:: i/pipes.t9.png | | | | (knobby) | | +----------+------------------------+----------------------------+ ``-t c[16 chars]``: custom pipe ------------------------------- For example, ``-t cMAYFORCEBWITHYOU``. .. note on taking the screenshot Font is Inconsolata, font size 24 as in 16x35 pixel per character Image size is 640x140. A sample command, where terminal at +0+18, window border is 2, terminal is urxvt, seems to 2 pixels as padding: xsnap -region 640x140+$((2+2))+$((20+2)) -file i/pipes.tc.png .. figure:: i/pipes.tc.png ``-c [0-7]``: colors -------------------- +---+------------+---+------------+---+------------+---+------------+ | 0 | background | 1 | red | 2 | green | 3 | yellow | +---+------------+---+------------+---+------------+---+------------+ | 4 | blue | 5 | magenta | 6 | cyan | 7 | foreground | +---+------------+---+------------+---+------------+---+------------+ Controls ======== Press any key to exit the program, except the following :kbd:`Shift` + :kbd:`Key`: =================== ====================================================== Keys Actions =================== ====================================================== :kbd:`P` / :kbd:`O` Increase/decrease probability of straight pipes :kbd:`F` / :kbd:`D` Increase/decrease frame rate :kbd:`B` Toggle bold effect :kbd:`C` Toggle no colors :kbd:`K` Toggle keeping pipe color and type when crossing edges =================== ====================================================== History ======= pipes.sh was originally created by Matthew Simpson and posted to the `Arch Linux Forums`__ in early 2010. It was also later posted to Gist__ released in the public domain. __ https://bbs.archlinux.org/viewtopic.php?pid=728932#p728932 __ https://gist.github.com/msimpson/1096939 In early 2013, Yu-Jie Lin posted a modification of the script to Gist after reading about it on a blog__ It was maintained on Gist independently for a period of a few months. __ https://inconsolation.wordpress.com/2013/02/01/pipes-sh-a-little-bit-of-fun/ In 2014 the script was given its own GitHub repository as a project which encouraged contributions from other developers. As the project gained more popularity the decision was made to combine forces with developers of similar projects. Finally, in 2015, the MIT License was added and the Pipeseroni_ collective was formed to maintain the project. .. _Pipeseroni: https://pipeseroni.github.io/ Reporting an Issue ================== * `Reporting a bug`__ __ https://github.com/pipeseroni/pipes.sh/issues/new?template=BUG.md&title=Brief+bug+summary Contribution ============ Feel free to fork and/or create pull request following the guideline_. If you're contributing, remember your changes will be released under the MIT license. .. _guideline: CONTRIBUTING.rst Copyright ========= pipes.sh is licensed under the MIT License. pipes.sh-1.3.0/i/000077500000000000000000000000001324446570000135015ustar00rootroot00000000000000pipes.sh-1.3.0/i/pipes.png000066400000000000000000000044771324446570000153430ustar00rootroot00000000000000PNG  IHDRUvtIME:l2ِtEXtSoftwareXsnap 1.5.9h2IDATxݡnTaaz hE !HDb -( H(#Vs:wf}V;!kyztm#c/vbK[_?F+Lzk=Uߣ֟]õRM,OKʷ{%z=ުַ~^ko!l}K[Uaw~{yٽob               yz"O[O mBmU98~?lppǯ)N=[}|Uup2_ibPyS\5E~r=#{d.~/e3i}WҧnT/E;gYv6Tߕ:^Wu03q-ͲDžk| ӵq]-^~o}xwow7 ^z;kﻍEh               y;9:^se~|8C/]jЛcG߷>zF-z{ph^r럅/e=;```````````````(iNzLW҂/dHK:qRg|o:TX[~^vBv$+^4bA{ܕ2QuN=ʹ__r,?ҿ-4[[,y@@@@@@@@@@@@@@@@yZO|N`Tó`hg Oz=T5:ƪU'ߐeD瓣sga               f~ǯY_=O8]WNu(xo8mzY/7-fW;|O  ,\Z`{Sh%ɸ \t ַ/Y{~9#f:W @ @ @ @ @ @ @ @ @ @ @ @ @ @ `m~v%_O47_~+~ck8}- ~ 4@(% @hP JB 4@(% @hP+A;CZb S;6;9 xx`07RiUcSm JB 4@(% @hP JB 4@(% @>u<`cM_z}Si%|ǫAhP JB 4@(% @hP JB 4@(%V^SmoUy^mOjUW=ҕN^ɓҞ㟝4t*-$U_BER;?m/5{CA4J{kk@(% @hP JB 4@(% @hP jewW|0m>m~v%̢D cN/?h;hP JB 4@(% @hP JB 4@(% Tm#jڋ` @hP JB 4@(% @hP JB 4@(e4ܱr~{G-7a U\~ @hP JB 4@(% @hP JB 4@(e.^h)UoqHtڑ͓jq|z49"vmJy#863FrK̗bqAhP JB 4@(% @hP JB 4@(%g IENDB`pipes.sh-1.3.0/i/pipes.t1.png000066400000000000000000000025211324446570000156520ustar00rootroot00000000000000PNG  IHDR+WtIME QotEXtSoftwareXsnap 1.5.9h2IDATx1N[aߋwhiRCCA DH쀂",& [ %1>;\Lc9f}-bwÛ8{:,X>o\|z}Z*}=K/}*}?MS]O` @hP JB 4=Kh4:ؽ:qd @hPM7;snCۀ*%&v||:DMB 4;3h3k :w6ZYqnTEǗv/,4i4\vr~qV3l)l+ |:|L"1G:nU{ Q'!@md|^4@?m>e|^4@(%640 1AhP JB 4@(OY6(5~\߱+]k% @hP J]u?>:{4@B 4@(5@ۀ kЁ6>#C4t 7gzgfZ 0gu^n=9u.}}rVΪL-!n^›N hR4 a/b[SFh%S$  J}hP JB 4݆hP JB 4@(%׾vOm^V6I5~4@(% @hP]u߫۾WA.wZ@hP J ܀؆f mN @W;>w ,!#M_B t-s2Bg_@WD;27[We+{r}>F;/דuRFo}-q_DXؤq~Skb ܻr[iXh)|}\ئ|m٥OdcY f }6@/Eci4@B ѴNB M0D4% @/tClC.% @hP j5}7i} JB 4@(% @hP JB 4@(% @hPf]B03UWO;ҁR) 4;Nz`b}AWUU A/uWrRiz av(m!;n @hP JB 4@(% @hP JB 4@(5@#ۣ~U&o>]NunO/zz7Gf÷ׯu;@'% @hP JB 4@(% @hP jsv89Wa*[T?M}Rt|\_:yϿEӞOYmǓӋza`^?[?DC)]^Fs5tM㟶^sO{>_zKhkz:tKBP JB 4@(% @hP JB 4@(% @ӱz$|`C=fg ~EhP JB 4@(% @hP JB 4@(% ܗar:%toڍ_NJϱs>_E k~Z{t/co\|v"[ۏWA^]nNӂh tUUvб|IJB 4@(% @hP JB 4@(% @ݞ^4kz=<6kW=zus7~o6Ҟϸ4@(% @hP JB 4@(% @hP j24[EǗ-=A͚AD_=^ X߁ޡ,룾9zZ'.UסNڝwЃ*tAm=5;/;/ B 4@(% @hP JB 4@(% @hP mIENDB`pipes.sh-1.3.0/i/pipes.t4.png000066400000000000000000000063071324446570000156630ustar00rootroot00000000000000PNG  IHDR+WtIME210rtEXtSoftwareXsnap 1.5.9h2 [IDATx_lTew̙3/--PtAYD& k܋&JantCqp&$Bv HQnDIHjkR*fڙa/,L9ssg?N93Q5 @ F@P4z2X[<-b93皙o ץ{~(~"}~^, Ou;u,e,ToS|G{~(d{#wIݿ ]Q;x}p,=$ ־|_ũئo.?И^5n=ny`ɳ~;k{zhKwN+K{jM]ۿY]ۏMd^=>q\gziRE@P440Nך>RŶ.z*:rv&96r,ԥcrvR!1[ n |WOyU KlqP4E@P=e9#E.iZ3M[nsX>WhWq^0I7{P*-1:{~lٗ[:*,KNs'O/q'HSYmn >0ٚ4jK3XQ:i񑑫\:ZUZ!;tuIGךُҖ}0~?zͨ9r̂SF Cg>s'".ۺl5Q=hnyc*_4/Pk_nޞ[  B%8>iZ֏՗?vѴ֫9yť[/e9tO%< O-=??#3 ZgݺHgM|@("@("@(>χǎBVܺ)zW  B  B  B G,L_:@("@("@(rF- {|z$~ Ofx :ߝ^l)cy;|=>~f93=_z d=Dܭ@{(ۗiw! =jgeVq-ݍGS> e{Z3ۏr/'I}/N7}ƒy5ęs!w덀5n=ny`ɳ띖8@("@(P) J)ׁ"j)zWJnuKJw~zv/,UJm޹NTRJ3T7-z=R) ĔR9KRq=:gFIaRhb"@(nxFdyZ+L)5tgq*?ѰRg^wf+ ~#u-Dhn}f_Yڲ> g֮~v̂M>t:a"@q㍾7FgõC/{~]͟oaM۶~phf׭-:y6Vq-ݍGms^s|PkzK3̫'4 e~ba"@(; Mך>RŶˣ^%Mi*~-h؃vԲJ[;Ϝ>Ӥ/m~Jk͂e];@N؃`Uihͻo.?X~>f׭-:y6Vq-ݍGm.K3̫'4 e^B  Bfwɓ^S)Nُnw5b*5rE@P44VL-7rӖVw>k|~OkYlCף"z+*6 ҖNGwQ4wЀZ71YڲZ&uϯU_W].8P[о; MI[Y;tt=^8@(bP/,ZoZ7^G雭9Z4wr B  B  Bqp۱\AP4E@P4E@P4E@PUc "@ IENDB`pipes.sh-1.3.0/i/pipes.t5.png000066400000000000000000000141511324446570000156600ustar00rootroot00000000000000PNG  IHDR+WtIME8囬tEXtSoftwareXsnap 1.5.9h2IDATx{tTս}3yeB; ЫvDtwѺu{[-*R>RjH!$!&33qBΜ$3{O`̏旝=gGj`v06hF@0'Ez.)%MKx1b3ܙ_"JTJ˙yu`IA qO7U Ƈ/V$ yO$XgCI^G JU j&S4_?Cf -9*_ kuU(m9DBU#\J_kB/knyu!$})}I᪺I=nٽ齔)g}z>͇qsʋ-:{w3jtلsJG&feAJ狖/&s5B#/x@հ2)nBo !Ӏlsm▙+;B-S;ުT_evNN!&<>=Xb6B4W/[(8L+^E3cR( (ilѫr9q2W+]r8CM.*i?t z0O*΄ A=Ql!|iziSt08q{lwKgԈ?橞6.a硿L]jLx%,㿡?lrÔ.A?#|&ZʝcgQ~,R`rˮsSsZ$M8Ǖf,K_;\|]:8?$lW*ʎEx|ެ?U>{Cˈȅ?Uc|EX!K/{QakTX3#˭E WSs-{qfw nX??#)/# tL w:9٥4REz7_lz{{A_hŒ8w63ȶqc/-:9y,YY{'$xH#Tr_=W>GU&r.SOybtXTYG)Z#ω|=qu&U3oyzyx$NAֻS{ rrJx JruE6)wp=vꫜ3B}~Yqm޲Wm7hΧtywN6.ǏR? |JsM j5u笫Y Wظ.ؔڃt*ڮ)Bnu| ?p DM/dv}ўpgUm{g?n.*g =8pX)OMC z1OW( GT:ʴ!#qvG*~r:ܪEjWzS V"MrB6zw(?~pImr 8.kE9bv}ӴZM\škw0j!~ԀҴ^??,wNwfb)xcN!Dl,ৗ-c{։;I^ !v<~f}OmG __<co=eRgMQ;Lz?|D8{퓆[#iH"q":n5RL#1|&4o9zOF#[#55R24lD{mݕcKl{rh 㞑\ N~BFFdkK]@_l8'ݰ+YgDk})frl$uTbk Ǿatz3FZR-vo /0'J fHjDkV ҔIż ՈH:ORȏ Ol7;w':5'Q'3YqB#[#۹I/lg݋ ~]H|&:&gr+*N}J@وH=~YïE_ w_k'Z#ZXܟIF^hI4*ЄhGӐХZۿ> B:^^4)D4Mu:[#%c$+ѴMR-C>Z'TTBIf5ҥ yc@sk4@S }}Da]mQ۷)?٭4U>5+{jw7*ވҕřBǐm'xkK%-Rrt#ўn&hF=;75j50a18f5`b27be:l[9L nBީǛ h~eQ0ߘe-미"l:1oL&0>=YPo/23֔ Od#dV{N fT2}|"7a9rfUz%k0U0XN#˙hLoo3~ٖLww?R:~XhPlbNK+|cVlnU#ktiq( IlUSjAH)7@3dD@L `j7U [F@fňV5 ti-#@3!U͡HX|`z|(LHlU) [@/Ut -@ӧC/(!dsj 02tdbD{)x5RV?d-@"Bm:!@`elq0 Q]J;VB` 4P (hFL{NAUVT!Z\e =I7)onBo !Ӏ< 2Ohb)z>hD͌t&S?<25yC2 kaǡ*I ?|t8|W>%H<[*7HM#ܶzkw]O74{:hR=?>ןqd 6;G@@jtk kJfX99uvL]>#=8:&j;F {R`n>VɄl ;3E6^'EwCO'<[&&=.w*&/$ [S@ب#/7C$핰Ww |>#hۥ3}jDTpg#afN~lAX%iddV UvʋI#ўKl Jwc򅤠@5,/"Endۋ &/3~[`vԿϋ([mda_}̀#tkW}7}lDd|)8-v9htosƯ{VtQnmaqY{/bB1ߖ4.|mf럐5*l9JEᡱWzB\w?\,+]ݮ/x m9GJd%aޘa<vYj/zp?7Ԙd#%ܢ৓. +hPtQPV/pv{_D93r~)xi/g5/O&yNČ"r}Rʠ@}zgOzF2ȵq>d>vJ-zkO6w6  LxcX{]&OR[e~.Nw2hol$ڿ5LS(E^;j,-tJ&dcHϭΡ|;i>7'FJs~[+'/ X܁P}b?G{j+!b]nhO7&pYbOZ2ەPaٶ<=~UZҸvEՂfqIlt(s03+8_ZN1@Cv}>iqOz1]\.HY>^Jlš  o6 Ug^CƢuc}ҥ$F:|7|~׏<;3KP-$*׏]̼l7KiM$`PG%o_P$B@$oy!ФhjD_4+>$z9E)#'g(]3!c#KӯϮqULajS?p[5Ve9K;I6:Nc!6ɼF2ސ>(hFQf Q(B` 4P ( ' m[h79$y! |<=y+20hs~evդ߂ΫÝEOu;&|v2YXL9okjV, 4pUTog}cy7X;̟>Ҙh˵[fdmڕ_njOM&|q<jvjV,` 4P (hF@0 Q(2尕z$'4*H?@-,yCrXxX (hF[xX ` 4P (hF@0 Q(B` 4P (hFqv)` XA0 QހIENDB`pipes.sh-1.3.0/i/pipes.t6.png000066400000000000000000000041571324446570000156660ustar00rootroot00000000000000PNG  IHDR+WtIME;dqtEXtSoftwareXsnap 1.5.9h2IDATxKog.oɤ$"@&B*B* 6eY*wovSaJfC G A⤹;6u{LpOgk4*

=WdGl'%02Txs|m̄K/z{~Z?Oc@ܭtj᱾|ZjV갶mDžVԟJlg۰}{8d ۵Иiw^UO4A_/E4W7-pMښJ|y{~}78i/OK;VqoوE@( Bh@P" 4E@( Bh@P" 4E@( Bh@P" 4E@( Bh@.A;8O~|6fs>^V8dJ{/_ٳRH]ؖumf8i26{r&o͸iޘR^yΞ\q2Txslc9#:^F~oj}/kV:X_]d>bG ޯݢe+ϖWY{Mwޮ-L;b2@Qw{|oوE@( Bh@P" 4E@( Bh@P" 4E@( Bh@P" 4E@( Bh@.A8{14_4-h}t +O)8^58'޸3zV>ng&=x|;}.nam ?R+{+<~]qz|G ޯݢe+ϖWoY][vz\e q}?ښJ|y񍿯;?j(~a={CMF|8@( Bh@P" 4E@( Bh@P" 4E@( Bh@P" 4E@( Bh@P Кz/Ky#ġ0~~H\qreGl'%0J)7ˤRqύޏn 2^\O&9jV:X_]LaRFnǭj5z갶mDžqY鿟#qkK1N8?PA_/E4W7-D߰*Ikk*]}?G2y4'E@( Bh@P" #L}͉IENDB`pipes.sh-1.3.0/i/pipes.t7.png000066400000000000000000000122701324446570000156620ustar00rootroot00000000000000PNG  IHDR+WtIME`);`tEXtSoftwareXsnap 1.5.9h2LIDATxkl[yyxf]m(N!]>(0`fKPl@tE KbNbhacmΖX؍cDz-[WR֕xwH EL/ӹ<:zt{I =A=|B@0  (4B@0  (4NJFQKi@8O&+yP#aI[XCcUwEKd8ZvVPUÈ6A]vΔ/|<}jӞ }Jɭ)3&rha,?1;hhn=z\>Cŧm WQJ?>q;07Rw :3ʿq~/6XUB#;C /_7Wɒ-eo|ݲzƕ{JOV ߽oG3; H!}ν+WoW3w|\߼}sgK eꭩg5U\hL'Y#%}ɿZ?z|ؤ ݶ [W+PܤA7_.ק ާGX;b> <_/.Kvo]zz6{|vnr}Ӟ3!zG?`]%COnNR8/>r;C,݅S˪_Z{ !$TU_ xczTh^WF+w{j2hDcq~zNw4#Ӷz{ٟPy U=CzE~oXkI8QѠ%1K<޳MTei9S[ K{Nuu[hKd'"TF,6F!`QhF!`QhF!`QhF!`QhFi,#E45]SZ4Ӧ,ZR.˷c'|yϔ"Jkc;5m 97>~ÚYDbv\o|'aSߑmCQmۋZ{/&Q|eG{uNpMP8^?[wQJ8j{8DW5i)UKW[ng_lݑE_tWG]j}ktdyzz 4~%WWRI掖tx~ywQ2=/^N%kAQ1rHI|{=_$TK%"+l05BxIIF k/@-z^! $꧔biQKR2ymv5˺GВk^oM͜vvsw QKzNKfwTR2͏UcQd fOXte-=mhrV?і63BIoROP'앱/d1;PPN@ d*5:-AֺR/5A_' 44o.Y3 *z0;w6l.92 Pzz`\Nw[;ޱ{zಧS̽o6 t=bqΌغQ3WAlvBl}|Ut~ewWoqsgK eꭩg5U\znwfl5B{VJeqǑgXYɽXZC/Xݼ =Z7UkTKF's?$ڹoCwoyF+GYQfEHOz*ԣ)p1p׻۵aS{f<08swԹ"&X?[E9;knUf?Nn,PԻAtmA=?gWn;ZK:8l,P#,~v c1W xհL܅TKm^[;.Hv?9O89a4K~x;j!^WFeVZ z"͂~1uGThi9S[ K{N &kGET,{~42QF>`QhF!`QhF!`QhF!`QhF!`QhF!`QhF!`QhF!juy8J˫'՗ [kC heFi7xo͗[O_J/sgˮ:gjZeyRmc:} _^qԛFM+\Snˮw|:!J?l,ZC/Xݼ =Z7b6"KÃ=KŎ {_;ج(Z !IO1CyIH ,aSEt4 %ӆ oE {d!Ssq쭢ޜ5a3 /;Zzzxxe 쬥􋜝ϝKB3n4N{Wx%;{@q/vϊc=c>ggk5lA?elʻ;^g/8^%_2'g+--J(,dgǧEIN}Xv|[X⠚ilEyel;zPnj $T7gccTӂs&A._e^+.Iȅy7nH-)w%^b99h1rOb|iqWRYqz=@q|a!`QhF!`EcŭXIENDB`pipes.sh-1.3.0/i/pipes.t8.png000066400000000000000000000103241324446570000156610ustar00rootroot00000000000000PNG  IHDR+WtIME.<8tEXtSoftwareXsnap 1.5.9h2hIDATx[lי37Td:-&KlS(\7]#C @b@)Ч}h&)^k#&-\8 MkHJ Ȓ%Ku(JR9}J!Gfr1c4|#B( (4B@0  (4B@0  (4B@0Flw9#$ЏθMVKh&짶qVu@$f :ܵRSnGJ[r0R_Slbv2yoQG겫lD OӡӾe <oݓV]; 6RGB@0É*l4B@0  (4B@0  (4B@0  (4B@0  (4B@0  (Vi^lz7dj'b zYdRTfז޾ZZ*:aD_cwNBBXA!iA3Jr+ް2[?XOwq|O)\{tB~u]JfT6vն[Ső~Q]m5jQ^ qlT:p:^umԯ'(v` hIƦ i ͵O?\BX@{P@>tZ:gCvarʀ: <|d$12%`Q5gۦԟez`_Ѝ_;eO==]'dn;P<-VCQX-sCDž~LuO=~.SupD^Wκn~z=1h+du.ďh@?m;z$*^w/Ru]6_ (׊t0R_SlbvBKn^W&yoQG겫lD@7:kP] @@=ie`#\EqjWE%v TUKZJ ER)b&5y[8[}%~n?hWq Bȇ}i@QgaGRgrtEم|߯ !^ ~;H(ݾVwʳ1I?$6`6?):1F#\hqF0XA@Ff-xJ `/p4RF#\h(F#ˀ.ԋHfW0ien3FID SԷЛ]9p4n.4tXȦHxՖHcٕmB,K[W?H&'wg!u~f!DNDCn (jC ߗzKb7`/0y&S48}vP`QhF!`CcAw|c&_'6|rԓzYdÒk?k! O𷆆$vClķAB}g%}yV7اWV5QfGFܻG)=@Md!h)AChCx uJ=97Z[ۏ&dOQjX`ІX}& ONQD[VO Ru|v:65)rr~;$ > VYw+~*8x랴_VRgKGOr[Jr!1^vm!u&vga,Iϸ[-Ut(_Wp}0þnX8 7 !vcooVZ?/УOc gk>ɹ v0R۬hn2{*$̶~_`x54'7-ߪR7M <]O|$_| +D}׉RщM Nwۙ_(עv0qƹZVLEJBSg=m>#ԋ#72ƣJޑsM|rޮ0u8F{RBD3 IJ?CJ`uu IƦkmq9uwI=Azi wӜժԑ? &εnBFmoIu>i:/;ܵRUgrlU_G%Tt&3ۏL_W'~e7&Pxi_sh[6_ _NQ?wlG&d5ܹu#EYۏ\H *Gt1Gvf/-a'%w0ێ >I۟q6ZGLjv8J(X8<.Cߨj&9ˏYmp˯|͝@Rk &`I.|ŕ.$_L6cZ7ӳw1~s[6Fɢ8wZ;.AhYFE'>㇞tIǺFc9t G#&1O |Q(tle?zG#+)JoPzq,/WZ/ӯ> &ܻwG~q|[vӗWn&-t"Z\T.L} jRp;vAnfQ/@*H-iZ NAqmt0ƮT q:j1qXY#0&mAd'w@S?Z48jlhc2g hjcd2U?SVS$wd 4@@ 4D[m_~SͬӖcY9ܲeK~϶Yi;rܚhrYSr~ۇ_ƭ@@h 4@@uGA.Ο b}}= ASn޼Y,ǯT*ϸ]?SOzg' KKrf0c5>~ip_mżUј!Vl'n?iǕ>i{oqh-hAR^yOޖ&<-,HR>/֩۹zj=onOGҦtWIң)zY⢢dm `Z]eݵkn;󫯾/'vwqRM)夗)zY}HR A1֭[}]RWv}I=YoNٲʵ@+wajG~\yaaիW?R:RAjIe8 h 4@@=kژm}M5HrRK[{O~9-cJݹھOxܖ|HcW-Wy'8çXelَ[68rmq7' uO-Z㬟=q 'p>@F@@h 403}z}y۹᯿Of1K/.tpIoErux[ gG-|Ν;vGTU]ʼCsW.^ڷ;U?o]ʕϟ7d\reܹy)tݹw:2-yiWz(GSVWVV0t:'~c/^̻ډNe畟va{*HR(IO'n_ժVV4?0ܜ:?D{|&h4Ff(eW 0vӮ_[ ^?ٕJ3#T>glusR֓'tSPV ՓR ֟hk^[=('}ׯ7fc"i(d$ٳڳg@@@h 4H|Ƨ?aSBZmmmmھݖ9v;rRKObK~϶7|}o6zd];w^ۗioے~ϐrO,39rܚhrYVemޭi?[̗8eqkk"pQ'R~ϐ|"@@h 4฀ XXXH{=7$K^R>6>g0qJ%ߠ^?zK&vT(D8;;;8cL짤ϤgR1Ɖ;Q ---9C-gs #hjkk)02-H+V_`yIsseŋDIY?M鮔vG Z}<y r~( 7yWwsjql$O~իǏ>-;Pp؀Wn_MErnANzcJ% lo RK*;N!j‚ p]bn٬,^]\TxI9rOy:Zj`[= lmA0ps^qض`T@!Z*GF2Y?k3_꧱1YO{]@ h 4h `tPO2$$ (IENDB`pipes.sh-1.3.0/i/pipes.tc.png000066400000000000000000000345521324446570000157450ustar00rootroot00000000000000PNG  IHDRc&tIMEtEXtSoftwareXsnap 1.5.9h2 IDATxy|[Օ}v[}OH--LY۔:-P(a:vZB2Wt:t`I(ـ@lNbDZM,[[==ɲ,[6WWGOw={/+AAZAFAAAr`A\H¯U$@:OJ,vPfB8U2A'75P "g lr7Brl5pes1e֖lV A8o1fJSϠS`a3T:eW*ca/o˒FBXb6+J ŋ s!2=.+! չpyz\.QʔX3MMM$pyO ;CM,_tQ 5=i_D@JgOJ|۲p ~9ὣfrg0@m_[WL"(pM:*$)-Uy3}l b]^ =5fz`ˎ)}r{[:`Ţ Ws|P+oXc0^%m931N3w3Dz5~~ceH+6cm,FyB๷eYHcU ?',ʫ:=hXUdSCyM96aYČP"iO\x홃fCrÚ%NZ`_ˮj~Z陷HQz}``Vӡ_-u|hAc).ll{L\Eݲ/\6rW Sn",s92c}TL`^uqa%P C̑ǣG _ zvVV$V(4Ohgff)RkHWR1e ":]15L],CD^ḭ6rskiLueRi"JRgo\d2XLpRd%mi"6ψy!{f@ p^B|ewv>Mrih΢Eغpykp<DetA$z۬vViUlrY=sq<{?PXR=qR>M, X__cdgsn) <c}Kn3r5D#EbVuA1jNѐ;u*vm.-Wݷpyy$_W1e5!p_7.mjstC\ۺ)%KhԦf%n DVgeԚoC WWMl3 DZsk6̑DI/Fnq}dϴ8<#wE\y$kY1h1Qk 0U(&Wہ<#@k1#*CJOWZܗ@2F/f|in9!a4yZRN_ku,sk8QBT~hx_ՙvli$D^VY#׫;CЈțDḬ@bDn>kS`EQ$Z(J!J D郞lN;<}IdF a pj~d9=}h ޷rHaŽέ"1³9i 5$p{/ʵ:ӎ.>} }'uf}U A#}|ǹbFF}5`w@_x m7DhQ R##1h>weϑc{˵ӗ<}Y}ànkSC|guci=22-@`wڊG%hQUj38<6& F[~أZ\VK4l]ўx:" L`)!DV{~Ȼjk {"Wn;[U"TPdTJ"@ohu b{%eX pD֋@n m ,,l6<1Iλ\~=x+0T=%7?KW'~ [LCz+(_8$ F8cTϝ[]_I;}i-@=73\ = )| ӭ%z*=B`tt,?wd\AR[AA2 A$FAAAr`AhA$FAAAr`AhA$FAAAr`AtI(Э1a*&Y+N$*TKm"pi,1AYPDl!E;ˌ$@sL+M >N 듪<trS?͓? dnyQ\ hW2rGa*mpk`@V^_b6{\?M&B7y(6-{tXUpV(>?8*K|:}M* 'ɚ>)m5*Y_̶~ie /@'3)$î+?h:*$9Liy$ %k%/S:Z֦n{AS`>DEhY tl:{pZt1}z}JmٜY?=wY553+`ysG& sgxo5xſws+=7ljz%7}|Ҷ;<,sl$A3weS(v;bdhW ʾnk4'SG8BRWatt|O [@<`h ̈́73|+ y_ϡOb+pˌR)E{05T8.M-- 1G[Bix:jUe%=(/dpH u^ލaR c&,գərb%;, S(\>%/$QL|֯;j\C\(D@C< 0wy31#glȩj{D"8g;"W']z*ԕ`6?9h[ƚ g C=`w}\f-xOQShj3*UyE%yb !\kA8:fc'| oV C#h.$N <P>UQjNcjQ%=ީ.0z D9v#$/)+}Z |thNT/g17\nvNuy4H̀[;;ad"4=Kϭ5b JlВN:P>Uӯf5~+_.iqŤ|D(gFY|a'gxԅ|>z(jGpkn\XBQJl#L2L;+rE-MXY EvCs ^MJCں{N.Zp{G*\y(*mw|sPZR?g_VRd%\ziXd_wb/36Ț uK7X`ϛ p5wAFSg j?~V "])O7,fC|B+䉺<]oS*%VqT?D67T_?~@۾' I<Fru(&(C`s]?}}nwʧ/滉QO \{ FU~{DV޸,-Bm{Wm"Q Ұ<M>Uz<-?68k9q=3<8AA A$FAAAr`AhA$FAAAr`AhA$FAAAr`AtI(Э1a*&Y+N$(l-$۝Rx#$&ϑvìzh` yn'O!پhC/BTIQ#FY! V'E,Y=lp˒FBcnk#R`@Pp:GJ.Jg W Ů/~VFl > = mJȩȯa`gHcܳx=(gZL;=.('%*t8M$)m5*Y_̶~y@C`MALiy _6_}r,A7{ћazU6V&03,w|T{Q>ݺ䕿;(3oiY`}3z}۾0oʛΠV_ǐ;: /={Ų㙍: A$N~^)4Y:=诜ƒByw3O7WmY}Fb4x!!{{[ƪ~vX_YWU@7M\-ޝ"^E݉!<&IpaYČ!qXם7vI/Ϋ/լ/,]h[Nx4_ 'x,-H;%eoU?[hu}``Vӡ_n`<&~T;futM-pF}2-TW Hw,J<_{HЬ/2p6d @e_QQ^ٯ+1M, Xi>Y /57ai4@H6#]3OLt#(F}g4}=u6\u9WF6# 3w<'Rm&" !X8$Q.\0ybC|IBOi(<~U&6;%bYaɴ<DZsk6̑FF6YY7z> {"4|ѯvjXOd"-;n0q0WtWĕG&Hx!ibjGao@!X(e\h9Dljx5L g.>D%N2Fz4~4mN1F4}ϜEI>USԇ4}FsE{>%S˰T\x pޡ'쭖TpWZ);N{ XhjT=-qC^!\0]IDATv4hd6 -0ZlȐSͪ5n:ee1EǼN9yĞ&BJդ^r2 +'pgYfn}-8-U ~?a E~eM*Aw?vgBMV$zvw8g>8"t-mnk`Ѣ\A(\^ǗrL)+1 ww8>qvJAHf}JEz!A2O彁@}ZuhַϸHfs1, AiP(ОSIw[OX](/V$'@Z#MƈdJLiΰJRՖ\x) s. K'4Ab(S(}`x2tiZەiҽGZ'~I룡tk@_t*g|-}G[$w)<$?R-mՒ1`x}l˟tm)G +HMVC+'E&BHjkPETz©X! ݡ &'P,gAL>GOvio[|bi'x1O0G\kF=x7KC':%I> ;E}p$2YE(àGxvs8F.}EihϦUeTjk \>K B2| *KۆaGv7NjÃsE\4 }\m뤳HI>Xߓ fFɴ#mޣ)OveV$:6۝iڠ Ӑ-;mx^ >p$ʺ)͵**bg{q׹,`EeWR01- a0&T Td<$e{98F{-(hb`OuX/YX3踷Xksri}^~ΡP0}RYY 02=HX[\>6^IS$f5>?vț|&<ɥ# ۃ2 ӭWC^(+Au`Vk *t!Y[ˌ$}=2g./j|i?~ &_>W:")!J{NPa0uDnA(# H@  9 0 4 # H@  9 0 4 # H@  9 0 4 80Y(` yn' *ʧW~3x7=LEH*]%p"OU~4ԔsxY8[HOFZwE4R?ŎFBcf#R`@Pp:GJ.:mW03$SD>Ɩi$4"=/@%&ؑ*t8baI(/opG48JWKbgy}]f+m5*Lc韪|,bs) Ȏ}`C` )-MU~CsXxV`Fo-Xh7A!w+t!r_z+Nz:= 6|>%/Xd7}2J >k=Xhp⅄xmƪ~vOYWMșfXם7v P򓖿2F;,1iE=򍶳i_^_5回c"g^J ڼ@w[m:m;Ȯ-R_cw8t_2D/tfgKt{Lğ4odj` w"Lt *pͥ=?.OBDYUᬗ'~4Q3\uR1s#(W:*@_m{O3?hS[ե<3#KxSƈmn+N`W̛" 18.`Z%E)嬘U l!MLñܜڸJTWQvG%?.K8şW770ԨW4y.<ű/~mP>s7f?_,ZD7'(o6J7]ѥz_z۱"x傳\'te=x=HnwYmVc5H픵wA.B`lP>sFy> ].6Y ʟe4_*ooq׷^rT8BI>ޟ YYİTu'@f% 8+|z&> z%]&SMFnQ#-8f>Yr_7}2 DZski Y5eܪ[=h9(Fs>\hѸ̴>igepMI{⾲b{%WG̸6 <#PL` 3yF0Qzc$GT%=퓎KW^iq_|i׿g}74jjkO;) {e>,0]*hЫ/=I5ц*u{ =r{65ob8[`ز!Uk ub)XǼN9yĞ&Bn7r'uw7MLòZp[\c7+idSAP>]LM3=ZvI|G 5a$$?#yU9{-4F %dxgcMg72rEiN5\]:AY= 1|3b=am?w&kWOPH \" _0LlY1k:3B!c3RJ, ;"W*&r|"r[SLl,ɮz% 1d1;F%YOvـ|XdW> =5Fkm%*O-pƞK=̎ڢ|zѡOCO'"N+!JLl ݧ;C.Iړ(ү#_:R (}3Xߓ/# Os_{tZI۲Ӧ=/AʧJ?|oۯ: mY!MUH#\mAcvn$jcE=W1M.W8T,8=(^T7ǒ@T.8|I>dK{W/qqk7?x:" L`)!xձOSź84~{զ{h,ULTna:1CʧJ?-mz3j+/]:x{n9jvXv\_19듫d}}/;)6o|@8bW.Gr=U#])$\4id*bOQ~٢#5heq pS4TAʧJ?0O<_58&[gO]W][]6׽o_P|^pïa­vV?6EKsĠn ;Ȼ#r^r`+RSFb'e=&)=gIȕW/¯"D?#ٶrb66qs\SO.<|C܃O;qy 4A/HDzyTn1Zo  Yf|٫{H]2iQ>%£7OEms sets[][idx] = a*4 + b # 0: up, 1: right, 2: down, 3: left # 00 means going up , then going up -> ┃ # 12 means going right, then going down -> ┓ sets=( "┃┏ ┓┛━┓ ┗┃┛┗ ┏━" "│╭ ╮╯─╮ ╰│╯╰ ╭─" "│┌ ┐┘─┐ └│┘└ ┌─" "║╔ ╗╝═╗ ╚║╝╚ ╔═" "|+ ++-+ +|++ +-" "|/ \/-\ \|/\ /-" ".. .... .... .." ".o oo.o o.oo o." "-\ /\|/ /-\/ \|" # railway "╿┍ ┑┚╼┒ ┕╽┙┖ ┎╾" # knobby pipe ) # pipes' x=() # current position y=() l=() # current directions # 0: up, 1: right, 2: down, 3: left n=() # new directions v=() # current types c=() # current color # selected pipes' V=() # types (indexes to sets[]) C=() # colors VN=0 # number of selected types CN=0 # number of selected colors # switches RNDSTART=0 # randomize starting position and direction BOLD=1 NOCOLOR=0 KEEPCT=0 # keep pipe color and type parse() { OPTIND=1 while getopts "p:t:c:f:s:r:RBCKhv" arg; do case $arg in p) ((p = (OPTARG > 0) ? OPTARG : p));; t) if [[ "$OPTARG" = c???????????????? ]]; then V+=(${#sets[@]}) sets+=("${OPTARG:1}") else ((OPTARG >= 0 && OPTARG < ${#sets[@]})) && V+=($OPTARG) fi ;; c) [[ $OPTARG =~ ^[0-7]$ ]] && C+=($OPTARG);; f) ((f = (OPTARG > 19 && OPTARG < 101) ? OPTARG : f));; s) ((s = (OPTARG > 4 && OPTARG < 16) ? OPTARG : s));; r) ((r = (OPTARG >= 0) ? OPTARG : r));; R) RNDSTART=1;; B) BOLD=0;; C) NOCOLOR=1;; K) KEEPCT=1;; h) echo -e "Usage: $(basename $0) [OPTION]..." echo -e "Animated pipes terminal screensaver.\n" echo -e " -p [1-]\tnumber of pipes (D=1)." echo -e " -t [0-$((${#sets[@]} - 1))]\ttype of pipes, can be used more than once (D=0)." echo -e " -c [0-7]\tcolor of pipes, can be used more than once (D=1 2 3 4 5 6 7 0)." echo -e " -t c[16 chars]\tcustom type of pipes." echo -e " -f [20-100]\tframerate (D=75)." echo -e " -s [5-15]\tprobability of a straight fitting (D=13)." echo -e " -r LIMIT\treset after x characters, 0 if no limit (D=2000)." echo -e " -R \t\trandomize starting position and direction." echo -e " -B \t\tno bold effect." echo -e " -C \t\tno color." echo -e " -K \t\tpipes keep their color and type when hitting the screen edge." echo -e " -h\t\thelp (this screen)." echo -e " -v\t\tprint version number.\n" exit 0;; v) echo "$(basename -- "$0") $VERSION" exit 0 esac done # set default values if not by options ((${#V[@]})) || V=(0) VN=${#V[@]} ((${#C[@]})) || C=(1 2 3 4 5 6 7 0) CN=${#C[@]} } cleanup() { # clear out standard input read -t 0.001 && cat /dev/null # terminal has no smcup and rmcup capabilities ((FORCE_RESET)) && reset && exit 0 tput reset # fix for konsole, see pipeseroni/pipes.sh#43 tput rmcup tput cnorm stty echo ((NOCOLOR)) && echo -ne '\e[0m' exit 0 } resize() { w=$(tput cols) h=$(tput lines) } init() { local i resize trap resize SIGWINCH ci=$((KEEPCT ? 0 : CN * RANDOM / M)) vi=$((KEEPCT ? 0 : VN * RANDOM / M)) for ((i = 0; i < p; i++)); {(( n[i] = 0, l[i] = RNDSTART ? RANDOM % 4 : 0, x[i] = RNDSTART ? w * RANDOM / M : w / 2, y[i] = RNDSTART ? h * RANDOM / M : h / 2, c[i] = C[ci], v[i] = V[vi], ci = (ci + 1) % CN, vi = (vi + 1) % VN ));} stty -echo tput smcup || FORCE_RESET=1 tput civis tput clear trap cleanup HUP TERM } main() { local i parse "$@" init "$@" # any key press exits the loop and this script trap 'break 2' INT while REPLY=; do read -t 0.0$((1000 / f)) -n 1 2>/dev/null case "$REPLY" in P) ((s = s < 15 ? s + 1 : s));; O) ((s = s > 3 ? s - 1 : s));; F) ((f = f < 100 ? f + 1 : f));; D) ((f = f > 20 ? f - 1 : f));; B) ((BOLD = (BOLD + 1) % 2));; C) ((NOCOLOR = (NOCOLOR + 1) % 2));; K) ((KEEPCT = (KEEPCT + 1) % 2));; ?) break;; esac for ((i = 0; i < p; i++)); do # New position: # l[] direction = 0: up, 1: right, 2: down, 3: left ((l[i] % 2)) && ((x[i] += -l[i] + 2, 1)) || ((y[i] += l[i] - 1)) # Loop on edges (change color on loop): ((!KEEPCT && (x[i] >= w || x[i] < 0 || y[i] >= h || y[i] < 0))) \ && ((c[i] = C[CN * RANDOM / M], v[i] = V[VN * RANDOM / M])) ((x[i] = (x[i] + w) % w)) ((y[i] = (y[i] + h) % h)) # New random direction: ((n[i] = s * RANDOM / M - 1)) ((n[i] = (n[i] > 1 || n[i] == 0) ? l[i] : l[i] + n[i])) ((n[i] = (n[i] < 0) ? 3 : n[i] % 4)) # Print: tput cup ${y[i]} ${x[i]} echo -ne "\e[${BOLD}m" ((NOCOLOR)) && echo -ne "\e[0m" || echo -ne "\e[3${c[i]}m" echo -n "${sets[v[i]]:l[i]*4+n[i]:1}" l[i]=${n[i]} done ((r > 0 && t * p >= r)) && tput reset && tput civis && t=0 || ((t++)) done cleanup } main "$@" pipes.sh-1.3.0/pipes.sh.6000066400000000000000000000103721324446570000150740ustar00rootroot00000000000000.\" Manpage for pipes.sh .\" Report errors or typos to https://github.com/pipeseroni/pipes.sh .TH pipes.sh 6 "25 Feb 2018" "1.3.0" "pipes.sh man page" .SH NAME pipes.sh \- animated pipes terminal screensaver .SH SYNOPSIS .B pipes.sh [\fIOPTION\fR]... .SH DESCRIPTION A bash script which draws randomly pathed pipes over the terminal. Generally used either as a functional screensaver or for amusement. .SH OPTIONS .TP 5 .B -p [1-] Number of pipes. (default is 1) .TP .B -t [0-9] Determines the type of pipes to be drawn. Multiple arguments can be used. (default is 0) Due to the manpage limitation, the following list describes types in text, please see .UR https://github.com/pipeseroni/pipes.sh#-t--pipe-types README .UE for actual Unicode characters and screenshots. .RS .TP .B -t 0 "BOX DRAWING HEAVY" .TP .B -t 1 "BOX DRAWING LIGHT" and "BOX DRAWING LIGHT ARC" .TP .B -t 2 "BOX DRAWING LIGHT" .TP .B -t 3 "BOX DRAWING DOUBLE" .TP .B -t 4 "|+ ++-+ +|++ +-" .TP .B -t 5 "|/ \\/-\\ \\|/\\ /-" .TP .B -t 6 ".. .... .... .." .TP .B -t 7 ".o oo.o o.oo o." .TP .B -t 8 "-\\ /\\|/ /-\\/ \\|" (railway) .TP .B -t 9 "BOX DRAWING HEAVY AND LIGHT" (knobby) .RE .TP .B -t c[16 chars] Use custom type of pipes. The following table describes the order of characters and what they represent. Four of the characters are not applicable as the pipes does not perform a 180-turn. .RS .TP .B Index Going .TP .B 1 Straight up .TP .B 2 Up and going right .TP .B 3 Not applicable (up and back down), use space .TP .B 4 Up and going left .TP .B 5 Right and going up .TP .B 6 Stright right .TP .B 7 Right and going down .TP .B 8 Not applicable (right and back left), use space .TP .B 9 Not applicable (down and back up), use space .TP .B 10 Down and going right .TP .B 11 Straight down .TP .B 12 Down and going left .TP .B 13 Left and going up .TP .B 14 Not applicable (left and back right), use space .TP .B 15 Left and going down .TP .B 16 Straight left .RE .TP .B -c [0-7] Colors of pipes. Multiple arguments can be used. (default is 1 2 3 4 5 6 7 0) .TP .B -f [20-100] Frame rate. (default is 75) .TP .B -s [5-15] Probability of straight fitting. (default is 13) .TP .B -r [LIMIT] Resets the drawing after [LIMIT] characters. If no limit is specified then it takes the value 0. (default is 2000) .TP .B -R Randomize starting position and direction. .TP .B -B No bold effect. .TP .B -C No color. .TP .B -K No change of colors and types when hitting screen edges. .TP .B -h Displays a help message. .TP .B -v Prints the version number. .SH KEYBOARD CONTROLS Press any key to quit pipes.sh, except the following \fBShift\fR + \fBKey\fR: .TP \fBP\fR / \fBO\fR Increase/decrease probability of straight pipes .TP \fBF\fR / \fBD\fR Increase/decrease frame rate .TP .B B Toggle bold effect .TP .B C Toggle no colors .TP .B K Toggle keeping pipe color and type when crossing edges .SH HISTORY \fIpipes.sh\fR was originally created by Matthew Simpson and posted to the .UR https://bbs.archlinux.org/viewtopic.php?pid=728932#p728932 Arch Linux Forums .UE in early 2010. It was also later posted to .UR https://gist.github.com/msimpson/1096939 Gist .UE released in the public domain. In early 2013, Yu-Jie Lin posted a modification of the script to Gist after reading about it on a .UR https://inconsolation.wordpress.com/2013/02/01/pipes-sh-a-little-bit-of-fun/ blog .UE . It was maintained on Gist independently for a period of a few months. In 2014, the script was given its own GitHub repository as a project which encouraged contributions from other developers. As the project gained more popularity the decision was made to combine forces with developers of similar projects. Finally in 2015, the MIT License was added and the Pipeseroni collective was formed (see \fBLINKS\fR below) to maintain the project. .SH LINKS .UR https://pipeseroni.github.io/ \fBWebsite\fR .UE .UR https://github.com/pipeseroni/pipes.sh \fBRepository\fR .UE .SH BUGS Please see current issues on .UR https://github.com/pipeseroni/pipes.sh/issues issue tracker .UE , and report any bugs or request feature you'd like. .SH AUTHORS .UR https://github.com/pipeseroni/pipes.sh/graphs/contributors Pipeseroni/pipes.sh contributors .UE . .SH COPYRIGHT Copyright (c) 2010-2018 Pipeseroni/pipes.sh contributors. \fIpipes.sh\fR is licensed under the MIT License, see LICENSE file.