From 1f1bd927eb624e10a1e6b7709c21e144d224d62e Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 18 Oct 2022 16:25:02 -0400 Subject: Animate text scrolling --- animation.cast | 56 +++++++++++++++++++-------- animation.svg | 117 ++++++++++++++++++++++++++++++++++++++------------------- 2 files changed, 118 insertions(+), 55 deletions(-) diff --git a/animation.cast b/animation.cast index 1b5d3ec..6521a9c 100644 --- a/animation.cast +++ b/animation.cast @@ -2,16 +2,25 @@ [0.0, "o", "\u001b[?1h\u001b=\r"] [0.0, "o", "Usage: \u001b[01;32mbfs\u001b[0m [\u001b[01;36mflags\u001b[0m...] [\u001b[01;35mpaths\u001b[0m...] [\u001b[01;34mexpression\u001b[0m...]\u001b[m\r\n\u001b[m\r\n\u001b[01;32mbfs\u001b[0m is compatible with \u001b[01;32mfind\u001b[0m, with some extensions. \u001b[01;36mFlags\u001b[0m (\u001b[01;36m-H\u001b[0m/\u001b[01;36m-L\u001b[0m/\u001b[01;36m-P\u001b[0m etc.), \u001b[01;35mpaths\u001b[0m,\u001b[m\r\nand \u001b[01;34mexpressions\u001b[0m may be freely mixed in any order.\u001b[m\r\n\u001b[m\r\n\u001b[01;37mFlags:\u001b[0m\u001b[m\r\n\u001b[m\r\n \u001b[01;36m-H\u001b[0m\u001b[m\r\n Follow symbolic links on the command line, but not while searching\u001b[m\r\n \u001b[01;36m-L\u001b[0m\u001b[m\r\n Follow all symbolic links\u001b[m\r\n \u001b[01;36m-P\u001b[0m\u001b[m\r\n Never follow symbolic links (the default)\u001b[m\r\n \u001b[01;36m-E\u001b[0m\u001b[m\r\n:\u001b[K"] [4.0, "o", "\r\u001b[K\u001b[?1l\u001b>"] -[4.0, "o", "\u001b]0;tavianator@superluminal:~/code/bfs/foo\u0007\u001b[01;37m$\u001b[0m "] +[4.0, "o", "\u001b[01;37m$\u001b[0m "] [4.2, "o", "b"] [4.3, "o", "f"] [4.4, "o", "\u0008\u0008\u001b[01;32mbfs\u001b[0m"] [4.9, "o", "\r\n"] -[4.9, "o", "\u001b[01;34m.\u001b[0m\r\n\u001b[01;34m./\u001b[0mfile\r\n\u001b[01;34m./\u001b[0m\u001b[01;36mlink\u001b[0m\r\n\u001b[01;34m./\u001b[0m\u001b[01;31marchive.zip\u001b[0m\r\n\u001b[01;34m./\u001b[0m\u001b[01;34mbin\u001b[0m\r\n\u001b[01;34m./\u001b[0m\u001b[01;34msongs\u001b[0m\r\n\u001b[01;34m./\u001b[0m\u001b[01;34mvideos\u001b[0m\r\n"] -[4.9, "o", "\u001b[01;34m./bin/\u001b[0m\u001b[01;32mprogram\u001b[0m\r\n\u001b[01;34m./bin/\u001b[0m\u001b[01;32mscript.sh\u001b[0m\r\n\u001b[01;34m./songs/\u001b[0m\u001b[00;36msong.mp3\u001b[0m\r\n"] -[4.9, "o", "\u001b[01;34m./songs/\u001b[0m\u001b[00;36msong.flac\u001b[0m\r\n"] -[4.9, "o", "\u001b[01;34m./videos/\u001b[0m\u001b[01;35mvideo.mp4\u001b[0m\r\n\u001b[01;34m./videos/\u001b[0m\u001b[01;35mvideo.mkv\u001b[0m\r\n"] -[4.9, "o", "\u001b]0;tavianator@superluminal:~/code/bfs/foo\u0007\u001b[01;37m$\u001b[0m "] +[4.91, "o", "\u001b[01;34m.\u001b[0m\r\n"] +[4.92, "o", "\u001b[01;34m./\u001b[0mfile\r\n"] +[4.93, "o", "\u001b[01;34m./\u001b[0m\u001b[01;36mlink\u001b[0m\r\n"] +[4.94, "o", "\u001b[01;34m./\u001b[0m\u001b[01;31marchive.zip\u001b[0m\r\n"] +[4.95, "o", "\u001b[01;34m./\u001b[0m\u001b[01;34mbin\u001b[0m\r\n"] +[4.96, "o", "\u001b[01;34m./\u001b[0m\u001b[01;34msongs\u001b[0m\r\n"] +[4.97, "o", "\u001b[01;34m./\u001b[0m\u001b[01;34mvideos\u001b[0m\r\n"] +[4.98, "o", ""] +[4.99, "o", "\u001b[01;34m./bin/\u001b[0m\u001b[01;32mprogram\u001b[0m\r\n"] +[5.00, "o", "\u001b[01;34m./bin/\u001b[0m\u001b[01;32mscript.sh\u001b[0m\r\n"] +[5.01, "o", "\u001b[01;34m./songs/\u001b[0m\u001b[00;36msong.mp3\u001b[0m\r\n"] +[5.02, "o", "\u001b[01;34m./songs/\u001b[0m\u001b[00;36msong.flac\u001b[0m\r\n"] +[5.03, "o", "\u001b[01;34m./videos/\u001b[0m\u001b[01;35mvideo.mp4\u001b[0m\r\n\u001b[01;34m./videos/\u001b[0m\u001b[01;35mvideo.mkv\u001b[0m\r\n"] +[5.04, "o", "\u001b[01;37m$\u001b[0m "] [8.9, "o", "b"] [9.0, "o", "f"] [9.1, "o", "\u0008\u0008\u001b[01;32mbfs\u001b[0m"] @@ -33,15 +42,16 @@ [11.0, "o", "\u0008-l"] [11.1, "o", "\u0008\u0008\u001b[01;34m-ls\u001b[0m"] [11.6, "o", "\r\n"] -[11.6, "o", " 26037588 4 -rw-r----- 1 tavianator users 1337 Mar 2 20:28 \u001b[01;34m./\u001b[0mfile\r\n 26037589 4 lrwxrwxrwx 1 tavianator users 9 Mar 2 20:28 \u001b[01;34m./\u001b[0m\u001b[01;36mlink\u001b[0m -> \u001b[01;34m/dev/\u001b[0m\u001b[40;33;01mnull\u001b[0m\r\n"] -[11.6, "o", " 26037590 72 -rw-r----- 1 tavianator users 70568 Mar 2 20:28 \u001b[01;34m./\u001b[0m\u001b[01;31marchive.zip\u001b[0m\r\n"] -[11.6, "o", " 26037594 156 -rwxr-x--- 1 tavianator users 158296 Mar 2 20:28 \u001b[01;34m./bin/\u001b[0m\u001b[01;32mprogram\u001b[0m\r\n"] -[11.6, "o", " 26037595 56 -rwxr-x--- 1 tavianator users 53753 Mar 2 20:28 \u001b[01;34m./bin/\u001b[0m\u001b[01;32mscript.sh\u001b[0m\r\n"] -[11.6, "o", " 26037596 4992 -rw-r----- 1 tavianator users 5111174 Mar 2 20:28 \u001b[01;34m./songs/\u001b[0m\u001b[00;36msong.mp3\u001b[0m\r\n"] -[11.6, "o", " 26037597 25452 -rw-r----- 1 tavianator users 26061823 Mar 2 20:28 \u001b[01;34m./songs/\u001b[0m\u001b[00;36msong.flac\u001b[0m\r\n"] -[11.6, "o", " 26037598 83676 -rw-r----- 1 tavianator users 85680223 Mar 2 20:28 \u001b[01;34m./videos/\u001b[0m\u001b[01;35mvideo.mp4\u001b[0m\r\n"] -[11.6, "o", " 26037599 94900 -rw-r----- 1 tavianator users 97175783 Mar 2 20:28 \u001b[01;34m./videos/\u001b[0m\u001b[01;35mvideo.mkv\u001b[0m\r\n"] -[11.6, "o", "\u001b]0;tavianator@superluminal:~/code/bfs/foo\u0007\u001b[01;37m$\u001b[0m "] +[11.61, "o", " 26037588 4 -rw-r----- 1 tavianator users 1337 Mar 2 20:28 \u001b[01;34m./\u001b[0mfile\r\n"] +[11.62, "o", " 26037589 4 lrwxrwxrwx 1 tavianator users 9 Mar 2 20:28 \u001b[01;34m./\u001b[0m\u001b[01;36mlink\u001b[0m -> \u001b[01;34m/dev/\u001b[0m\u001b[40;33;01mnull\u001b[0m\r\n"] +[11.63, "o", " 26037590 72 -rw-r----- 1 tavianator users 70568 Mar 2 20:28 \u001b[01;34m./\u001b[0m\u001b[01;31marchive.zip\u001b[0m\r\n"] +[11.64, "o", " 26037594 156 -rwxr-x--- 1 tavianator users 158296 Mar 2 20:28 \u001b[01;34m./bin/\u001b[0m\u001b[01;32mprogram\u001b[0m\r\n"] +[11.65, "o", " 26037595 56 -rwxr-x--- 1 tavianator users 53753 Mar 2 20:28 \u001b[01;34m./bin/\u001b[0m\u001b[01;32mscript.sh\u001b[0m\r\n"] +[11.66, "o", " 26037596 4992 -rw-r----- 1 tavianator users 5111174 Mar 2 20:28 \u001b[01;34m./songs/\u001b[0m\u001b[00;36msong.mp3\u001b[0m\r\n"] +[11.67, "o", " 26037597 25452 -rw-r----- 1 tavianator users 26061823 Mar 2 20:28 \u001b[01;34m./songs/\u001b[0m\u001b[00;36msong.flac\u001b[0m\r\n"] +[11.68, "o", " 26037598 83676 -rw-r----- 1 tavianator users 85680223 Mar 2 20:28 \u001b[01;34m./videos/\u001b[0m\u001b[01;35mvideo.mp4\u001b[0m\r\n"] +[11.69, "o", " 26037599 94900 -rw-r----- 1 tavianator users 97175783 Mar 2 20:28 \u001b[01;34m./videos/\u001b[0m\u001b[01;35mvideo.mkv\u001b[0m\r\n"] +[11.7, "o", "\u001b[01;37m$\u001b[0m "] [15.6, "o", "b"] [15.7, "o", "f"] [15.8, "o", "\u0008\u0008\u001b[01;32mbfs\u001b[0m"] @@ -53,4 +63,18 @@ [16.5, "o", "\u0008\u0008\u0008\u0008\u001b[01;34m-help\u001b[0m"] [17.0, "o", "\r\n"] [17.0, "o", "\u001b[?1h\u001b=\r"] -[17.0, "o", "Usage: \u001b[01;32mbfs\u001b[0m [\u001b[01;36mflags\u001b[0m...] [\u001b[01;35mpaths\u001b[0m...] [\u001b[01;34mexpression\u001b[0m...]\u001b[m\r\n\u001b[m\r\n\u001b[01;32mbfs\u001b[0m is compatible with \u001b[01;32mfind\u001b[0m, with some extensions. \u001b[01;36mFlags\u001b[0m (\u001b[01;36m-H\u001b[0m/\u001b[01;36m-L\u001b[0m/\u001b[01;36m-P\u001b[0m etc.), \u001b[01;35mpaths\u001b[0m,\u001b[m\r\nand \u001b[01;34mexpressions\u001b[0m may be freely mixed in any order.\u001b[m\r\n\u001b[m\r\n\u001b[01;37mFlags:\u001b[0m\u001b[m\r\n\u001b[m\r\n \u001b[01;36m-H\u001b[0m\u001b[m\r\n Follow symbolic links on the command line, but not while searching\u001b[m\r\n \u001b[01;36m-L\u001b[0m\u001b[m\r\n Follow all symbolic links\u001b[m\r\n \u001b[01;36m-P\u001b[0m\u001b[m\r\n Never follow symbolic links (the default)\u001b[m\r\n \u001b[01;36m-E\u001b[0m\u001b[m\r\n:\u001b[K"] +[17.01, "o", "Usage: \u001b[01;32mbfs\u001b[0m [\u001b[01;36mflags\u001b[0m...] [\u001b[01;35mpaths\u001b[0m...] [\u001b[01;34mexpression\u001b[0m...]\u001b[m\r\n"] +[17.02, "o", "\u001b[m\r\n"] +[17.03, "o", "\u001b[01;32mbfs\u001b[0m is compatible with \u001b[01;32mfind\u001b[0m, with some extensions. \u001b[01;36mFlags\u001b[0m (\u001b[01;36m-H\u001b[0m/\u001b[01;36m-L\u001b[0m/\u001b[01;36m-P\u001b[0m etc.), \u001b[01;35mpaths\u001b[0m,\u001b[m\r\n"] +[17.04, "o", "and \u001b[01;34mexpressions\u001b[0m may be freely mixed in any order.\u001b[m\r\n"] +[17.05, "o", "\u001b[m\r\n"] +[17.06, "o", "\u001b[01;37mFlags:\u001b[0m\u001b[m\r\n"] +[17.07, "o", "\u001b[m\r\n"] +[17.08, "o", " \u001b[01;36m-H\u001b[0m\u001b[m\r\n"] +[17.09, "o", " Follow symbolic links on the command line, but not while searching\u001b[m\r\n"] +[17.10, "o", " \u001b[01;36m-L\u001b[0m\u001b[m\r\n"] +[17.11, "o", " Follow all symbolic links\u001b[m\r\n"] +[17.12, "o", " \u001b[01;36m-P\u001b[0m\u001b[m\r\n"] +[17.13, "o", " Never follow symbolic links (the default)\u001b[m\r\n"] +[17.14, "o", " \u001b[01;36m-E\u001b[0m\u001b[m\r\n"] +[17.15, "o", ":\u001b[K"] diff --git a/animation.svg b/animation.svg index 9dc3a8a..adef02a 100644 --- a/animation.svg +++ b/animation.svg @@ -16,51 +16,90 @@ } :root { - --animation-duration: 18000ms; + --animation-duration: 18150ms; } @keyframes roll { 0.000%{transform:translateY(0px)} -22.222%{transform:translateY(-272px)} -23.333%{transform:translateY(-544px)} -23.889%{transform:translateY(-816px)} -24.444%{transform:translateY(-1088px)} -27.222%{transform:translateY(-1360px)} -49.444%{transform:translateY(-1632px)} -50.000%{transform:translateY(-1904px)} -50.556%{transform:translateY(-2176px)} -51.111%{transform:translateY(-2448px)} -52.222%{transform:translateY(-2720px)} -52.778%{transform:translateY(-2992px)} -53.333%{transform:translateY(-3264px)} -53.889%{transform:translateY(-3536px)} -54.444%{transform:translateY(-3808px)} -55.556%{transform:translateY(-4080px)} -56.111%{transform:translateY(-4352px)} -56.667%{transform:translateY(-4624px)} -57.222%{transform:translateY(-4896px)} -57.778%{transform:translateY(-5168px)} -58.333%{transform:translateY(-5440px)} -58.889%{transform:translateY(-5712px)} -59.444%{transform:translateY(-5984px)} -60.556%{transform:translateY(-6256px)} -61.111%{transform:translateY(-6528px)} -61.667%{transform:translateY(-6800px)} -64.444%{transform:translateY(-7072px)} -86.667%{transform:translateY(-7344px)} -87.222%{transform:translateY(-7616px)} -87.778%{transform:translateY(-7888px)} -88.333%{transform:translateY(-8160px)} -89.444%{transform:translateY(-8432px)} -90.000%{transform:translateY(-8704px)} -91.111%{transform:translateY(-8976px)} -91.667%{transform:translateY(-9248px)} -94.444%{transform:translateY(-9520px)} -100.000%{transform:translateY(-9520px)} +22.039%{transform:translateY(-272px)} +23.140%{transform:translateY(-544px)} +23.691%{transform:translateY(-816px)} +24.242%{transform:translateY(-1088px)} +26.997%{transform:translateY(-1360px)} +27.052%{transform:translateY(-1632px)} +27.107%{transform:translateY(-1904px)} +27.163%{transform:translateY(-2176px)} +27.218%{transform:translateY(-2448px)} +27.273%{transform:translateY(-2720px)} +27.328%{transform:translateY(-2992px)} +27.383%{transform:translateY(-3264px)} +27.438%{transform:translateY(-3536px)} +27.493%{transform:translateY(-3808px)} +27.548%{transform:translateY(-4080px)} +27.603%{transform:translateY(-4352px)} +27.658%{transform:translateY(-4624px)} +27.713%{transform:translateY(-4896px)} +27.769%{transform:translateY(-5168px)} +49.036%{transform:translateY(-5440px)} +49.587%{transform:translateY(-5712px)} +50.138%{transform:translateY(-5984px)} +50.689%{transform:translateY(-6256px)} +51.791%{transform:translateY(-6528px)} +52.342%{transform:translateY(-6800px)} +52.893%{transform:translateY(-7072px)} +53.444%{transform:translateY(-7344px)} +53.994%{transform:translateY(-7616px)} +55.096%{transform:translateY(-7888px)} +55.647%{transform:translateY(-8160px)} +56.198%{transform:translateY(-8432px)} +56.749%{transform:translateY(-8704px)} +57.300%{transform:translateY(-8976px)} +57.851%{transform:translateY(-9248px)} +58.402%{transform:translateY(-9520px)} +58.953%{transform:translateY(-9792px)} +60.055%{transform:translateY(-10064px)} +60.606%{transform:translateY(-10336px)} +61.157%{transform:translateY(-10608px)} +63.912%{transform:translateY(-10880px)} +63.967%{transform:translateY(-11152px)} +64.022%{transform:translateY(-11424px)} +64.077%{transform:translateY(-11696px)} +64.132%{transform:translateY(-11968px)} +64.187%{transform:translateY(-12240px)} +64.242%{transform:translateY(-12512px)} +64.298%{transform:translateY(-12784px)} +64.353%{transform:translateY(-13056px)} +64.408%{transform:translateY(-13328px)} +64.463%{transform:translateY(-13600px)} +85.950%{transform:translateY(-13872px)} +86.501%{transform:translateY(-14144px)} +87.052%{transform:translateY(-14416px)} +87.603%{transform:translateY(-14688px)} +88.705%{transform:translateY(-14960px)} +89.256%{transform:translateY(-15232px)} +90.358%{transform:translateY(-15504px)} +90.909%{transform:translateY(-15776px)} +93.664%{transform:translateY(-16048px)} +93.719%{transform:translateY(-16320px)} +93.774%{transform:translateY(-16592px)} +93.829%{transform:translateY(-16864px)} +93.884%{transform:translateY(-17136px)} +93.939%{transform:translateY(-17408px)} +93.994%{transform:translateY(-17680px)} +94.050%{transform:translateY(-17952px)} +94.105%{transform:translateY(-18224px)} +94.160%{transform:translateY(-18496px)} +94.215%{transform:translateY(-18768px)} +94.270%{transform:translateY(-19040px)} +94.325%{transform:translateY(-19312px)} +94.380%{transform:translateY(-19584px)} +94.435%{transform:translateY(-19856px)} +94.490%{transform:translateY(-20128px)} +100.000%{transform:translateY(-20128px)} } #screen_view { - animation-duration: 18000ms; + animation-duration: 18150ms; animation-iteration-count:infinite; animation-name:roll; animation-timing-function: steps(1,end); @@ -91,5 +130,5 @@ - Usage: bfs [flags...] [paths...] [expression...]bfs is compatible with find, with some extensions. Flags (-H/-L/-P etc.), paths,and expressions may be freely mixed in any order.Flags: -H Follow symbolic links on the command line, but not while searching -L Follow all symbolic links -P Never follow symbolic links (the default) -E: $ $ b $ bf $ bfs $ bfs ../file./link./archive.zip./bin./songs./videos./bin/program./bin/script.sh./songs/song.mp3./songs/song.flac./videos/video.mp4./videos/video.mkv$ $ b $ bf $ bfs $ bfs $ bfs - $ bfs -n $ bfs -no $ bfs -not $ bfs -not $ bfs -not - $ bfs -not -t $ bfs -not -ty $ bfs -not -typ $ bfs -not -type $ bfs -not -type $ bfs -not -type d $ bfs -not -type d $ bfs -not -type d - $ bfs -not -type d -l $ bfs -not -type d -ls $ bfs -not -type d -ls 26037588 4 -rw-r----- 1 tavianator users 1337 Mar 2 20:28 ./file 26037589 4 lrwxrwxrwx 1 tavianator users 9 Mar 2 20:28 ./link -> /dev/null 26037590 72 -rw-r----- 1 tavianator users 70568 Mar 2 20:28 ./archive.zip 26037594 156 -rwxr-x--- 1 tavianator users 158296 Mar 2 20:28 ./bin/program 26037595 56 -rwxr-x--- 1 tavianator users 53753 Mar 2 20:28 ./bin/script.sh 26037596 4992 -rw-r----- 1 tavianator users 5111174 Mar 2 20:28 ./songs/song.mp3 26037597 25452 -rw-r----- 1 tavianator users 26061823 Mar 2 20:28 ./songs/song.flac 26037598 83676 -rw-r----- 1 tavianator users 85680223 Mar 2 20:28 ./videos/video.mp4 26037599 94900 -rw-r----- 1 tavianator users 97175783 Mar 2 20:28 ./videos/video.mkv$ bfs -he $ bfs -hel $ bfs -help + Usage: bfs [flags...] [paths...] [expression...]bfs is compatible with find, with some extensions. Flags (-H/-L/-P etc.), paths,and expressions may be freely mixed in any order.Flags: -H Follow symbolic links on the command line, but not while searching -L Follow all symbolic links -P Never follow symbolic links (the default) -E: $ $ b $ bf $ bfs $ bfs ../file./link./archive.zip./bin./songs./videos./bin/program./bin/script.sh./songs/song.mp3./songs/song.flac./videos/video.mp4./videos/video.mkv$ $ b $ bf $ bfs $ bfs $ bfs - $ bfs -n $ bfs -no $ bfs -not $ bfs -not $ bfs -not - $ bfs -not -t $ bfs -not -ty $ bfs -not -typ $ bfs -not -type $ bfs -not -type $ bfs -not -type d $ bfs -not -type d $ bfs -not -type d - $ bfs -not -type d -l $ bfs -not -type d -ls $ bfs -not -type d -ls 26037588 4 -rw-r----- 1 tavianator users 1337 Mar 2 20:28 ./file 26037589 4 lrwxrwxrwx 1 tavianator users 9 Mar 2 20:28 ./link -> /dev/null 26037590 72 -rw-r----- 1 tavianator users 70568 Mar 2 20:28 ./archive.zip 26037594 156 -rwxr-x--- 1 tavianator users 158296 Mar 2 20:28 ./bin/program 26037595 56 -rwxr-x--- 1 tavianator users 53753 Mar 2 20:28 ./bin/script.sh 26037596 4992 -rw-r----- 1 tavianator users 5111174 Mar 2 20:28 ./songs/song.mp3 26037597 25452 -rw-r----- 1 tavianator users 26061823 Mar 2 20:28 ./songs/song.flac 26037598 83676 -rw-r----- 1 tavianator users 85680223 Mar 2 20:28 ./videos/video.mp4 26037599 94900 -rw-r----- 1 tavianator users 97175783 Mar 2 20:28 ./videos/video.mkv$ bfs -he $ bfs -hel $ bfs -help $ bfs -help \ No newline at end of file -- cgit v1.2.3