rules.tape shows a task list (demos/data/tasks.012) with a color scale, checkboxes, a dropdown and a rejected entry; pivot.tape builds a pivot of sales and changes its data; vim.tape moves, cuts and puts rows, searches and uses the : line; macros.tape records a column total and replays it; themes.tape previews schemes in the picker. The rules and pivot recordings join the README; vim and macros go in their docs, and stills of the theme picker, decimal arithmetic, the import picker and selection statistics go where those are described. The charts tape reached Insert > Chart by its menu position, which now opens Insert > Dropdown; it and the new tapes use the palette. Every recording is rendered again from main.
- commit
- 082e5a38bff61e648d7d956fb5f3e97f9ac8d8c2
- parent
- 26b999833e9afb5df66e7b39753d97c172e13116
- author
- Dami <dami.etoile@gmail.com>
| A | demos/ | 27 | +++++++++++++++ |
| A | demos/ | 54 | ++++++++++++++++++++++++++++++ |
| A | demos/ | 49 | +++++++++++++++++++++++++++ |
| A | demos/ | 51 | ++++++++++++++++++++++++++++ |
| A | demos/ | 31 | +++++++++++++++++ |
| A | demos/ | 45 | +++++++++++++++++++++++++ |
| M | docs/ | 2 | +- |
| M | docs/ | bin | |
| A | docs/ | bin | |
| M | docs/ | bin | |
| M | docs/ | bin | |
| M | docs/ | bin | |
| A | docs/ | bin | |
| M | docs/ | bin | |
| A | docs/ | bin | |
| M | docs/ | bin | |
| A | docs/ | bin | |
| A | docs/ | bin | |
| A | docs/ | bin | |
| A | docs/ | bin | |
| A | docs/ | bin |
@@ -0,0 +1,27 @@
1+{2+ "version": 2,3+ "widths": {"A": 16, "B": 10, "C": 8, "D": 7},4+ "cells": {5+ "A1": {"input":"Task","bold":true},6+ "B1": {"input":"Owner","bold":true},7+ "C1": {"input":"Hours","bold":true,"align":"right"},8+ "D1": {"input":"Done","bold":true,"align":"center"},9+ "A2": "Write spec", "B2": "Ann", "C2": "12", "D2": "TRUE",10+ "A3": "Build UI", "B3": "Bo", "C3": "40", "D3": "FALSE",11+ "A4": "Tests", "B4": "Cy", "C4": "26", "D4": "TRUE",12+ "A5": "Docs", "B5": "Dee", "C5": "6", "D5": "FALSE",13+ "A6": "Release notes", "B6": "Ann", "C6": "3", "D6": "FALSE",14+ "A7": "Launch", "B7": "Bo", "C7": "8", "D7": "FALSE",15+ "A8": {"input":"Total","bold":true}, "C8": "=SUM(C2:C7)"16+ },17+ "conditionalFormats": [18+ {"ranges":"A2:A7","condition":"formula","values":["=$D2"],"text":"green","strikethrough":true},19+ {"ranges":"C2:C7","scale":[{"type":"min","color":"green"},{"type":"percentile","value":"50","color":"yellow"},{"type":"max","color":"red"}]},20+ {"ranges":"C8","condition":"gt","values":["100"],"fill":"magenta","bold":true}21+ ],22+ "validations": [23+ {"ranges":"B2:B7","criteria":"list","items":["Ann","Bo","Cy"],"help":"Pick who does it"},24+ {"ranges":"D2:D7","criteria":"checkbox"},25+ {"ranges":"C2:C7","criteria":"number","condition":"between","values":["0","80"],"reject":true}26+ ]27+}@@ -0,0 +1,54 @@
1+# Macros: Data > Macros > Record macro with relative references (here2+# from the palette) records a column total as a Starlark script; saved3+# with a name and a shortcut, it replays from any cell, from Run macro4+# or the palette (or Ctrl+Alt+Shift+1, which VHS can't type), as one5+# undo step.6+Output out/macros.gif7+Source lib/setup.tape8+9+Hide10+Type "../bin/012 data/spending.csv" Enter11+Sleep 2s12+Show13+14+Sleep 800ms15+Ctrl+Down Down16+Type "Total" Enter17+Up Right18+Sleep 500ms19+Ctrl+K20+Type@100ms "relative references"21+Sleep 600ms22+Enter23+Sleep 1s24+Type "=SUM(B2:B7)" Enter25+Up26+Ctrl+B27+Sleep 800ms28+Screenshot out/stills/macro-recording.png29+Ctrl+K30+Type@100ms "stop and save"31+Sleep 600ms32+Enter33+Sleep 800ms34+Type@120ms "Column total"35+Enter36+Sleep 800ms37+Enter38+Sleep 1.2s39+Right40+Ctrl+K41+Type@100ms "run macro"42+Sleep 600ms43+Enter44+Sleep 1s45+Enter46+Sleep 1.5s47+Right48+Ctrl+K49+Type@100ms "column total"50+Sleep 1s51+Enter52+Sleep 2s53+Screenshot out/stills/macro-replayed.png54+Sleep 1.5s@@ -0,0 +1,49 @@
1+# Pivot tables: Data > Pivot table (here from the palette) summarizes2+# the table around the active cell on a new sheet, and its editor docks3+# at the right: Space adds a field to Rows, Columns or Values, and the4+# results update behind it. They stay live: a change to the data5+# recomputes them.6+Output out/pivot.gif7+Source lib/setup.tape8+9+Hide10+Type "../bin/012 data/sales.csv" Enter11+Sleep 2s12+Show13+14+Sleep 800ms15+Ctrl+K16+Type@100ms "pivot table"17+Sleep 600ms18+Enter19+Sleep 1.5s20+Space21+Type@150ms "reg"22+Sleep 600ms23+Enter24+Sleep 1.2s25+Down26+Space27+Type@150ms "quar"28+Sleep 600ms29+Enter30+Sleep 1.2s31+Down32+Space33+Type@150ms "rev"34+Sleep 600ms35+Enter36+Sleep 2s37+Screenshot out/stills/pivot-editor.png38+Enter39+Sleep 1s40+Ctrl+G41+Type "sales!D2" Enter42+Sleep 800ms43+Type "9000" Enter44+Sleep 800ms45+Ctrl+G46+Type "'Pivot Table 1'!A1" Enter47+Sleep 2.5s48+Screenshot out/stills/pivot-results.png49+Sleep 500ms@@ -0,0 +1,51 @@
1+# Conditional formatting and data validation: a task list whose done2+# tasks are struck through in green, whose hours are shaded on a color3+# scale, and whose total turns magenta past 100. Space checks a box,4+# Alt+Down (here from the palette, as VHS can't type it) opens an5+# owner's dropdown, a value the rule rejects is refused6+# with Sheets' words, and Format > Conditional formatting lists the rules.7+Output out/rules.gif8+Source lib/setup.tape9+10+Hide11+Type "../bin/012 data/tasks.012" Enter12+Sleep 2s13+Show14+15+Sleep 1s16+Down@300ms 2 Right@300ms 317+Sleep 600ms18+Space19+Sleep 1.5s20+Left@300ms 2 Down@300ms 221+Sleep 600ms22+Ctrl+K23+Type@100ms "open dropdown"24+Sleep 500ms25+Enter26+Sleep 1s27+Type@150ms "bo"28+Sleep 800ms29+Screenshot out/stills/rules-dropdown.png30+Enter31+Sleep 1s32+Right Up@300ms 233+Type "90" Enter34+Sleep 1.5s35+Screenshot out/stills/rules-reject.png36+Escape37+Sleep 500ms38+Type "70" Enter39+Sleep 2s40+Screenshot out/stills/rules-sheet.png41+Sleep 500ms42+Ctrl+K43+Type@100ms "conditional formatting"44+Sleep 600ms45+Enter46+Sleep 1s47+Down@500ms 248+Sleep 1.5s49+Screenshot out/stills/rules-panel.png50+Escape51+Sleep 1s@@ -0,0 +1,31 @@
1+# Themes: File > Settings > Theme (here from the palette) lists the2+# built-in color schemes; the highlighted one is drawn live as you move,3+# typing narrows the list, and Esc goes back to the theme you had (Enter4+# would keep it in the config file).5+Output out/themes.gif6+Source lib/setup.tape7+8+Hide9+Type "../bin/012 data/spending.csv" Enter10+Sleep 2s11+Show12+13+Sleep 800ms14+Ctrl+K15+Type@100ms "theme"16+Sleep 600ms17+Enter18+Sleep 1.2s19+Type@150ms "dracula"20+Sleep 1.5s21+Screenshot out/stills/theme-dracula.png22+Backspace@60ms 723+Type@150ms "1-2-3"24+Sleep 2s25+Screenshot out/stills/theme-classic.png26+Backspace@60ms 527+Type@150ms "latte"28+Sleep 2s29+Screenshot out/stills/theme-light.png30+Escape31+Sleep 1.5s@@ -0,0 +1,45 @@
1+# Vim keys (File > Settings > Vim keys, or keymap = vim in the config2+# file): the mode indicator says NORMAL, hjkl and counts move, dd cuts a3+# row and p puts it back, / finds, and the : line runs any command with4+# completions. O12_KEYMAP turns them on here so the recording leaves the5+# config file alone.6+Output out/vim.gif7+Source lib/setup.tape8+9+Hide10+Type "O12_KEYMAP=vim ../bin/012 data/inventory.csv" Enter11+Sleep 2s12+Show13+14+Sleep 1s15+Type@400ms "5jll"16+Sleep 800ms17+Type "dd"18+Sleep 1.2s19+Type@300ms "3j"20+Type "p"21+Sleep 1.5s22+Type "/"23+Sleep 400ms24+Type@150ms "acme"25+Enter26+Sleep 800ms27+Type@500ms "nn"28+Sleep 800ms29+Type "V"30+Type@300ms "2j"31+Sleep 1s32+Screenshot out/stills/vim-visual.png33+Escape34+Sleep 500ms35+Type ":"36+Sleep 400ms37+Type@150ms "freeze 1 row"38+Sleep 1.2s39+Screenshot out/stills/vim-command.png40+Enter41+Sleep 1s42+Type "G"43+Sleep 1.5s44+Type "gg"45+Sleep 1.5s@@ -7,7 +7,7 @@ script (a small, deterministic dialect of Python) saved in the `.012`
77 file, as Sheets saves Apps Script with a spreadsheet. Recorded macros are88 scripts too, so you can read them, change them, or write your own.99 10-10+1111 1212 ## Recording1313 Binary file.
Binary file.
Binary file.
Binary file.
Binary file.
Binary file.
Binary file.
Binary file.
Binary file.
Binary file.
Binary file.
Binary file.
Binary file.
Binary file.