From 6b4c7997064f0041a4adc3ebd866492f6abdc20c Mon Sep 17 00:00:00 2001 From: Yu-Jie Lin Date: Fri, 21 Feb 2014 08:38:12 +0800 Subject: [PATCH] Revamp README, add more screenshots, information, and related projects --- README.rst | 147 +++++++++++++++++++++++++++++++++-------------- doc/pipes.C.png | Bin 0 -> 1288 bytes doc/pipes.png | Bin 0 -> 2367 bytes doc/pipes.t0.png | Bin 0 -> 1216 bytes doc/pipes.t1.png | Bin 0 -> 1361 bytes doc/pipes.t2.png | Bin 0 -> 1060 bytes doc/pipes.t3.png | Bin 0 -> 1461 bytes doc/pipes.t4.png | Bin 0 -> 3271 bytes doc/pipes.t5.png | Bin 0 -> 6249 bytes 9 files changed, 105 insertions(+), 42 deletions(-) create mode 100644 doc/pipes.C.png create mode 100644 doc/pipes.png create mode 100644 doc/pipes.t0.png create mode 100644 doc/pipes.t1.png create mode 100644 doc/pipes.t2.png create mode 100644 doc/pipes.t3.png create mode 100644 doc/pipes.t4.png create mode 100644 doc/pipes.t5.png diff --git a/README.rst b/README.rst index da05085..b81d1ce 100644 --- a/README.rst +++ b/README.rst @@ -4,7 +4,26 @@ pipes.sh *Animated pipes terminal screensaver.* -.. figure:: https://lh5.googleusercontent.com/-gHm74e1R0wY/UwWJnHr_H1I/AAAAAAAAFxI/1qe53Jl8FM4/s800/2014-02-20--12%253A47%253A36.png +.. 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 doc/pipes.png + +.. figure:: doc/pipes.png + +.. contents:: **Contents** + :local: + :backlinks: top + + +How this started +================ + +First and foremost, I am not the original author of pipes.sh. The author of the original script is unknown to me. The first entry I can find was posted at 2010-03-21 09:50:09 on `Arch Linux Forums`_ (doesn't mean the @@ -12,11 +31,16 @@ poster is the author at all). .. _Arch Linux Forums: https://bbs.archlinux.org/viewtopic.php?pid=728932#p728932 -Originally, I pushed my modifications to Gist_, but after saw this -`C version`_, it might be the time to move here. +Originally, I pushed my modifications to Gist_ after reading about pipes.sh on +a blog_, I continued to maintain the Gist for a few months in 2013 .. _Gist: https://gist.github.com/livibetter/4689307 -.. _C version: http://mezulis.com/2013/04/02/snakes-a-console-based-pipes-like-screensaver/ +.. _blog: http://inconsolation.wordpress.com/2013/02/01/pipes-sh-a-little-bit-of-fun/ + +In 2014, after seeing this `C version`_, which happened to be inspired by my +modified version, it might be the time to move here. + +.. _C version: Snakes_ Copyright concern @@ -55,66 +79,105 @@ Options ======= ``-p [1-]`` - number of pipes (D=1). - -``-t [0-4]`` - type of pipes (D=0). See [Types of Pipes](#types-of-pipes) for samples. +----------- + +Number of pipes (D=1). + +``-t [#]`` +---------- + +Type of pipes (D=0). + +.. 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 doc/pipes.t#.png + ++----------+-------------------------------+ +| ``-t #`` | Charaters | ++==========+===============================+ +| ``-t 0`` | ``┃┏ ┓┛━┓ ┗┃┛┗ ┏━`` | +| | | +| | .. figure:: doc/pipes.t0.png | ++----------+-------------------------------+ +| ``-t 1`` | ``│╭ ╮╯─╮ ╰│╯╰ ╭─`` | +| | | +| | .. figure:: doc/pipes.t1.png | ++----------+-------------------------------+ +| ``-t 2`` | ``│┌ ┐┘─┐ └│┘└ ┌─`` | +| | | +| | .. figure:: doc/pipes.t2.png | ++----------+-------------------------------+ +| ``-t 3`` | ``║╔ ╗╝═╗ ╚║╝╚ ╔═`` | +| | | +| | .. figure:: doc/pipes.t3.png | ++----------+-------------------------------+ +| ``-t 4`` | ``|+ ++-+ +|++ +-`` | +| | | +| | .. figure:: doc/pipes.t4.png | ++----------+-------------------------------+ +| ``-t 5`` | ``|/ \/-\ \|/\ /-`` | +| | | +| | .. figure:: doc/pipes.t5.png | ++----------+-------------------------------+ ``-f [20-100]`` - framerate (D=75). +--------------- + +Framerate (D=75). ``-s [5-15]`` - probability of a straight fitting (D=13). +------------- -``-r LIMIT`` - reset after x characters, 0 if no limit (D=2000). +Probability of a straight fitting (D=13). -``-R`` - random starting point. +``-r LIMIT`` +------------ -``-C`` - no color. - -``-h`` - help message. +Reset after x characters, 0 if no limit (D=2000). +``-R`` +------ -Types of Pipes -============== +Random starting point. -There are a few types of pipes to choose from: +``-C`` +------ +No color. -``-t 0`` --------- +.. note on taking the screenshot -Characters are ``┃┏ ┓┛━┓ ┗┃┛┗ ┏━``. + Font is Inconsolata, font size 24 as in 16x35 pixel per character -.. figure:: https://lh5.googleusercontent.com/-gHm74e1R0wY/UwWJnHr_H1I/AAAAAAAAFxI/1qe53Jl8FM4/s800/2014-02-20--12%253A47%253A36.png + 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: -``-t 1`` --------- + xsnap -region 640x140+$((2+2))+$((20+2)) -file doc/pipes.Cpng -Characters are ``│╭ ╮╯─╮ ╰│╯╰ ╭─``. +.. figure:: doc/pipes.C.png -``-t 2`` --------- +``-h`` +------ -Characters are ``│┌ ┐┘─┐ └│┘└ ┌─``. +Help message. -``-t 3`` --------- -Characters are ``║╔ ╗╝═╗ ╚║╝╚ ╔═``. +Contribution +============ -``-t 4`` --------- +Feel free to fork and/or create pull request. But if you does create pull requests, that means you agree to put your contribution in public domain, also be sure to read about `copyright concern`_. -Characters are ``|+ ++-+ +|++ +-``. -.. figure:: https://lh6.googleusercontent.com/-EVMwemQ0JFo/UwWJpVL3zZI/AAAAAAAAFxQ/qBEdcI_10zk/s800/2014-02-20--12%253A48%253A08.png +Related projects +================ -``-t 5`` --------- +* Snakes_: a C version of pipes.sh +* pipesX.sh_: pipes.sh at an angle -Characters are ``|/ \/-\ \|/\ /-``. +.. _Snakes: http://mezulis.com/2013/04/02/snakes-a-console-based-pipes-like-screensaver/ +.. _pipesX.sh: https://gist.github.com/livibetter/5974905 diff --git a/doc/pipes.C.png b/doc/pipes.C.png new file mode 100644 index 0000000000000000000000000000000000000000..b08a5ef98c55bb67a1d35e004bae130bf384fd09 GIT binary patch literal 1288 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xedpMYYWb&teH6X=a;_2(keve6%K|rHz!pxaK zA(0Z-h?3y^w370~qEv>6;=IHH1w%bkJB>pTFKd&EH@Dx90Eh z>F@31{1#Z*Rn7z7j=7!@2Cm>n8$DJZ!4bN}mu?KT<9Ctr0|U2VSf_QKhlU(es0 zq5M62q58(#f4yFQyK~p*L**TrRlj~u3H-j=O4Itm%c!-+(~|$LIT0J}{i-gP<%3rJ z?%vXKk<2!Wem(oLtTy|%@D{nV21{12zCY{c*Yelr4^-{)&F$znU%B<$zKPR=R?oKk zRu{VbnXm~7PQ~!c?dOc!i)`0_JhxaZ{r|q%S6|Qft$*<*M?Gc!+rN9x^N|`9$mTbk z{<`I8{S?0VJ*Fr6_$zlP{|}ATV!nRz*;4c4_cb>~oqzLFuHwtGTPycRuN0hBaAU%? zv*+e!O*Ah*@SVS8jlP(YZRE@Y#XnfivOkaZzGnHm{#@k!_y7LYyzz^>=l}i#--C00 zHxuVXJ}I;+yQsMI+`RWf>zAu`)$pygNLaWm)O#y4x$z0|#DhtC34303_N<Wxir38f9>0KrII5|wfvzAiYvJx%`Cj>?O& zv%kLK30hn4VSCIz=i3kK&$_X{INKMV%R4G0W?NF$cB1OVw>pWhfBKTx-`Kh~gtGH+ zB-AH=s;Lc&o$nP_y1HHGbz=NB`(!&u_U8s4E;+Z&y36%A{doPKMgBK_S3Uo9&FS^R z|DUa=`ClL+P2+TTk0pOa=GDUr;#M)m9j||G?e?oF`+N6S@Y?im?^o}-y4mXQ%QKWE zn@^Pou3uJtZ}MBP-Xxy-%BUMH;^E;gnZwc&PZT;DF&%{|k5H%$Z;BEMD<<|Btlq%cK7TU1z^!UfyJ` sOI=%S{{Q{i;wYBHPELM@h0Ou^-sre}asqR{0Lw83Pgg&ebxsLQ0Giw8e*gdg literal 0 HcmV?d00001 diff --git a/doc/pipes.png b/doc/pipes.png new file mode 100644 index 0000000000000000000000000000000000000000..e4081335ebb1b1d9796c17f2189795f41edd6f32 GIT binary patch literal 2367 zcmbtW?O&2v8b++JT$NU{O$%+>`K`OD>{_OwjM?gx>x51DPNF#ZmMNO=j|yzA`Ewh` z*3_A)1PzN3L`qULLu;&@(bU3}Oa;`G^cg_IM+JOf>BIa3_Tf7B`JE5v+~+#ix$e9C zG~tBR4u>5G1i~ulWWX5&0!cT`#TH1@7?wNVU<#=0pi_Y;DRLKLC+?!h_%+j#U3Oq( z_E}0|b{_ds0wOXiot)wP4|h-Zqsh%x9tecRNKk-(X#OqbR6}|w=+H+VBHsk6c3hsC zPeunicWgmhsOXLRPX=tgU4^can#Ego{Ku``1*xj9bw0V|Qgt9)AkMO<|4@j0o_VYE?E34rv z?F^2OAGHQULHz+?hTJ6P3LbZP4WVM*yF}SmE5bw=>+fQ%P|Vn#x)1A2ePOSE&I3ij zDCC>3&Gh~u!Oopsmel*?=_>(`Ml&&*1M}+k*6|h3Zn}>NTyq~I(9WC0X$H!dK)cw8 z3vGSK7*p^s-~+O5ec|)!>HapyRJfpR41i~|-=uwe;2SL0`hWY_)4B13!Nex$<)kdu zuLeWY8?JwOaQrI>NX1v{IBH3ljKv*eIxu43?l)$=ZD&r|t?+eaYFFAXDmtPU*=V>O zqBV&}9890@7uFYcef|c(i$qe+n6R2#YoNB1jNdlY&8bo;`!5y;cXEWp{xA_t&eQ7K zsOrK3cw9t*^zolcyaf1cL8NxN!JsX0Y(t14&Z@NIX<-n2)SKEi?sxH>!XVAaQ1tQt zTIr+^5ccAU#YJH`w=+PHr}N-~vAQiPaM1cs2;`PcqF+PrOR0YmKXZDt05<5FptI*Z z1J^n1?#1O%(;3vEOZdtIg>3MAhuXcOgo?e9@Lt`2Xf0(9EM8rIrHW{kirMMxP;8)& z+%X9SP06Ej1swY$KdGM^|2tqGDyzXYt9hh|9N6OT&FIcUnQnuveWj^QMV4=EM%pq* zV`OeT*#L^<%Eq)2>(#~#m#}VRH;Sh4319JM(0jE1s2n6|oOxt`=Xug03w2 zH+J#-$tAlx!FO<_!lukdaFsK1CaGxgjw8yP!or1i=o)!t_WX^VkuSAGE|rw~_}+2I zrYrZ)=$3%UM03HMnG`6lI~L!vYm6qsbjm&_1QUY^v<}#v&l*gC|vmb7FYFa$M$o(y6)@j zvq!eAX?I(dj0rDenY5@v8TIF*2YTA47L}|Y=W0JB;>P#1s7)I#Gw&gskI~IGg}7(F z@=WRUQ|;AZjGu!w;286(E8)ALDNHj_vasEK>7)t-XNdro0glZ ziW`OoDMYis|i zbYc&iR2`i`0aJK7pf9D>7CMsM{?NdYlGF}@N4uU#e5|*1C(m4y*WEYYMyE&8DKeUP zWy4f!(f~u5dbj5L-#(kvE*}(a*-_gqQ2fpEEsOtp0+T127uJ{7Ugb0>m1W(gLKCRj#GO<}J`*i4&Zljq-nfVQPO6L4kyTmg8}k{|_s?;syW! literal 0 HcmV?d00001 diff --git a/doc/pipes.t0.png b/doc/pipes.t0.png new file mode 100644 index 0000000000000000000000000000000000000000..fc50402f115dee0e44b134c4776e5b01061a17ac GIT binary patch literal 1216 zcmeAS@N?(olHy`uVBq!ia0y~yV0-{%_i!))N$u}%!+{igiKnkC`#mO6pk&_z;Uz#J zkrLO4lHmNblJdl&RECJ+yu<u$ZvK z&Y8dY95Ol8Xin_3>4(Ms+eB6E+gNh_VIF7 z(b<1vW#PXYQ~%Xm&e>y^%eSxYj%=A~Z@m9}6ZX~D%{R}9|5c~Gx9;WpuK$1UTUc>HQJLM(tH*0~xf|*@O&l~D**H`$Ff3$|Qkdev+#;0G z5WvJM;I)9!3A?2B*8Pswd$&)z<=pr?s{X`>B!ysWiC<>cFDzI7ZRe_}V3A5Nm}?%C z8T!8?`OW`Z_v`gS#R7VWJ0z3}+zn~p>{9Mg)hxPA4(U!~vV=7;Y6ck*WC)z{bK>Vd)Jf9tbs*5A*zG+47o7eiL-=0_h|9bwd^E}6ICf(a6dR6bs7ViI({r=7eL3WaZ z9_WLt)K3c^mxrG{`0wGb8u8Btxrj7yX3;m7H(NN5ep$UY*-zg-!4TK!G z$;jJnu|vzM{_~2QjNaH_p+x<{Mqr?-s}HSzuk2!w|t!<^~5e$IqOTuv|HU9?Ykk>*VHcu^!V1TimU&e zvG>KFTdy@kcm0#w+PpA-cA-bf{#z5zPR`;ld{-k_Wpd)RrBc}ifn2Y-l^}&X7*tJhq;%o8F!p<<1g}Fb!K`};SKWA<39$G^fL6;=IHH1w%bkJ4Xj0N?Y-&<_(;&8yXGt{AC)G|vyKVi?t>-;o z8RPRoGI{?m%Z+LOBx`TV>%M*U=jE5A@_&!N@Bjbj>*L#>&i|hHc=6%cyMO=eueYeS z+MyFs|MI6@{`@z4V$Rpsti1Gf%BsJ=t7`Y$z4bfl{qyNswYJ{<`nC1bv}*17eP6x~ z{{2JpU+hVL#)PLVQVLTXm|KK08UmPj1-uq8I&qrVdjIabn_*(L_r_kU`dObJ+`3z!{{z_l48GkwC=UW@MWjr>{R=DtG zL8n#uGP9_;k^P0=pMB1|9kRZEyX*1kWt+b|*Z-#Tcb3Vozs>u^r#^l7CeuVpHs)O! zf6dbH8|$oxv(^edyKy)fc3A zMFOAS`lGJsu;M;bZU@`5l$tnZVH1ZH_RK(@U207nKai&Zb}PfeWh}SMObnWNUu-pW zMDsgX%~k&e^?!d{JN@}my zORq}rNZZ!P7B!c1;l(os>;AIvro6UTtkr*tu0cQo7d^^WMGt9d~H< zt42TWuCD?aK`nDkcy4~Yn0P`zX+g9MgZ#;#!EOr}|A}16fOs}oh36t9W|zIL?GQtb z=L7A(?zW+bAVP@!*Ox_aSD(1P??&0{_5QhW^UsF;HuKzSx}^>&9FYSc_U`9zC(oTO zy}$a$*=zT%Uq60(U%2CHKD~13U(0UYmx|htoXTEv-D!Atqb*I6H}|pM)lZ;!mmX4;p5`t0%wh8NjRmSh~MuJe$i#FwbWUoPtxYmKYkq# zf1cW{y;rRI)5-IX9~7ve(U8|N3P1(&<}+CcEXot=0XzeP&_&1DA*!O9~q| z&VK&+cirEu*Mook>dC(UCyDp@o!#F*7e!~zi`bDdQ?sUa&)Jw8%VyP_k^Z}9eeTVr z{wdwbk-Tryc-m{F&6*wbUFRlenn;5q_sgT6^ACA0Zt(-T^h;CEd0zvU%O=n?1`Zqj zLu@6^InI~$kOko>F3YrWUG3HX*WT9uzxiFL!8~(&?aYHLuv`d_3*=D7C;52w=d^XP zd!61HFg%gwHx3Pd?tj>(aDgK8-A5LCZ^%BI&*$LGCiP;X8}r9D>5PVgX1*HT}ojZES_?urLd-QMyJ2*xz=;!p7uSD1r~@5p00i_>zopr05e!h A@&Et; literal 0 HcmV?d00001 diff --git a/doc/pipes.t2.png b/doc/pipes.t2.png new file mode 100644 index 0000000000000000000000000000000000000000..90ef4d926301a9b75a1ff275c3a54225a6615236 GIT binary patch literal 1060 zcmeAS@N?(olHy`uVBq!ia0y~yV0-{%_i!))N$u}%!+{igiKnkC`#mO61_mLnxS%Sa zkVuJZL`iUdT1k0gQ7S`3ab9A9f}x(No@K_GNk$9|%sV_?978JRyuEAaCzCGGkf?sM z?VgbN0#8}4n1F(o9S``XDRoae)XMFZ68TY9V~%n_Kugn>l{*?$tHLK0jSvb^Y95{qga;ZuZ}Qr@s!DFPGbQF1PG{-M(KRe*Kr!;J#e?I&9y8nLNkC)GXUYnow>U;63t@ZP- z=e>Jf-Tq$OQk&tw=K{t>EK&+yBvEGG{0Asif>z6Mpd=2Z+v** zFNeuv-H7dq%jH6U240KXzV-huofEoz4H}JX9YPr-Qc}V%fSzt!Q#^Y$|N8V;d4&`9 zq#6OW^OlU<8-3fu&2#3)`&iYzeJ|c|yY_eGm7v)x8>4qW|5n#{+&oKIW4i?d>7fA( zzAV{BxgE}o-#y~U zt~~bBp`HEr;%UFWo?o56ukQ9&snS=QKX)s>_SsrqWb*pg^yAAX_sy@KH*5K?pLf3P zdv?z|#aLy{Vy*M`ZmjR#MC;!x+}k#%`~m-&kYHxR?YC@9SO2Ja_d|4M^=47B{p+*f z`8~hXcgvHCxBI_eH(l;wpzU^Ejc517TB<+ulbW2M>CdcM-QD~A2L-Ty*4uX1zKUZH zem=iizjfuadHc(1uP0qG{=NL&+Q8e|3$~e`NXvR~ZJpSfm1p+9`Q?A9DRdR<#$)8B cvtQB^Zcg69QTaOqn8z7BUHx3vIVCg!0DqFJF#rGn literal 0 HcmV?d00001 diff --git a/doc/pipes.t3.png b/doc/pipes.t3.png new file mode 100644 index 0000000000000000000000000000000000000000..2f3b376be3788f0d36cbb04bc94efa1b338451a2 GIT binary patch literal 1461 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 literal 0 HcmV?d00001 diff --git a/doc/pipes.t5.png b/doc/pipes.t5.png new file mode 100644 index 0000000000000000000000000000000000000000..f32d40581c96a8dfca3ef60ed260f2507dda21bd GIT binary patch literal 6249 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 ATmS$7 literal 0 HcmV?d00001