├── .gitignore ├── .vscode └── extensions.json ├── LICENSE.md ├── README.md ├── index.html ├── jsconfig.json ├── package-lock.json ├── package.json ├── prettier.config.js ├── public ├── book-open.svg ├── c.typ ├── c2.typ ├── d.typ ├── d2.typ ├── demo.typ ├── github.svg ├── gtypist.typ ├── n.typ ├── n2.typ ├── p2.typ ├── plus.svg ├── q.typ ├── q2.typ ├── r.typ ├── r2.typ ├── s.typ ├── s2.typ ├── t.typ ├── t2.typ ├── u.typ ├── u2.typ ├── v.typ ├── v2.typ └── vite.svg ├── src ├── App.svelte ├── app.css ├── assets │ └── svelte.svg ├── components │ ├── BTIDisplay.svelte │ ├── LoadType.svelte │ ├── Menu.svelte │ ├── Progressbox.svelte │ ├── Query.svelte │ └── Writebox.svelte ├── constants │ └── constants.js ├── main.js ├── parser │ └── script.js ├── stores │ └── textstore.js ├── util │ └── Typeutils.js └── vite-env.d.ts ├── svelte.config.js └── vite.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["svelte.svelte-vscode"] 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Webtypist 2 | 3 | [Webtypist](https://webtypist.vercel.app) is a browser-based typing tutor. 4 | 5 | It teaches you how to touch-type and improve your typing speed. There are a plenty of lessons ranging from beginner to advanced including one for programmers (`(p) series`) and special keyboards (Numpad `(n) series`, Colemak `(c series)`) 6 | 7 | ![webtypist2](https://github.com/arshxyz/webtypist/assets/23417273/fe40ac93-44b4-4ca2-97da-15d3a590ddc2) 8 | 9 | 10 | Give it a try here - [webtypist.vercel.app](https://webtypist.vercel.app) 11 | 12 | Webtypist is inspired by GNU typist (`gtypist`) and is capable of parsing and running `.typ` lessons built for GNU Typist. In other words, you can call it gtypist for the web. 13 | 14 | 15 | ## Lessons included 16 | - Quick QWERTY (q) Series 17 | - Long QWERTY (r) Series 18 | - Speed Drills (s) Series 19 | - Programmer (p) Series 20 | - QWERTY review (u) Series 21 | - Numpad (n) Series 22 | - Colemak (c) Series 23 | - Dvorak (d) Series 24 | 25 | ## How do I make my own lesson? 26 | All lessons on webtypist are GNU typist `.typ` files which are inside the `/public` folder of this repository. Have a look at `demo.typ` to understand the basic commands used. Open [webtypist](https://webtypist.vercel.app) and click the "Make your own lesson" button to see how `demo.typ` runs. 27 | 28 | To learn more check the [GNU Typist Manual](https://www.gnu.org/software/gtypist/doc/gtypist.html#Script-file-commands) 29 | 30 | 31 | 32 | ## Contributing 33 | You can contribute lessons or code by submitting a pull request. Support for non-English lessons isn't guaranteed so try running those before you open a PR. 34 | 35 | ## Coming soon 36 | - Type ahead and sync behind error correction 37 | - KDE's .ktouch file support 38 | 39 | ## Thanks 40 | - GNU Typist authors and contributors for the [original `gtypist` program](https://www.gnu.org/savannah-checkouts/gnu/gtypist/gtypist.html), through which I learnt to type 41 | - [Daniel Sockwell](https://codesections.com/) for authoring the `(p) series` lesson 42 | 43 | Happy typing! 44 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 15 | 16 | webtypist 17 | 18 | 19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "moduleResolution": "bundler", 4 | "target": "ESNext", 5 | "module": "ESNext", 6 | /** 7 | * svelte-preprocess cannot figure out whether you have 8 | * a value or a type, so tell TypeScript to enforce using 9 | * `import type` instead of `import` for Types. 10 | */ 11 | "verbatimModuleSyntax": true, 12 | "isolatedModules": true, 13 | "resolveJsonModule": true, 14 | /** 15 | * To have warnings / errors of the Svelte compiler at the 16 | * correct position, enable source maps by default. 17 | */ 18 | "sourceMap": true, 19 | "esModuleInterop": true, 20 | "skipLibCheck": true, 21 | /** 22 | * Typecheck JS in `.svelte` and `.js` files by default. 23 | * Disable this if you'd like to use dynamic types. 24 | */ 25 | "checkJs": false 26 | }, 27 | /** 28 | * Use global.d.ts instead of compilerOptions.types 29 | * to avoid limiting type declarations. 30 | */ 31 | "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] 32 | } 33 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "key", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "devDependencies": { 12 | "@sveltejs/vite-plugin-svelte": "^3.0.2", 13 | "svelte": "^4.2.12", 14 | "vite": "^5.2.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | const config = { 2 | printWidth: 250 3 | } 4 | 5 | export default config -------------------------------------------------------------------------------- /public/book-open.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/c2.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # Copyright (C) 2011 GNU Typist Development Team 3 | # 4 | # This program is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | 18 | #------------------------------------------------------------------------------ 19 | # Series C 20 | #------------------------------------------------------------------------------ 21 | G:_C_MENU 22 | *:_C_NO_MENU 23 | 24 | #------------------------------------------------------------------------------ 25 | # Lesson C1 26 | #------------------------------------------------------------------------------ 27 | *:C1 28 | *:_C_S_C1 29 | B: Lesson C1 30 | 31 | T: Welcome to the Colemak Course 32 | : 33 | :This course is intended for beginners as well as experienced typists. The 34 | :Colemak keyboard is an alternative to the QWERTY (Sholes) keyboard layout. 35 | :You will find it easier to learn than the QWERTY and Dvorak keyboard layouts. 36 | : 37 | :Like the Dvorak keyboard, this is because the Colemak keyboard layout has been 38 | :scientifically designed to minimise cumulative finger motion while typing 39 | :English. The ten letters on the home row (A, R, S, T, D, H, N, E, I, and O) 40 | :make up about 70% of all keystrokes. These ten letters alone can form over 41 | :3000 words. Needless to say, having these keys in the home row facilitates 42 | :both speed and accuracy. 43 | : 44 | :Unlike the Dvorak keyboard layout, however, the Colemak keyboard layout has 45 | :also specifically been designed to be easy to learn for people who are already 46 | :familiar with using a QWERTY keyboard layout. Despite this, it appears that 47 | :the Colemak keyboard is as fast as, if not faster than, the Dvorak keyboard. 48 | : 49 | :For information about the Colemak kyboard layout, see . 50 | 51 | T: General Instructions 52 | : 53 | :The fingers of the left hand should be placed over the A-key, the R-key, 54 | :the S-key, and the T-key. Similarly, the fingers of the right hand should be 55 | :placed over the N-key, the E-key, the I-key, and the O-key. This is called the 56 | :HOME position. Only these fingers should be used to press the keys that they 57 | :are above. 58 | : 59 | :In addition to these keys, the SPACE bar should be pressed with the thumb of 60 | :the right hand. At the end of every line, the RETURN key should be pressed 61 | :with the fourth finger of the right hand. 62 | 63 | I:(1) S, T, N and E 64 | *:_C_R_C1_1 65 | D:sets tens ten tnt sestet tenet seen nene testee tenets essen sent senses 66 | :tenses teens stent sense tent nets tenseness net tense nests tennessee 67 | 68 | I:(2) 69 | *:_C_R_C1_2 70 | D:teen nest tents net tens teen tenets senses nests nest nets tenet sent sense 71 | :tenses tennessee essen tnt tent teens tense nene stent seen 72 | 73 | G:_C_E_C1 74 | 75 | #------------------------------------------------------------------------------ 76 | # Lesson C2 77 | #------------------------------------------------------------------------------ 78 | *:C2 79 | *:_C_S_C2 80 | B: Lesson C2 81 | 82 | I:(1) R and I 83 | *:_C_R_C2_1 84 | D:trite stress sire it entire terse tit sir tire sinner retire rinse inn tree 85 | :insist tier rite teeter resin stir siren enter 86 | 87 | I:(2) 88 | *:_C_R_C2_2 89 | D:sitter insert site sneer intern tie inner series steer tin riser its resent 90 | :sin rise rent rein iris stern in titter resist 91 | 92 | I:(3) 93 | *:_C_R_C2_3 94 | D:eerie inert street is renter sit nine risen sister serene stint err snit 95 | :intent entree nit inter rest tennis re tint 96 | 97 | G:_C_E_C2 98 | 99 | #------------------------------------------------------------------------------ 100 | # Lesson C3 101 | #------------------------------------------------------------------------------ 102 | *:C3 103 | *:_C_S_C3 104 | B: Lesson C3 105 | 106 | I:(1) A and O 107 | *:_C_R_C3_1 108 | D:retain roe rant ratio toast sort stat tore earn noose teat eater oat trio tear 109 | :tone artist nor tattoo seat arise noise start toss tenant oasis 110 | 111 | I:(2) 112 | *:_C_R_C3_2 113 | D:one aria no arson sonata soon rear to ass soot irate sane onset star root 114 | :state oar errant resort tartan sonnet notes eat rotten stain ration 115 | 116 | I:(3) 117 | *:_C_R_C3_3 118 | D:arose reason noon sass retina iota torn stairs iron estate toe are season not 119 | :attire tenor innate torso tease arisen note tar snort tarot 120 | 121 | G:_C_E_C3 122 | 123 | #------------------------------------------------------------------------------ 124 | # Lesson C4 125 | #------------------------------------------------------------------------------ 126 | *:C4 127 | *:_C_S_C4 128 | B: Lesson C4 129 | 130 | T: General Instructions 131 | : 132 | :When you need to press the D-key or the H-key, the first finger of the left or 133 | :right hand, respectively, should be used. No other finger should be used. 134 | 135 | I:(1) D and H 136 | *:_C_R_C4_1 137 | D:odds the hard tooth tide ether raid other rend hire dress has noted ash aide 138 | :ha rider hiss soda ninth aside ahead hate toad shirt shed dare hid 139 | 140 | I:(2) 141 | *:_C_R_C4_2 142 | D:this dose horde ashen road shot shod idea hear hand read rash darts those 143 | :stand three stood shorn trend hint dote short darn ah staid her node had 144 | 145 | I:(3) 146 | *:_C_R_C4_3 147 | D:heard horn third add these hot ode hers does heart hated did rhino sash door 148 | :teeth rid here sod hoe nerd head hose drier trash tread host date hat 149 | 150 | G:_C_E_C4 151 | 152 | #------------------------------------------------------------------------------ 153 | # Lesson C5 154 | #------------------------------------------------------------------------------ 155 | *:C5 156 | *:_C_S_C5 157 | B: Lesson C5 158 | 159 | I:(1) HOME row exercises 160 | *:_C_R_C5_1 161 | D:his hat is an aid in the hot heat 162 | :in his sad sod rest he sat on his hen 163 | 164 | I:(2) 165 | *:_C_R_C5_2 166 | D:ron did not don his hoe and tin hat 167 | :dan did not see the dot on his tie as he hid his tan hat 168 | 169 | I:(3) 170 | *:_C_R_C5_3 171 | D:i do as i do and the end is not as sad as the one sid had 172 | 173 | I:(4) 174 | *:_C_R_C5_4 175 | D:add ado ads aha aid air and ani ant are art ash ass ate dad den 176 | :did die din dis doe don dos dot ear eat end eon era ere err eta 177 | :had hah has hat hen her hes hid hie his hit hod hoe hos hot ids 178 | 179 | I:(5) 180 | *:_C_R_C5_5 181 | D:inn ins ion ire its net nit nod non nor not nth oar oat odd ode 182 | :oho ohs one ore ran rat red rho rid rod roe rot sad sat sea see 183 | :set she sin sir sis sit sod son sot tad tan tar tat tea tee ten 184 | :the tho tie tin tit toe ton too tor tot 185 | 186 | I:(6) 187 | *:_C_R_C5_6 188 | D:adds aeon ahas aide aids airs ands anon ante anti ants area ares 189 | :dint dire dirt dish diss dodo doer does done dons door dose dote 190 | :hair hand hard hare hart hash hate hath hats head hear heat heed 191 | :inti into ions iota ired ires iris iron near neat need neon nerd 192 | 193 | I:(7) 194 | *:_C_R_C5_7 195 | D:rash rate rats read rear redo reds reed rein rend rent rest rhea 196 | :sate sear seas seat seed seen seer sees send sent sera sere sets 197 | :soot sore sort sots star stir tads tans tare taro tars tart tats 198 | :toad toed toes tone tons toot tore torn tors tort toss tost 199 | 200 | G:_C_E_C5 201 | 202 | #------------------------------------------------------------------------------ 203 | # Lesson C6 204 | #------------------------------------------------------------------------------ 205 | *:C6 206 | *:_C_S_C6 207 | B: Lesson C6 208 | 209 | T: General Instructions 210 | : 211 | :The P-key and the L-key should be pressed only by the first finger of the left 212 | :or right hand. 213 | 214 | I:(1) P and L 215 | *:_C_R_C6_1 216 | D:toil dip lithe peer oiled spite less phase sold oops spiel slid patio slat 217 | :nope slit poet spelt leper hall plaid snoop spill 218 | 219 | I:(2) 220 | *:_C_R_C6_2 221 | D:padre paint dial pin land splat plop pale lead lip pail pond lope else pan 222 | :peal stilt shop plot steal pain spool load peter solid 223 | 224 | I:(3) 225 | *:_C_R_C6_3 226 | D:pilot sleep pep lone ale spend lilt past spit lots steep pool ideal pal snipe 227 | :slope apple old petal polar let paste slip heist 228 | 229 | G:_C_E_C6 230 | 231 | #------------------------------------------------------------------------------ 232 | # Lesson C7 233 | #------------------------------------------------------------------------------ 234 | *:C7 235 | *:_C_S_C7 236 | B: Lesson C7 237 | 238 | T: General Instructions 239 | : 240 | :The F-key and the U-key should be pressed only by the second finger of the left 241 | :or right hand. 242 | 243 | I:(1) P and L 244 | *:_C_R_C7_1 245 | D:urn file hound flora pupil feast upper fade spud fern spurn froth huh foal 246 | :dune sniff rerun furor tune fresh hush shaft lure left fuss usher 247 | 248 | I:(2) 249 | *:_C_R_C7_2 250 | D:thief surf taut fold found sour fire stunt elf letup fell tout fun tuft puff 251 | :us foe run fatal flout usurp flap ford four sinus fated dual roof 252 | 253 | I:(3) 254 | *:_C_R_C7_3 255 | D:proud final fur utter fool round furl flare rude flute self hut stiff foul 256 | :unit fraud pulp flood route feed pause fund fetid hurl tofu fear 257 | 258 | G:_C_E_C7 259 | 260 | #------------------------------------------------------------------------------ 261 | # Lesson C8 262 | #------------------------------------------------------------------------------ 263 | *:C8 264 | *:_C_S_C8 265 | B: Lesson C8 266 | 267 | T: General Instructions 268 | : 269 | :The W-key and the Y-key should be pressed only by the third finger of the left 270 | :or right hand. 271 | 272 | I:(1) W and Y 273 | *:_C_R_C8_1 274 | D:wasp way delay hewn fury twit newsy yet whir ray water hurry dawn holly widen 275 | :penny widow raspy yawn lily downy dwell 276 | 277 | I:(2) 278 | *:_C_R_C8_2 279 | D:wiry sissy warp snowy furry swift windy hefty wish filly sweat hype sway prawn 280 | :day fowl noisy wail surly rowdy wily 281 | 282 | I:(3) 283 | *:_C_R_C8_3 284 | D:sweet lowly synod went posy strew your swine yap whoa paddy weep artsy aware 285 | :stray wade style woof sunny stow pray 286 | 287 | I:(4) 288 | *:_C_R_C8_4 289 | D:wife days frown wispy ply howl phony awe hyena endow handy whet yeast stew 290 | :type word dandy show duly weird tasty newly 291 | 292 | G:_C_E_C8 293 | 294 | #------------------------------------------------------------------------------ 295 | # Lesson C9 296 | #------------------------------------------------------------------------------ 297 | *:C9 298 | *:_C_S_C9 299 | B: Lesson C9 300 | 301 | T: General Instructions 302 | : 303 | :The G-key and the J-key should be pressed only by the first finger of the left 304 | :or right hand. 305 | 306 | I:(1) G and J 307 | *:_C_R_C9_1 308 | D:jaw gel jut gape jury night juror giant jade gut jug jaunt gofer jeer gash 309 | :just hog jot leg jog jet fight jilt guilt joy ghoul 310 | 311 | I:(2) 312 | *:_C_R_C9_2 313 | D:jewel slog jeans gal jig jail dough jar pang jelly rang jowls gag jaws jiffy 314 | :deign junta go jetty grass jaded fang joint gull 315 | 316 | I:(3) 317 | *:_C_R_C9_3 318 | D:ajar dig jest gaffe fjord along join glass jolt groan jolly sting jeans green 319 | :jiffy golly jot fig jilt sag jetty gruff jail 320 | 321 | I:(4) 322 | *:_C_R_C9_4 323 | D:sung jaw gushy jeer gala just age jig jaded glee jut tongs jar god jet grate 324 | :jade genre sharp jelly tangy proof ajar pager 325 | 326 | G:_C_E_C9 327 | 328 | #------------------------------------------------------------------------------ 329 | # Lesson C10 330 | #------------------------------------------------------------------------------ 331 | *:C10 332 | *:_C_S_C10 333 | B: Lesson C10 334 | 335 | T: General Instructions 336 | : 337 | :The M-key and the V-key should be pressed only by the first finger of the left 338 | :or right hand. 339 | 340 | I:(1) M and V 341 | *:_C_R_C10_1 342 | D:envy mount vivid made motor navel moose lever madly levy muddy dive trump 343 | :raven harem vain nomad view month hover lemon naval imply valet 344 | 345 | I:(2) 346 | *:_C_R_C10_2 347 | D:gnome oven mean move grove swim vote swamp levee germ vat melee novel frame 348 | :eve humid vile swarm verge med five limp haven ramp vet mitt 349 | 350 | I:(3) 351 | *:_C_R_C10_3 352 | D:seven maple mover venom lava yum drive moat wove swam savor maim given dove 353 | :dome ivory stomp very tumor sever sham avert loom vigor moldy 354 | 355 | I:(4) 356 | *:_C_R_C10_4 357 | D:movie voter foam vast media devil metal grave muggy jar salve madam jot vie 358 | :just saver dream jet foil vow him jumpy aloof shave 359 | 360 | G:_C_E_C10 361 | 362 | #------------------------------------------------------------------------------ 363 | # Lesson C11 364 | #------------------------------------------------------------------------------ 365 | *:C11 366 | *:_C_S_C11 367 | B: Lesson C11 368 | 369 | T: General Instructions 370 | : 371 | :The B-key and the K-key should be pressed only by the first finger of the left 372 | :or right hand. 373 | 374 | I:(1) B and K 375 | *:_C_R_C11_1 376 | D:make lamb disk boob smoke skim abort kin blush dorky buns fake snub pike fable 377 | :geeky beam eke brown waken butt nook bed oak buddy biker 378 | 379 | I:(2) 380 | *:_C_R_C11_2 381 | D:stake bide dusk been risk belly joke bolt baker skull bore peek buyer awoke 382 | :bliss looks babe kiddo sheik debut sky web frisk brief mark 383 | 384 | I:(3) 385 | *:_C_R_C11_3 386 | D:adobe woke jamb bike brisk nuke bulge kiss boa shook bayou okra tuba flask 387 | :maybe desk brash week bongo flake jab murky bogus duke rehab 388 | 389 | I:(4) 390 | *:_C_R_C11_4 391 | D:stoke about trike birth maker book bird king ivory bond kiwi veto bill wok 392 | :vine point boost just jerky naive promo baggy speak stave tribe 393 | 394 | G:_C_E_C11 395 | 396 | #------------------------------------------------------------------------------ 397 | # Lesson C12 398 | #------------------------------------------------------------------------------ 399 | *:C12 400 | *:_C_S_C12 401 | B: Lesson C12 402 | 403 | T: General Instructions 404 | : 405 | :The Q-key should be pressed only by fourth finger on the left hand. The C-key 406 | :should only be pressed by the second finger on the left hand. 407 | 408 | I:(1) Q and C 409 | *:_C_R_C12_1 410 | D:circa quote quip cult quail craft quiet cute quash pubic quilt cheap quirk 411 | :rice squad colt quay cleft quite music quit croon quits 412 | 413 | I:(2) 414 | *:_C_R_C12_2 415 | D:cab equal curl quick quake manic quad reach quark chord quart pace quill sack 416 | :equip track squid sick quack squat poach quota eject 417 | 418 | I:(3) 419 | *:_C_R_C12_3 420 | D:quark speck quail space quip chop quad comic quill squid clef quake close 421 | :quota color quash care quick squad each quart pouch 422 | 423 | I:(4) 424 | *:_C_R_C12_4 425 | D:quack equip twice quite black quilt thick quirk sic quits curly quiet coach 426 | :quit quote gloss valor champ squat wares joy gasp vat 427 | 428 | I:(5) 429 | *:_C_R_C12_5 430 | D:cross equal mown jest night vote coast quay tweak juicy lingo fit visa quilt 431 | :sob threw jar grit info valet clamp quits limbo 432 | 433 | G:_C_E_C12 434 | 435 | #------------------------------------------------------------------------------ 436 | # Lesson C13 437 | #------------------------------------------------------------------------------ 438 | *:C13 439 | *:_C_S_C13 440 | B: Lesson C13 441 | 442 | T: General Instructions 443 | : 444 | :The Z-key and X-key should be pressed by fourth and third fingers on the left 445 | :hand, respectively. 446 | 447 | I:(1) Z and X 448 | *:_C_R_C13_1 449 | D:exec fuzz boxer buxom glitz exam zeal toxic jeez lax hertz extol prize text 450 | :ozone pixie size pixel booze ex zoom crux gauze fax woozy ax tizzy flux 451 | 452 | I:(2) 453 | *:_C_R_C13_2 454 | D:jinx zit oxide froze axle ooze extra dozen exit bozo waxy quiz tax ritzy ox 455 | :fizz index axes zinc apex zip exist buzz expo oxen fez tux dizzy proxy 456 | 457 | I:(3) 458 | *:_C_R_C13_3 459 | D:detox zebra next doze max waltz affix zest sixty zone exact zoo excel frizz 460 | :fox sex blitz mixer gizmo foxy seize mix unzip flex fizzy six fixed 461 | 462 | I:(4) 463 | *:_C_R_C13_4 464 | D:jerk valve whiz relax work equal fuzzy exert quark hoard evil mixed jolly 465 | :shook twang dove quota zero annex jibe key ranch regal wavy quick cozy 466 | 467 | G:_C_E_C13 468 | 469 | #------------------------------------------------------------------------------ 470 | # Lesson C14 471 | #------------------------------------------------------------------------------ 472 | *:C14 473 | *:_C_S_C14 474 | B: Lesson C14 475 | 476 | T: Learning the SHIFT key 477 | : 478 | :To integrate the shift key rhythmically in your practice, a capital letter 479 | :should take three beats: 480 | : 1. press the shift key opposite the hand to press the letter key 481 | : 2. press the letter 482 | : 3. release the shift key 483 | 484 | I:(1) 485 | *:_C_R_C14_1 486 | D:Ada Anne Ana Ann Dad Dan Don Ed Eta Rita 487 | :Dan Nan Nat Ned Sid Sire Tad Ted Tod Rene 488 | 489 | I:(2) 490 | *:_C_R_C14_2 491 | D:The sad tot sat on a tan seat in his neat tent 492 | :He ate ten stones 493 | 494 | I:(3) 495 | *:_C_R_C14_3 496 | D:On his date Otis has a thin suit 497 | :There is no tint on his shoes 498 | 499 | I:(4) 500 | *:_C_R_C14_4 501 | D:Enos eats a thin hash diet in a dish as he sits on an odd seat 502 | :Dad does not eat desert 503 | :He had seen Ted dent his auto 504 | 505 | I:(5) 506 | *:_C_R_C14_5 507 | D:Adna Anna Anne Dana Dead Edie Edna Enid Etta Heda 508 | :Nate Nina Neta Nona Odie Ohio Otto Stan Tess Thad Theo 509 | 510 | G:_C_E_C14 511 | 512 | #------------------------------------------------------------------------------ 513 | # Lesson C15 514 | #------------------------------------------------------------------------------ 515 | *:C15 516 | *:_C_S_C15 517 | B: Lesson C15 518 | 519 | T: Learning punctuation 520 | : 521 | :The period/full stop is below the forth finger on the right hand. Note that 522 | :the end of a sentence should be followed by one space because it is 523 | :no longer 1957. 524 | : 525 | :The comma is below the third finger on the right hand. 526 | : 527 | :The fourth finger of the right hand and the left SHIFT key should be used to 528 | :type a question point/mark. 529 | 530 | I:(1) 531 | *:_C_R_C15_1 532 | D:e. e. e. e. a. s. o. n. e. t. r. h. i. d. a. a. 533 | :h. r. a. i. o. n. s. d. t. e. h. o. r. i. s. a. 534 | 535 | I:(2) 536 | *:_C_R_C15_2 537 | D:Adana. Andie. Annie. Aonia. Ardie. Denis. Diana. Dinah. 538 | 539 | I:(3) 540 | *:_C_R_C15_3 541 | D:On the horse, Adana dined in haste on toast and dates. 542 | :Sated, as she had eaten she noted the sheen on the drones 543 | :and the shade in the sheds. She hates to see an idiot 544 | :stand and shoot his tenth doe in the dense heath. 545 | 546 | I:(4) 547 | *:_C_R_C15_4 548 | D:An onion heats, stuned, a stout nose. As does she? As do I? 549 | :Do I send hands to douse teeth? Are their suedes hoisted ahead? 550 | 551 | I:(5) 552 | *:_C_R_C15_5 553 | D:The shy ape put on a red hat and ran off with the lot. Can pa 554 | :go aft and lie on our old cot? For a top fee, her act is to hop 555 | :in, lie on the rug, pat her pet cat, fit a fur on her ear, get 556 | :her fan, and run off. 557 | 558 | G:_C_E_C15 559 | 560 | #------------------------------------------------------------------------------ 561 | # Lesson C16 562 | #------------------------------------------------------------------------------ 563 | *:C16 564 | *:_C_S_C16 565 | B: Lesson C16 566 | 567 | T: Frequent words 568 | : 569 | :The following 135 words are so frequently used that they comprise 50% of all 570 | :words normally typed. If you can type the next two exercises without errors, 571 | :half of all of your typed words will be correct! 572 | 573 | I:(1) 574 | *:_C_R_C16_1 575 | D:a about after all also an and another any are as at back be because 576 | :been before being between both but by can could day did do down each 577 | :even first for from get good had has have he her here him his how I 578 | :if in into is it its just know last life like little long made make 579 | :many may me men more most Mr. Ms. much must my never new no not now 580 | 581 | I:(2) 582 | *:_C_R_C16_2 583 | D:of or on one only or other our out over own people said same see she 584 | :should so some state still such than that the their them then there 585 | :these they this those through time to too two under up very was way 586 | :we well were what when where which while who will with work would 587 | :years you your 588 | 589 | T:We now concentrate on words amongst the top one thousand most frequently used 590 | :that can be types using only the HOME row. 591 | 592 | I:(3) 593 | *:_C_R_C16_3 594 | D:notes enter other these there their another sentence three Indian 595 | :start those state earth order stand horse short north heard nothing 596 | :inside strong stars street stood reason interest instruments train 597 | 598 | I:(4) 599 | *:_C_R_C16_4 600 | D:third raised store distance heart instead either nation stone dress 601 | :straight statement seeds desert history strange trade rather entered 602 | :interesting sense string stream addition sister radio death determine 603 | :stretched details entire ahead shoes northern triangle doesn't 604 | 605 | G:_C_E_C16 606 | 607 | #------------------------------------------------------------------------------ 608 | # Lesson C17 609 | #------------------------------------------------------------------------------ 610 | *:C17 611 | *:_C_S_C17 612 | B: Lesson C17 613 | 614 | T: Alphabetic sentences 615 | : 616 | :In this lesson we practice alphabetic sentences. 617 | 618 | I:(1) 619 | *:_C_R_C17_1 620 | D:Sixty-five quizzical sheep kept their jaws dry in a farm bungalow. 621 | 622 | I:(2) 623 | *:_C_R_C17_2 624 | D:Balky Zulus find they can hoax weary men with quavery jumping. 625 | 626 | I:(3) 627 | *:_C_R_C17_3 628 | D:Jerome quickly began to be vexed by the powerful blizzards. 629 | 630 | I:(4) 631 | *:_C_R_C17_4 632 | D:Squawking gorillas could vex the brazen nymphs in a jiffy. 633 | 634 | I:(5) 635 | *:_C_R_C17_5 636 | D:Can Jerry's equipment file saws, ax, hoe, knives and grind adz? 637 | 638 | I:(6) 639 | *:_C_R_C17_6 640 | D:Ben works at squeezing very juicy plums with flexed thumbs. 641 | 642 | I:(7) 643 | *:_C_R_C17_7 644 | D:The black wizard quipping jovially flexed his muscles. 645 | 646 | I:(8) 647 | *:_C_R_C17_8 648 | D:Will you pack my jugs of liquid veneer in five dozen boxes? 649 | 650 | I:(9) 651 | *:_C_R_C17_9 652 | D:Could the wizard jinx quivering folks by magic yelps? 653 | 654 | I:(10) 655 | *:_C_R_C17_10 656 | D:Brazen gazelles quickly examined the forward jeep. 657 | 658 | I:(11) 659 | *:_C_R_C17_11 660 | D:The brown dog quickly jumped over the lazy fox. 661 | 662 | I:(12) 663 | *:_C_R_C17_12 664 | D:Will the kind judge squelch the five or six brazen nymphs? 665 | 666 | I:(13) 667 | *:_C_R_C17_13 668 | D:Mix zippy Kadota figs with quivering cranberry jelly. 669 | 670 | I:(14) 671 | *:_C_R_C17_14 672 | D:The wives quickly jerked extra big pizzas from the stand. 673 | 674 | I:(15) 675 | *:_C_R_C17_15 676 | D:Lisa quickly mixed the very big jar of new soap. 677 | 678 | I:(16) 679 | *:_C_R_C17_16 680 | D:The major will fix a quiet cozy nook for the vexed, bad Gypsy. 681 | 682 | I:(17) 683 | *:_C_R_C17_17 684 | D:Pairs of lazy knowing oxen came by quietly evading the jam. 685 | 686 | I:(18) 687 | *:_C_R_C17_18 688 | D:Juvenile zest for excitement whetted interest in parking by the quay. 689 | 690 | I:(19) 691 | *:_C_R_C17_19 692 | D:Put your big ax, shovel and quartz where Mike's fence joins ours. 693 | 694 | I:(20) 695 | *:_C_R_C17_20 696 | D:The brawny jaguar held fast till the quaking Zouave victim expired. 697 | 698 | G:_C_E_C17 699 | 700 | #------------------------------------------------------------------------------ 701 | # Lesson series C jump tables 702 | #------------------------------------------------------------------------------ 703 | *:_C_E_C1 704 | Q: Do you want to continue to lesson C2 [Y/N] ? 705 | N:_C_MENU 706 | G:_C_S_C2 707 | *:_C_E_C2 708 | Q: Do you want to continue to lesson C3 [Y/N] ? 709 | N:_C_MENU 710 | G:_C_S_C3 711 | *:_C_E_C3 712 | Q: Do you want to continue to lesson C4 [Y/N] ? 713 | N:_C_MENU 714 | G:_C_S_C4 715 | *:_C_E_C4 716 | Q: Do you want to continue to lesson C5 [Y/N] ? 717 | N:_C_MENU 718 | G:_C_S_C5 719 | *:_C_E_C5 720 | Q: Do you want to continue to lesson C6 [Y/N] ? 721 | N:_C_MENU 722 | G:_C_S_C6 723 | *:_C_E_C6 724 | Q: Do you want to continue to lesson C7 [Y/N] ? 725 | N:_C_MENU 726 | G:_C_S_C7 727 | *:_C_E_C7 728 | Q: Do you want to continue to lesson C8 [Y/N] ? 729 | N:_C_MENU 730 | G:_C_S_C8 731 | *:_C_E_C8 732 | Q: Do you want to continue to lesson C9 [Y/N] ? 733 | N:_C_MENU 734 | G:_C_S_C9 735 | *:_C_E_C9 736 | Q: Do you want to continue to lesson C10 [Y/N] ? 737 | N:_C_MENU 738 | G:_C_S_C10 739 | *:_C_E_C10 740 | Q: Do you want to continue to lesson C11 [Y/N] ? 741 | N:_C_MENU 742 | G:_C_S_C11 743 | *:_C_E_C11 744 | Q: Do you want to continue to lesson C12 [Y/N] ? 745 | N:_C_MENU 746 | G:_C_S_C12 747 | *:_C_E_C12 748 | Q: Do you want to continue to lesson C13 [Y/N] ? 749 | N:_C_MENU 750 | G:_C_S_C13 751 | *:_C_E_C13 752 | Q: Do you want to continue to lesson C14 [Y/N] ? 753 | N:_C_MENU 754 | G:_C_S_C14 755 | *:_C_E_C14 756 | Q: Do you want to continue to lesson C15 [Y/N] ? 757 | N:_C_MENU 758 | G:_C_S_C15 759 | *:_C_E_C15 760 | Q: Do you want to continue to lesson C16 [Y/N] ? 761 | N:_C_MENU 762 | G:_C_S_C16 763 | *:_C_E_C16 764 | Q: Do you want to continue to lesson C17 [Y/N] ? 765 | N:_C_MENU 766 | G:_C_S_C17 767 | *:_C_E_C17 768 | G:_C_MENU 769 | 770 | #------------------------------------------------------------------------------ 771 | # Lesson series C menu 772 | #------------------------------------------------------------------------------ 773 | *:_C_MENU 774 | B: Colemak touch typing lessons 775 | M: UP=_EXIT "The C series contains the following 17 lessons" 776 | :_C_S_C1 "Lesson C1 S, T, N and E" 777 | :_C_S_C2 "Lesson C2 R and I" 778 | :_C_S_C3 "Lesson C3 A and O" 779 | :_C_S_C4 "Lesson C4 D and H" 780 | :_C_S_C5 "Lesson C5 HOME row excercises" 781 | :_C_S_C6 "Lesson C6 P and L" 782 | :_C_S_C7 "Lesson C7 F and U" 783 | :_C_S_C8 "Lesson C8 W and Y" 784 | :_C_S_C9 "Lesson C9 G and J" 785 | :_C_S_C10 "Lesson C10 M and V" 786 | :_C_S_C11 "Lesson C11 B and K" 787 | :_C_S_C12 "Lesson C12 Q and C" 788 | :_C_S_C13 "Lesson C13 Z and X" 789 | :_C_S_C14 "Lesson C14 Learning the SHIFT key" 790 | :_C_S_C15 "Lesson C15 Learning punctuation" 791 | :_C_S_C16 "Lesson C16 Frequent words" 792 | :_C_S_C17 "Lesson C17 Alphabetic sentences" 793 | *:_C_EXIT 794 | #------------------------------------------------------------------------------ 795 | -------------------------------------------------------------------------------- /public/demo.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # 3 | # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Simon Baldwin 4 | # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 5 | # 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2020 6 | # Felix Natter, Paul Goins, Tim Marston 7 | # Copyright (C) 2021, 2022, 2023 Felix Natter, Mihai Gătejescu 8 | # 9 | # GNU Typist is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # GNU Typist is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with GNU Typist. If not, see . 21 | # 22 | 23 | # 24 | # Demonstration of commands and features 25 | # 26 | *:MENU 27 | M: "Demonstration of commands and features" 28 | :DEMO_0 "B: (banner)" 29 | :DEMO_1 "T: (tutorial)" 30 | :DEMO_2 "D:/d: (drill)" 31 | :DEMO_3 "S:/s: (speed-test)" 32 | :DEMO_4 "I: (instruction)" 33 | :DEMO_5 "E: (set maximum error percentage)" 34 | :DEMO_6 "*:/G: (define label / jump to label)" 35 | :DEMO_7 "Q:/Y:/N: (ask questions)" 36 | :DEMO_8 "F: (set "on failure" label)" 37 | :DEMO_9 "M: (menu)" 38 | :DEMO_10 "X: (exit)" 39 | 40 | 41 | *:DEMO_0 42 | B:Demonstration of commands and features - B 43 | T:This file demonstrates the commands that the program can do. 44 | : 45 | :The B command clears the screen, and if there is text following the 46 | :command that text is placed in the top 'banner' line of the screen. 47 | :No matter what else occurs, it stays there until replaced by text 48 | :from another B command. 49 | : 50 | :This demonstration used 51 | : 52 | : B:Demonstration of commands and features - B 53 | : 54 | :to clear the screen. The remainder of this file uses B commands to 55 | :indicate what it is demonstrating to you. 56 | G:MENU 57 | 58 | *:DEMO_1 59 | B:Demonstration of commands and features - T 60 | T:The simplest command is the T command. This just outputs the text on 61 | :the line onto the screen. As many lines as required may be displayed, 62 | :up to the limit of screen length. After the display is done, the program 63 | :waits before proceeding: 64 | : 65 | :For example, the next screen shows the effect of 66 | : 67 | : T:This is line one of a T command... 68 | : :...and this is line 2 69 | T:This is line one of a T command... 70 | :...and this is line 2 71 | G:MENU 72 | 73 | *:DEMO_2 74 | B:Demonstration of commands and features - D/d 75 | T:The D command displays its text on alternate screen lines, and prompts 76 | :you to type the same text in on the intermediate lines. Typing errors 77 | :are indicated with an inverse '^', or '>' if the character is a newline. 78 | :The drill completes when your error-percentage is less or equal 79 | :to the required error percentage. Delete and backspace are not 80 | :recognised. The d command does the same thing, but does not require a 81 | :certain error percentage. 82 | : 83 | :Here is an example drill, run on the next screen: 84 | : 85 | : D:type these characters 86 | : :then type these 87 | : 88 | D:type these characters 89 | :then type these 90 | G:MENU 91 | 92 | *:DEMO_3 93 | B:Demonstration of commands and features - S/s 94 | T:The S command displays its text on the screen, and prompts you to type 95 | :the text over the top of it. Typing errors are highlighted in inverse 96 | :colours. Delete and backspace are recognised, but errors still 97 | :accumulate. At the end of the test, the typing speed and accuracy are 98 | :displayed. The s command does the same thing, but does not require a 99 | :certain error percentage. 100 | : 101 | :Here is an example of a speed test. Type this exactly 102 | : 103 | : S:type this line 104 | S:type this line 105 | T:Here is another example. Experiment with delete and backspace: 106 | : 107 | : S:Overtype this paragraph with the same text. 108 | : :Note that capitals and punctuation are important. 109 | : :Experiment with delete and backspace keys. 110 | : 111 | S:Overtype this paragraph with the same text. 112 | :Note that capitals and punctuation are important. 113 | :Experiment with delete and backspace keys. 114 | G:MENU 115 | 116 | *:DEMO_4 117 | B:Demonstration of commands and features - I 118 | T:The I command can display some brief instructions above a drill or 119 | :speed test. Only two lines or less are available. Unlike the T 120 | :command, it does not wait for any further keypresses before proceeding. 121 | :So it should really always be followed by D, d, S or s. 122 | :It clears the whole screen drill area, so it's just 123 | :like a two-line T, though. 124 | : 125 | :Here's an example: 126 | : 127 | : I:Here is a very short speed test. You can either type in the 128 | : :whole thing, or just escape out of it: 129 | : S:Very, very short test... 130 | I:Here is a very short speed test. If you feel like you already made 131 | :too many mistakes then you can give up (start again) by pressing ESC 132 | S:Very, very short test... 133 | G:MENU 134 | 135 | *:DEMO_5 136 | B:Demonstration of commands and features - E 137 | T:The E command is used to set the maximum error percentage allowed for 138 | :the next exercise (E:%) or for all following exercises (E:%*) 139 | :If -e is specified then E: only has an effect if it is less (stricter) 140 | :than the value specified on the command-line (but this is only true if 141 | :the option is explicitly specified, not if the default is used) 142 | :Furthermore, if you use E:%*, then you can use the special form 143 | :E: Default (or E: default) to reset the value to its the default setting. 144 | :Warning: Don't follow a E: by a practice-only drill (d: or s:)! 145 | : 146 | : E: 4% 147 | : I:this drill requires 4% errors (at most) 148 | : D:Cheer Up! Things are getting worse at a slower rate. 149 | E: 4% 150 | I:this drill requires 4% errors (at most) 151 | D:Cheer Up! Things are getting worse at a slower rate. 152 | G:MENU 153 | 154 | *:DEMO_6 155 | B:Demonstration of commands and features - */G 156 | T:The * places a label into the file. The G command can then be used to go to 157 | :that label. The program really isn't fussy about label strings. They 158 | :can be pretty much anything you like, and include spaces if that's what 159 | :you want (whitespace at the end of labels is ignored). Labels must be unique 160 | :within files. 161 | : 162 | :For example: 163 | : 164 | : G:MY_LABEL 165 | : T:*** You won't see this, ever 166 | : *:MY_LABEL 167 | : T:We reached this message with a G command 168 | G:MY_LABEL 169 | T:*** You won't see this, ever 170 | *:MY_LABEL 171 | T:We reached this message with a G command 172 | G:MENU 173 | 174 | *:DEMO_7 175 | B:Demonstration of commands and features - Q/Y/N 176 | T:The Q command prints its text on the message line, and waits for 177 | :a 'Y' or an 'N' before proceeding. Other characters are ignored. 178 | : 179 | :The Y command will go to the label on its line if the result of the most 180 | :recent Q was 'Y'. The N command does the same thing for 'N'. K binds 181 | :a function key to a label (deprecated in favor of M:) 182 | : 183 | :Here's an example. As you can see, it can be clumsy, but mostly we 184 | :don't need anything as intricate: 185 | : 186 | : Q: Press Y or N, and nothing else, to continue... 187 | : Y:HIT_Y 188 | : N:HIT_N 189 | : T:*** You won't see this, ever 190 | : *:HIT_Y 191 | : T:You pressed Y 192 | : G:JUMP_OVER 193 | : *:HIT_N 194 | : T:You pressed N 195 | : *:JUMP_OVER 196 | Q: Press Y or N, and nothing else, to continue... 197 | Y:HIT_Y 198 | N:HIT_N 199 | T:*** You won't see this, ever 200 | *:HIT_Y 201 | T:You pressed Y 202 | G:JUMP_OVER 203 | *:HIT_N 204 | T:You pressed N 205 | *:JUMP_OVER 206 | G:MENU 207 | 208 | *:DEMO_8 209 | B:Demonstration of commands and features - F 210 | T:The F: command sets the "on failure" label. If an F command is in effect 211 | :and the user fails in an exercise, he/she will skip to the label specified. 212 | :It is used to create a final test, like this: 213 | : 214 | : E: 3.0%* 215 | : *:LESSON1_D1 216 | : I:drill (1) 217 | : d:You have an ability to sense and know higher truth. 218 | : *:LESSON1_D2 219 | : I:drill (2) 220 | : s:You enjoy the company of other people. 221 | : *:LESSON1_FINAL_TEST 222 | : F:LESSON1_D1* 223 | : I:final test 224 | : D:You will receive a legacy which will place you above want. 225 | : # undo the effects of E/F 226 | : E:default 227 | : F:NULL 228 | E: 5.0%* 229 | *:LESSON1_D1 230 | I:drill (1) 231 | d:You have an ability to sense and know higher truth. 232 | *:LESSON1_D2 233 | I:drill (2) 234 | s:You enjoy the company of other people. 235 | *:LESSON1_FINAL_TEST 236 | F:LESSON1_D1* 237 | I:final test 238 | D:You will receive a legacy which will place you above want. 239 | # undo the effects of E/F 240 | E:default 241 | F:NULL 242 | G:MENU 243 | 244 | *:DEMO_9 245 | T: 246 | : This text was used to create the main menu in this demo lesson: 247 | : 248 | : M: "Demonstration of commands and features" 249 | : :DEMO_0 "B: (banner)" 250 | : :DEMO_1 "T: (tutorial)" 251 | : :DEMO_2 "D:/d: (drill)" 252 | : :DEMO_3 "S:/s: (speed-test)" 253 | : :DEMO_4 "I: (instruction)" 254 | : :DEMO_5 "E: (set maximum error percentage)" 255 | : :DEMO_6 "*:/G: (define label / jump to label)" 256 | : :DEMO_7 "Q:/Y:/N: (ask questions)" 257 | : :DEMO_8 "F: (set "on failure" label)" 258 | : :DEMO_9 "M: (menu)" 259 | : :DEMO_10 "X: (exit)" 260 | G:MENU 261 | 262 | *:DEMO_10 263 | B:Demonstration of commands and features - X 264 | T:The last command to show is the X command. This causes the program to 265 | :exit. The program also exits if the end of the file is found 266 | :(so you could place a label there and just G to it). 267 | : 268 | :Here's a demonstration of the X command. Since this is the end of 269 | :the demonstration, here is a good place to use it; the demonstration 270 | :will halt here. 271 | : 272 | : X: 273 | X: 274 | 275 | 276 | -------------------------------------------------------------------------------- /public/github.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/n.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # Copyright (C) 1998 Simon Baldwin (simonb@sco.com) 3 | # 4 | # This program is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | 18 | #------------------------------------------------------------------------------ 19 | # Series N 20 | #------------------------------------------------------------------------------ 21 | G:_N_MENU 22 | *:_N_NO_MENU 23 | 24 | #------------------------------------------------------------------------------ 25 | # Lesson N1 26 | #------------------------------------------------------------------------------ 27 | *:N1 28 | *:_N_S_N1 29 | B: Lesson N1 30 | 31 | *:_N_R_L0 32 | T: 33 | : Numeric Keypad Lessons 34 | : 35 | :The N series lessons are provided for practice with the numeric keys available 36 | :on the H89/H19 terminal. You do not need to know how to touch type on the 37 | :standard keyboard in order to learn touch typing on a calculator keypad. So, 38 | :you can begin this series right away. 39 | : 40 | :When entering numeric values, accuracy is usually more important than speed. 41 | :Take these lessons very slowly. Speed will come naturally later. 42 | : 43 | :As with the standard keypad, you must start in the HOME position. Place the 44 | :first three fingers of your right hand over the 4, 5, and 6 keys of the keypad. 45 | :(Your thumb and fifth finger are not used.) Your fingers should be poised just 46 | :over the keys gently brushing them. Use the thumb or any finger of your left 47 | :hand for other keys, such as the SPACE bar. 48 | : 49 | :After entering each line, hit the ENTER key with the 6-finger (the third finger 50 | :of your right hand). Immediately return your finger to the 6 key. It is very 51 | :important that you bring the finger back without looking. 52 | 53 | I:Use your third finger only. 54 | *:_N_R_L1 55 | D:666666 56 | 57 | I:Use your second finger for the 5. 58 | *:_N_R_L2 59 | D:6565656 60 | 61 | I:Use your first finger for the 4. 62 | *:_N_R_L3 63 | D:666444555444666 64 | 65 | I:Now let's try several lines. 66 | *:_N_R_L4 67 | S:666444666 68 | :444555666 69 | :555444555 70 | :666444666 71 | :646464646 72 | :656565656 73 | :445566555 74 | :456456456 75 | 76 | I:Use your second finger for the period. 77 | *:_N_R_L5 78 | D:555...555 79 | 80 | *:_N_R_L6 81 | S:5.54.45.56.6 82 | :444.555 83 | :45.56.6 84 | :64.65.4 85 | :54.65.4 86 | 87 | *:_N_R_L7 88 | S:445566.654 89 | :654456.546 90 | :546546.564 91 | :554466.645 92 | :555444.666 93 | 94 | I:Use your first finger for the 1-key. 95 | *:_N_R_L8 96 | D:444111444.444111444 97 | 98 | *:_N_R_L9 99 | S:111.444 100 | :414.141 101 | :456.546 102 | :415.164 103 | :541.146 104 | 105 | I:Now, let's review the keys we've learned. 106 | *:_N_R_L10 107 | D:444555666111...555444666111 108 | 109 | *:_N_R_L11 110 | S:414.564 111 | :546.145 112 | :546.145 113 | :644.146 114 | :615.645 115 | :564.145 116 | :546.164 117 | :111.555 118 | :514.651 119 | 120 | G:_N_E_N1 121 | 122 | #------------------------------------------------------------------------------ 123 | # Lesson N2 124 | #------------------------------------------------------------------------------ 125 | *:N2 126 | *:_N_S_N2 127 | B: Lesson N2 128 | 129 | I:First, let's review the keys from lesson 1. 130 | *:_N_R_L12 131 | D:444.555.666.111.6541.6541 132 | 133 | I:Use your 5-finger for the 2 key. 134 | *:_N_R_L13 135 | D:555222555.525.525.525 136 | 137 | *:_N_R_L14 138 | S:45.25 139 | :52.52 140 | :62.62 141 | :22.22 142 | :51.12 143 | :12.52 144 | :24.42 145 | 146 | I:Use your 6-finger for the 3 key. 147 | *:_N_R_L15 148 | D:666333666.636.636 149 | 150 | *:_N_R_L16 151 | S:456.123 152 | :321.654 153 | :666.333 154 | :323.353 155 | :343.313 156 | :353.363 157 | :313.434 158 | 159 | *:_N_R_L17 160 | S:12.33 161 | :45.33 162 | :65.35 163 | :12.35 164 | :65.25 165 | :25.63 166 | :43.53 167 | :13.36 168 | :34.31 169 | 170 | I:Use your 4-finger for the zero. 171 | *:_N_R_L18 172 | D:444000444.401.410 173 | 174 | *:_N_R_L19 175 | D:410.020.030.040.060.104 176 | 177 | *:_N_R_L20 178 | S:12.00 179 | :23.00 180 | :51.50 181 | :46.25 182 | :54.00 183 | :13.04 184 | 185 | I:Use your 5-finger for the 8-key. 186 | *:_N_R_L21 187 | D:555888555.852.258 188 | 189 | *:_N_R_L22 190 | D:585.080.808.818.282 191 | 192 | *:_N_R_L23 193 | S:81.05 194 | :84.80 195 | :88.88 196 | :58.28 197 | :80.18 198 | :28.38 199 | 200 | I:Use your 6-finger for the 9-key. 201 | *:_N_R_L24 202 | D:666999666.393.696 203 | 204 | *:_N_R_L25 205 | D:595.989.696.393.295 206 | 207 | *:_N_R_L26 208 | S:.91 209 | :.90 210 | :.94 211 | :.95 212 | :.96 213 | :.93 214 | :.90 215 | :.95 216 | 217 | I:And, the last number is 7. (Use your 4-finger for it.) 218 | *:_N_R_L27 219 | D:444777444.0147.7410 220 | 221 | *:_N_R_L28 222 | D:767.737.797.727.707.717 223 | 224 | *:_N_R_L29 225 | D:1234567890.1234567890 226 | 227 | *:_N_R_L30 228 | S:17.19 229 | :71.70 230 | :19.37 231 | :57.07 232 | :71.37 233 | :27.72 234 | :37.73 235 | :76.67 236 | :45.17 237 | :70.07 238 | 239 | *:_N_R_L31 240 | S:75856 241 | :87237 242 | :21570 243 | :24870 244 | :47258 245 | :21573 246 | :21573 247 | :21584 248 | :35827 249 | 250 | G:_N_E_N2 251 | 252 | #------------------------------------------------------------------------------ 253 | # Lesson N3 254 | #------------------------------------------------------------------------------ 255 | *:N3 256 | *:_N_S_N3 257 | B: Lesson N3 258 | 259 | I:First, let's review all the numbers. 260 | *:_N_R_L32 261 | D:1234567890.0987654321 262 | 263 | *:_N_R_L33 264 | D:12.34.56.78.90.10.29.38.47.57 265 | 266 | *:_N_R_L34 267 | S:123.654 268 | :212.658 269 | :908.000 270 | :285.080 271 | :288.381 272 | :398.813 273 | :286.187 274 | :924.156 275 | :684.028 276 | :354.459 277 | :321.840 278 | 279 | *:_N_R_L35 280 | S:12345 281 | :35840 282 | :25874 283 | :93682 284 | :71489 285 | :31265 286 | :97824 287 | :28617 288 | :39715 289 | :17935 290 | :28460 291 | :52846 292 | :28469 293 | 294 | *:_N_R_L36 295 | S:1.00 296 | :2.05 297 | :3.50 298 | :4.52 299 | :5.81 300 | :6.95 301 | :7.00 302 | :8.45 303 | :9.50 304 | 305 | *:_N_R_L37 306 | S:879.359 307 | :286.498 308 | :357.159 309 | :654.852 310 | :159.357 311 | :571.392 312 | :284.293 313 | :231.879 314 | 315 | *:_N_R_L38 316 | S:100.200 317 | :258.246 318 | :369.741 319 | :123.987 320 | :582.714 321 | :239.900 322 | :273.194 323 | :372.973 324 | 325 | I:Use any finger of your left hand for the SPACE bar. 326 | *:_N_R_L39 327 | D:111 222 333 444 555 666 777 888 999 000 328 | 329 | *:_N_R_L40 330 | S:123 654 879 264 331 | :128 364 928 187 332 | :987 234 681 287 333 | :357 159 671 077 334 | :350 950 137 940 335 | :320 487 364 197 336 | 337 | *:_N_R_L41 338 | S:82.01 35 339 | :28.50 12 340 | :50.00 79 341 | :40.25 37 342 | :82.50 19 343 | :99.95 61 344 | :12.95 87 345 | :40.00 55 346 | :64.50 99 347 | 348 | G:_N_E_N3 349 | #------------------------------------------------------------------------------ 350 | # Lesson series N jump tables 351 | #------------------------------------------------------------------------------ 352 | *:_N_E_N1 353 | Q: Do you want to continue to lesson N2 [Y/N] ? 354 | N:_N_MENU 355 | G:_N_S_N2 356 | *:_N_E_N2 357 | Q: Do you want to continue to lesson N3 [Y/N] ? 358 | N:_N_MENU 359 | G:_N_S_N3 360 | *:_N_E_N3 361 | G:_N_MENU 362 | 363 | #------------------------------------------------------------------------------ 364 | # Lesson series N menu 365 | #------------------------------------------------------------------------------ 366 | *:_N_MENU 367 | B: Calculator keypad lessons 368 | M: UP=_EXIT "The N series contains the following 3 lessons" 369 | :_N_S_N1 "Lesson N1 4 5 . 6 1" 370 | :_N_S_N2 "Lesson N2 2 3 0 8 9 7" 371 | :_N_S_N3 "Lesson N3 Practise" 372 | *:_N_EXIT 373 | #------------------------------------------------------------------------------ 374 | -------------------------------------------------------------------------------- /public/n2.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # Copyright (C) 1998 Simon Baldwin (simonb@sco.com) 3 | # 4 | # This program is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | 18 | #------------------------------------------------------------------------------ 19 | # Series N 20 | #------------------------------------------------------------------------------ 21 | G:_N_MENU 22 | *:_N_NO_MENU 23 | 24 | #------------------------------------------------------------------------------ 25 | # Lesson N1 26 | #------------------------------------------------------------------------------ 27 | *:N1 28 | *:_N_S_N1 29 | B: Lesson N1 30 | 31 | *:_N_R_L0 32 | T: 33 | : Numeric Keypad Lessons 34 | : 35 | :The N series lessons are provided for practice with the numeric keys available 36 | :on the H89/H19 terminal. You do not need to know how to touch type on the 37 | :standard keyboard in order to learn touch typing on a calculator keypad. So, 38 | :you can begin this series right away. 39 | : 40 | :When entering numeric values, accuracy is usually more important than speed. 41 | :Take these lessons very slowly. Speed will come naturally later. 42 | : 43 | :As with the standard keypad, you must start in the HOME position. Place the 44 | :first three fingers of your right hand over the 4, 5, and 6 keys of the keypad. 45 | :(Your thumb and fifth finger are not used.) Your fingers should be poised just 46 | :over the keys gently brushing them. Use the thumb or any finger of your left 47 | :hand for other keys, such as the SPACE bar. 48 | : 49 | :After entering each line, hit the ENTER key with the 6-finger (the third finger 50 | :of your right hand). Immediately return your finger to the 6 key. It is very 51 | :important that you bring the finger back without looking. 52 | 53 | I:Use your third finger only. 54 | *:_N_R_L1 55 | D:666666 56 | 57 | I:Use your second finger for the 5. 58 | *:_N_R_L2 59 | D:6565656 60 | 61 | I:Use your first finger for the 4. 62 | *:_N_R_L3 63 | D:666444555444666 64 | 65 | I:Now let's try several lines. 66 | *:_N_R_L4 67 | S:666444666 68 | :444555666 69 | :555444555 70 | :666444666 71 | :646464646 72 | :656565656 73 | :445566555 74 | :456456456 75 | 76 | I:Use your second finger for the period. 77 | *:_N_R_L5 78 | D:555...555 79 | 80 | *:_N_R_L6 81 | S:5.54.45.56.6 82 | :444.555 83 | :45.56.6 84 | :64.65.4 85 | :54.65.4 86 | 87 | *:_N_R_L7 88 | S:445566.654 89 | :654456.546 90 | :546546.564 91 | :554466.645 92 | :555444.666 93 | 94 | I:Use your first finger for the 1-key. 95 | *:_N_R_L8 96 | D:444111444.444111444 97 | 98 | *:_N_R_L9 99 | S:111.444 100 | :414.141 101 | :456.546 102 | :415.164 103 | :541.146 104 | 105 | I:Now, let's review the keys we've learned. 106 | *:_N_R_L10 107 | D:444555666111...555444666111 108 | 109 | *:_N_R_L11 110 | S:414.564 111 | :546.145 112 | :546.145 113 | :644.146 114 | :615.645 115 | :564.145 116 | :546.164 117 | :111.555 118 | :514.651 119 | 120 | G:_N_E_N1 121 | 122 | #------------------------------------------------------------------------------ 123 | # Lesson N2 124 | #------------------------------------------------------------------------------ 125 | *:N2 126 | *:_N_S_N2 127 | B: Lesson N2 128 | 129 | I:First, let's review the keys from lesson 1. 130 | *:_N_R_L12 131 | D:444.555.666.111.6541.6541 132 | 133 | I:Use your 5-finger for the 2 key. 134 | *:_N_R_L13 135 | D:555222555.525.525.525 136 | 137 | *:_N_R_L14 138 | S:45.25 139 | :52.52 140 | :62.62 141 | :22.22 142 | :51.12 143 | :12.52 144 | :24.42 145 | 146 | I:Use your 6-finger for the 3 key. 147 | *:_N_R_L15 148 | D:666333666.636.636 149 | 150 | *:_N_R_L16 151 | S:456.123 152 | :321.654 153 | :666.333 154 | :323.353 155 | :343.313 156 | :353.363 157 | :313.434 158 | 159 | *:_N_R_L17 160 | S:12.33 161 | :45.33 162 | :65.35 163 | :12.35 164 | :65.25 165 | :25.63 166 | :43.53 167 | :13.36 168 | :34.31 169 | 170 | I:Use your 4-finger for the zero. 171 | *:_N_R_L18 172 | D:444000444.401.410 173 | 174 | *:_N_R_L19 175 | D:410.020.030.040.060.104 176 | 177 | *:_N_R_L20 178 | S:12.00 179 | :23.00 180 | :51.50 181 | :46.25 182 | :54.00 183 | :13.04 184 | 185 | I:Use your 5-finger for the 8-key. 186 | *:_N_R_L21 187 | D:555888555.852.258 188 | 189 | *:_N_R_L22 190 | D:585.080.808.818.282 191 | 192 | *:_N_R_L23 193 | S:81.05 194 | :84.80 195 | :88.88 196 | :58.28 197 | :80.18 198 | :28.38 199 | 200 | I:Use your 6-finger for the 9-key. 201 | *:_N_R_L24 202 | D:666999666.393.696 203 | 204 | *:_N_R_L25 205 | D:595.989.696.393.295 206 | 207 | *:_N_R_L26 208 | S:.91 209 | :.90 210 | :.94 211 | :.95 212 | :.96 213 | :.93 214 | :.90 215 | :.95 216 | 217 | I:And, the last number is 7. (Use your 4-finger for it.) 218 | *:_N_R_L27 219 | D:444777444.0147.7410 220 | 221 | *:_N_R_L28 222 | D:767.737.797.727.707.717 223 | 224 | *:_N_R_L29 225 | D:1234567890.1234567890 226 | 227 | *:_N_R_L30 228 | S:17.19 229 | :71.70 230 | :19.37 231 | :57.07 232 | :71.37 233 | :27.72 234 | :37.73 235 | :76.67 236 | :45.17 237 | :70.07 238 | 239 | *:_N_R_L31 240 | S:75856 241 | :87237 242 | :21570 243 | :24870 244 | :47258 245 | :21573 246 | :21573 247 | :21584 248 | :35827 249 | 250 | G:_N_E_N2 251 | 252 | #------------------------------------------------------------------------------ 253 | # Lesson N3 254 | #------------------------------------------------------------------------------ 255 | *:N3 256 | *:_N_S_N3 257 | B: Lesson N3 258 | 259 | I:First, let's review all the numbers. 260 | *:_N_R_L32 261 | D:1234567890.0987654321 262 | 263 | *:_N_R_L33 264 | D:12.34.56.78.90.10.29.38.47.57 265 | 266 | *:_N_R_L34 267 | S:123.654 268 | :212.658 269 | :908.000 270 | :285.080 271 | :288.381 272 | :398.813 273 | :286.187 274 | :924.156 275 | :684.028 276 | :354.459 277 | :321.840 278 | 279 | *:_N_R_L35 280 | S:12345 281 | :35840 282 | :25874 283 | :93682 284 | :71489 285 | :31265 286 | :97824 287 | :28617 288 | :39715 289 | :17935 290 | :28460 291 | :52846 292 | :28469 293 | 294 | *:_N_R_L36 295 | S:1.00 296 | :2.05 297 | :3.50 298 | :4.52 299 | :5.81 300 | :6.95 301 | :7.00 302 | :8.45 303 | :9.50 304 | 305 | *:_N_R_L37 306 | S:879.359 307 | :286.498 308 | :357.159 309 | :654.852 310 | :159.357 311 | :571.392 312 | :284.293 313 | :231.879 314 | 315 | *:_N_R_L38 316 | S:100.200 317 | :258.246 318 | :369.741 319 | :123.987 320 | :582.714 321 | :239.900 322 | :273.194 323 | :372.973 324 | 325 | I:Use any finger of your left hand for the SPACE bar. 326 | *:_N_R_L39 327 | D:111 222 333 444 555 666 777 888 999 000 328 | 329 | *:_N_R_L40 330 | S:123 654 879 264 331 | :128 364 928 187 332 | :987 234 681 287 333 | :357 159 671 077 334 | :350 950 137 940 335 | :320 487 364 197 336 | 337 | *:_N_R_L41 338 | S:82.01 35 339 | :28.50 12 340 | :50.00 79 341 | :40.25 37 342 | :82.50 19 343 | :99.95 61 344 | :12.95 87 345 | :40.00 55 346 | :64.50 99 347 | 348 | G:_N_E_N3 349 | #------------------------------------------------------------------------------ 350 | # Lesson series N jump tables 351 | #------------------------------------------------------------------------------ 352 | *:_N_E_N1 353 | Q: Do you want to continue to lesson N2 [Y/N] ? 354 | N:_N_MENU 355 | G:_N_S_N2 356 | *:_N_E_N2 357 | Q: Do you want to continue to lesson N3 [Y/N] ? 358 | N:_N_MENU 359 | G:_N_S_N3 360 | *:_N_E_N3 361 | G:_N_MENU 362 | 363 | #------------------------------------------------------------------------------ 364 | # Lesson series N menu 365 | #------------------------------------------------------------------------------ 366 | *:_N_MENU 367 | B: Calculator keypad lessons 368 | M: UP=_EXIT "The N series contains the following 3 lessons" 369 | :_N_S_N1 "Lesson N1 4 5 . 6 1" 370 | :_N_S_N2 "Lesson N2 2 3 0 8 9 7" 371 | :_N_S_N3 "Lesson N3 Practise" 372 | *:_N_EXIT 373 | #------------------------------------------------------------------------------ 374 | -------------------------------------------------------------------------------- /public/plus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/q.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # 3 | # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Simon Baldwin 4 | # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 5 | # 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2020 6 | # Michael Opdenacker, Felix Natter, Dmitry Rutsky, 7 | # Paul Goins, Tim Marston 8 | # Copyright (C) 2021, 2022, 2023 Felix Natter, Mihai Gătejescu 9 | # 10 | # GNU Typist is free software: you can redistribute it and/or modify 11 | # it under the terms of the GNU General Public License as published by 12 | # the Free Software Foundation, either version 3 of the License, or 13 | # (at your option) any later version. 14 | # 15 | # GNU Typist is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | # GNU General Public License for more details. 19 | # 20 | # You should have received a copy of the GNU General Public License 21 | # along with GNU Typist. If not, see . 22 | # 23 | 24 | #------------------------------------------------------------------------------ 25 | # Series Q 26 | #------------------------------------------------------------------------------ 27 | G:_Q_MENU 28 | *:_Q_NO_MENU 29 | 30 | #------------------------------------------------------------------------------ 31 | # Lesson Q1 32 | #------------------------------------------------------------------------------ 33 | *:Q1 34 | *:_Q_S_Q1 35 | B: Lesson Q1 36 | 37 | *:_Q_R_L0 38 | T: Welcome to lesson Q1. 39 | : 40 | :In the Q series of lessons, we will be learning to touch-type on the standard 41 | :keyboard. I will introduce you to each letter on the keyboard, one at a time. 42 | :By the time you have completed this series, you will be able to type the entire 43 | :alphabet, the numbers, and most of the punctuation keys by touch. 44 | : 45 | :If you have never taken any lessons in typing before, please be patient. Typing 46 | :is not difficult but it does take a lot of practice. Avoid the tendency to 47 | :look down at your fingers while typing. This is a very bad habit and is hard 48 | :to break later. If you hit the wrong key, I will let you know. (But, I won't 49 | :tell anyone else, so don't worry about it.) 50 | : 51 | :If you have always used the hunt-and-peck method, you will have an even harder 52 | :time keeping yourself from looking. Don't be surprised if you find touch 53 | :typing slower than your old ways. It may be slower when you first start. 54 | :But, touch typing is far faster once you get the hang of it. 55 | : 56 | :If you can already touch type, you should be able to go through these lessons 57 | :fairly quickly. Or, you may want to go directly to the S series. 58 | 59 | *:_Q_R_L1 60 | T: 61 | : The HOME Keys. 62 | : 63 | :In order to hit the correct keys by touch alone, you must always know where your 64 | :fingers are. The way to do this is to have a special place for each finger. 65 | :This key is called the HOME position. 66 | : 67 | :Place the first finger of your right hand on the J-key. Now, place your second 68 | :finger on the K-key, your third finger on the L-key, and your fourth-finger on 69 | :the ;-key (the one with the : and ; on it). 70 | : 71 | :Similarly place the four fingers of your left hand on the F, D, S, and A-keys. 72 | :Place your right thumb over the SPACE bar. (Henceforth, always hit the SPACE 73 | :bar with this thumb.) Now, lift all your fingers slightly so that they are 74 | :poised just over the keys. Each finger should be just barely touching its home 75 | :key. This is an electronic keyboard and does not take much pressure to ac- 76 | :cidentally press the key down. 77 | : 78 | :Above the D-key is the E-key. Above the K-key is the I-key. Learn these 79 | :positions well. Whenever you are about to type a line, look at your fingers and 80 | :make sure they are in the HOME position. Then don't look at them again. 81 | 82 | *:_Q_R_L2 83 | T: 84 | : DRILL PATTERNS 85 | : 86 | :For the rest of this lesson, I will display a line of text in the middle of the 87 | :screen and instructions at the top of the screen. 88 | : 89 | :All you have to do is type in the characters that you see in the middle of 90 | :the screen. If you hit the correct key, I will not do anything. If you make 91 | :a mistake, I will display a large X under the letter that you got wrong and 92 | :beep the terminal. In either event, just keep going by typing the next letter. 93 | : 94 | :When you have finished typing the line, hit the RETURN key. To do this, extend 95 | :the little finger of your right hand over to the RETURN key. Hit the key and 96 | :zip the finger back to its home position. Be careful not to let your other 97 | :fingers move far from their home positions in the process. Also, be careful 98 | :not to type an extra space at the end of the line. 99 | : 100 | :If you made no mistakes on the line, I will display the next drill pattern. If 101 | :you did make a mistake, I will beep at you and make you do the line again. If 102 | :on the second try you made more than two mistakes, I will beep again and make 103 | :you try again, etc. Don't forget to use your right thumb for the SPACE bar. 104 | 105 | I:(1) Try this: 106 | *:_Q_R_L3 107 | D:asdf ;lkj asdf ;lkj asdf ;lkj asdf ;lkj asdf ;lkj asdf ;lkj 108 | 109 | I:Now this (use 'k' finger for 'i' and 'd' finger for 'e'): 110 | *:_Q_R_L4 111 | D:asdef ;lkij asdef ;lkij asdef ;lkij asdef ;lkij asdef ;lkij 112 | 113 | I:(2) Some more: 114 | *:_Q_R_L5 115 | D:as al ad ak af aj fa ka da la sa ja sl sd sk sf ls ds ks fs 116 | :de le ae ke se je fe ed el ea ek es ej ef ed lf dk dl fl kl 117 | :ki ai li si di ji fi ia il is ik id ij if dd ee ss ff ll ei 118 | 119 | I:(3) Hang in there; let's do some sentences... 120 | :To get capitals use your ';' finger on [right-SHIFT] 121 | *:_Q_R_L6 122 | D:Dad adds a salad A lad asks Salad falls as a lad asks Dad 123 | 124 | I:(4) Now try [left-SHIFT] usage (for 'L') and [right-SHIFT]! 125 | *:_Q_R_L7 126 | D:Lease a desk Add a safe deal Ask less fees Add a lease 127 | :Lease a lake Add lake sales Add deeds Flee false deals 128 | 129 | I:(5) 130 | *:_Q_R_L8 131 | D:Feel a dead faded leaf Seeds fall as a faded leaf falls 132 | :A lad sells seeds Dad feels a seed Dad adds a seed deal 133 | :A deaf lad sells a false jade Dad sells a deaf lad a sled 134 | 135 | I:(6) 136 | *:_Q_R_L9 137 | D:Idle Sid seeks a salad Sis aids Sid A salad is laid aside 138 | :Sid seeks a lake Sis is all silks Sid likes silks 139 | :A lad asks if Dad likes lilies Dad is ill Dad feels life dies as lilies fade 140 | :Dad slides all lilies aside Dad is jaded 141 | 142 | I:(7) 143 | *:_Q_R_L10 144 | D:Sails fill as Sis sails a safe lake Skill aids Sis Dad 145 | :likes a safe sail Sis seeks a lee isle All sail is 146 | :laid aside Sis feels life is ideal Idle fields lead as 147 | :Sis seeks lilies Sis falls Lilies fade as Sis falls 148 | :Faded sails fill Idle isles slide aside as Sis sails 149 | 150 | I:(8) 151 | *:_Q_R_L11 152 | D:Sid adds all sail as Dad sees a safe sea as idle as a lake 153 | 154 | G:_Q_E_Q1 155 | 156 | #------------------------------------------------------------------------------ 157 | # Lesson Q2 158 | #------------------------------------------------------------------------------ 159 | *:Q2 160 | *:_Q_S_Q2 161 | B: Lesson Q2 162 | 163 | *:_Q_R_L12 164 | T: 165 | : (h g o u n . t) 166 | : 167 | :In this lesson you learn six new letters (H, G, O, U, N, T) and the period. (.). 168 | :Be sure that the F-finger does not linger on the G-key or the J-finger on the 169 | :H-key. Also be sure to use your fingers as follows: 170 | : 171 | : 'f' for 't' and 'g', 'j' for 'h', 'u' and 'n', finally use 'l' for 'o' and '.' 172 | : 173 | :Note that you always follow a period with two spaces. 174 | 175 | I:(1) Rhythm Drill 176 | *:_Q_R_L13 177 | D:a;sldkfjgh a;sldkfjgh a;sldkfjgh a;sldkfjgh a;sldkfjgh 178 | :asdefghk lokijujhjn asdefghk lokijujhjn asdefghk 179 | :l. a. l. s. l. d. l. e. l. n. l. t. l. o. 180 | 181 | I:(2) Balanced Keyboard Drill 182 | *:_Q_R_L14 183 | D:as os es us is an on en un in at ot et ut it ad od ed ud id 184 | :sa so se su si na no ne nu ni ta to te tu ti ha ho he hu hi 185 | :da do de du di au st oi sh oi ts ht oe nk ou nd ue ns ui th 186 | 187 | I:(3) Continuous Copy 188 | *:_Q_R_L15 189 | D:Ed had a shed. His shed had dishes. He had shade. 190 | :Ed had his ease. Sis liked a safe shed. Sis had shade. 191 | :His shed is ashes. Ed hides his head. He heeds Sis. 192 | 193 | I:(4) 194 | *:_Q_R_L16 195 | D:Odd ideas die like odd seeds. Odd seeds die as do odd deeds. 196 | :Dad has odd ideas. Dad sees a soda as a sad dose. A soda 197 | :aids Sis. So I see a soda is added. Sis does like a soda. 198 | 199 | I:(5) 200 | *:_Q_R_L17 201 | D:Sid used us. Sid sued us. Ada used us as aid. I did aid. 202 | :I added ease. I issued added deeds. Ada said adieu. Ada 203 | :used dead deeds as issues. Sid said I used deeds due Ada. 204 | 205 | I:(6) 206 | *:_Q_R_L18 207 | D:Ed is staid. Ed uses tested data as assets. Sis is a 208 | :tease. Sis sets a tea date. As Ed tastes tea I state tea 209 | :data. Sis teases Ed at tea. As Ed eats I state diet data. 210 | 211 | I:(7) 212 | *:_Q_R_L19 213 | D:Sis said Dean is dense as sand. Dean needs an idea and Sis 214 | :needs a sedan. Dad sends a sedan. Dean is indeed sad as 215 | :he sees Sis and Ed inside. At nine he sees Sis and Ed dine. 216 | 217 | I:(8) Rhythmic Review 218 | *:_Q_R_L20 219 | D:He sees that in a test he has to state and use a sane idea. 220 | 221 | G:_Q_E_Q2 222 | 223 | #------------------------------------------------------------------------------ 224 | # Lesson Q3 225 | #------------------------------------------------------------------------------ 226 | *:Q3 227 | *:_Q_S_Q3 228 | B: Lesson Q3 229 | 230 | *:_Q_R_L21 231 | T: 232 | : (y r c , ? : p) 233 | : 234 | :You learned first the letters that are most frequently used in the English 235 | :language. They are repeated over and over again. 236 | : 237 | :One space always follows a comma. Don't forget there are two spaces between 238 | :sentences, no matter what punctuation mark closes the sentence. 239 | : 240 | :The colon (:) introduces a list and is followed by two spaces. Finger usage: 241 | : 242 | : 'j' for 'y', 'f' for 'r', 'k' for ',', 'd' for 'c', ';' for '?', 'p' and ':' 243 | 244 | I:(1) Rhythm Drill 245 | *:_Q_R_L22 246 | D:deki frju dck, dcl. frju ftjy deki frju dck, dcl. frju ftjy 247 | :fgjh ;p;? jujy dedc lol. kik, fgju ;:;: frfk jujy dedc kik, 248 | 249 | I:(2) Balanced Keyboard Drill 250 | *:_Q_R_L23 251 | D:ag ac ar al ap at ay af ug uc ur ul up ut eg ec er el ep et 252 | :ey ef og or ol op ot of ig ic ir il ip if ga ca ra la pa fa 253 | :gu cu ru lu pu fu ge ce re le pe ye fe go co ro lo po yo fo 254 | :gi ci ri li fi gn pl gh ld sy rd ty ct ft ch nc dy dr ph ng 255 | :s? d? e? f? r? f? t? j? n? s: d: e: r: t: n: 256 | :k, i, d, e, f, r, k, u, f, t, k, y, d, c, k, n, k, h, l, o, 257 | 258 | I:(3) Continuous Copy 259 | *:_Q_R_L24 260 | D:Chance can aid a nice choice. It can teach one to count his 261 | :costs too. In each such case a chance cause can hit costs. 262 | 263 | I:(4) 264 | *:_Q_R_L25 265 | D:At his age a good song is the thing as he gets his dog and 266 | :gun. He is going to hunt again. As night ends he sets out. 267 | 268 | I:(5) 269 | *:_Q_R_L26 270 | D:As soon as papa is deep in a nap Pat happens to pound in his 271 | :shop and the phone sounds. Pat is to paint and pass up noise. 272 | 273 | I:(6) 274 | *:_Q_R_L27 275 | D:I hear there is an error in her other order. The store sent 276 | :her red dress to our door. She is sure that it is too dear. 277 | 278 | I:(7) 279 | *:_Q_R_L28 280 | D:I shall hold those ideal hotel lots at least until all land 281 | :is sold. Late sales still total less than the one old deal. 282 | 283 | I:(8) 284 | *:_Q_R_L29 285 | D:Sunday is too soon. It is not easy to stay and study this 286 | :dandy day. I need to study. It is not easy on the eyes. 287 | 288 | I:(9) 289 | *:_Q_R_L30 290 | D:One needs to use faith if one fishes often. It is fun to sit 291 | :on soft sod and fish. It is fun to feel a fish dash out fast. 292 | 293 | I:(9A) 294 | *:_Q_R_L31 295 | D:Hello, is this Dan? Hello, Dan, this is Ann. No, Ann. Did 296 | :you see Ted? Is Nan at the house? Then dash to the house. 297 | :Is he at the house? Has he his auto? Did he tie on those 298 | :odds and ends: used suits, sun hats, shoes, and side tent? 299 | 300 | I:(10) Rhythmic Review 301 | *:_Q_R_L32 302 | D:Papa can not plan to get us all there in such a car as this. 303 | 304 | G:_Q_E_Q3 305 | 306 | #------------------------------------------------------------------------------ 307 | # Lesson Q4 308 | #------------------------------------------------------------------------------ 309 | *:Q4 310 | *:_Q_S_Q4 311 | B: Lesson Q4 312 | 313 | *:_Q_R_L33 314 | T: 315 | : (m w v z x b q ' -) 316 | : 317 | :Self control is important in learning to type. Concentrate on using the 318 | :correct finger for each key. In this lesson you learn the seven remaining 319 | :letters of the alphabet. 320 | : 321 | :The semicolon (;), like the comma, is followed by one space in a sentence. 322 | : 323 | :Fingers: 'j' for 'm', 's' for 'w' and 'x', 'f' for 'v' and 'b', 324 | :';' for ' and '-', 'a' for 'z' and 'q' 325 | 326 | I:(1) Rhythm Drill 327 | *:_Q_R_L34 328 | D:dedc kik, frfv jujm swsx lol. aqaz ;p;p frfv jujm ftfb jyjn 329 | :aqsw az;p sxl. fvjm fvjn fbjn aqsw az;p sxl. fvjm fvjn fbjn 330 | 331 | I:(2) Balanced Keyboard Drill 332 | *:_Q_R_L35 333 | D:am aw av az ak ax ab um ub em ew ev ez ek eq ex om ow ov oz 334 | :ok ob im iv iz ix ib ma wa va za ka ja xa ba mu ju qu bu me 335 | :we ve ze ke je xe be mo wo vo zo ko jo bo mi wi vi zi ki xi 336 | :bi xt sm sk sw kn ms nk wh tw ks wn dv s; o; n; d; l; e; t; 337 | 338 | I:(3) Continuous Copy 339 | *:_Q_R_L36 340 | D:Iowa was white with snow when we two went down town and saw 341 | :a show. We wanted to see news and not the widow who was wed. 342 | 343 | I:(4) 344 | *:_Q_R_L37 345 | D:John has to use a tan and jet auto. He joined Jane in its 346 | :joint use. Jane just intends to use it in June on a jaunt. 347 | 348 | I:(5) 349 | *:_Q_R_L38 350 | D:Smith is his name. He is on some Maine team. I am to meet 351 | :him and Miss Smith. I must see them some time this month. 352 | 353 | I:(6) 354 | *:_Q_R_L39 355 | D:Kate uses ink to send a note south to Kansas kin. She asks 356 | :to use a kodak to take along on these keen skates and skis. 357 | 358 | I:(7) 359 | *:_Q_R_L40 360 | D:I advise Eva in vain to avoid an auto visit in seven states. 361 | :Nevada is so vivid that Eva votes to have this visit saved. 362 | 363 | I:(8) 364 | *:_Q_R_L41 365 | D:She has questions and unique ideas to quote us. So she is 366 | :quite the queen in this quiet set and sets us quaint quotas. 367 | 368 | I:(9) 369 | *:_Q_R_L42 370 | D:The zoo is shut. His zest is dashed. Dan dozes. One sneeze 371 | :and then a dozen seize Dan. In a daze he sees the zoo seized. 372 | 373 | I:(9A) 374 | *:_Q_R_L43 375 | D:The boat has been best to Boston. On this basis no doubt one 376 | :is bound to be a bit behind but boats beat both dust and heat. 377 | 378 | I:(9B) 379 | *:_Q_R_L44 380 | D:Nan is in Texas. She is anxious to dine at six. She sees a 381 | :taxi stand next to the sixth exit. Taxis exist to aid one. 382 | 383 | I:(10) Rhythmic Review 384 | *:_Q_R_L45 385 | D:Ask them to let us have the car if they both go to the show. 386 | 387 | G:_Q_E_Q4 388 | 389 | #------------------------------------------------------------------------------ 390 | # Lesson Q5 391 | #------------------------------------------------------------------------------ 392 | *:Q5 393 | *:_Q_S_Q5 394 | B: Lesson Q5 395 | 396 | *:_Q_R_L46 397 | T: 398 | :Now you know all of the alphabet. In this lesson we add the hyphen (-) and 399 | :the apostrophe ('). 400 | 401 | I:(1) Rhythm Drill 402 | *:_Q_R_L47 403 | D:dedc kik, frfv jujm swsx lol. aqaz ;p;p frfv jujm ftfb jyjn 404 | :frfk fvfb jujy jmjn aqsw azsw azsx ;plo ;p;- kik, ;p;- 405 | 406 | I:(2) Balanced Keyboard Drill 407 | *:_Q_R_L48 408 | D:ad ar an al am ab ee st ed er en el es em ex om on or un up 409 | :id ic ir in im se sy le ly re ry ec fy ty de be my by bi di 410 | :l-t o-d s-c p-t o-d n-y r-o g-d r-h d-g n't t's l's y's I'l 411 | 412 | I:(3) Continuous Copy -- Review 413 | *:_Q_R_L49 414 | D:It is a good thing papa has gone. Pat gets up a deep song. 415 | :Yet Ann says an easy song any day is a sign to guess again. 416 | 417 | I:(4) 418 | *:_Q_R_L50 419 | D:They often need funds but don't think it is any fun to study. 420 | :Ann is keen to ask him to use his kodak at the same time. 421 | 422 | I:(5) 423 | *:_Q_R_L51 424 | D:Ted notes an odd noise. Dan is in the seas and needs aid. 425 | :He sheds his suit and shoes on the sand and is out in haste. 426 | 427 | I:(6) 428 | *:_Q_R_L52 429 | D:A good visit East is Ann's next quest. Ann seems to seize 430 | :on this idea with zest. She has set seven visits as a quota. 431 | 432 | I:(7) 433 | *:_Q_R_L53 434 | D:She is to adjust her six visits to have a snow-white Maine 435 | :Christmas. An Iowa aunt asks Ann to take in that state, too. 436 | 437 | I:(8) 438 | *:_Q_R_L54 439 | D:It's a tax on time, but it's quite a new zone to Ann who is 440 | :in just the mood to end her quota of visits in sixteen weeks. 441 | 442 | I:(9) Rhythmic Review 443 | *:_Q_R_L55 444 | D:Two of the boys are to do it today and two of them next week. 445 | 446 | G:_Q_E_Q5 447 | 448 | #------------------------------------------------------------------------------ 449 | # Lesson series Q jump tables 450 | #------------------------------------------------------------------------------ 451 | *:_Q_E_Q1 452 | Q: Do you want to continue to lesson Q2 [Y/N] ? 453 | N:_Q_MENU 454 | G:_Q_S_Q2 455 | *:_Q_E_Q2 456 | Q: Do you want to continue to lesson Q3 [Y/N] ? 457 | N:_Q_MENU 458 | G:_Q_S_Q3 459 | *:_Q_E_Q3 460 | Q: Do you want to continue to lesson Q4 [Y/N] ? 461 | N:_Q_MENU 462 | G:_Q_S_Q4 463 | *:_Q_E_Q4 464 | Q: Do you want to continue to lesson Q5 [Y/N] ? 465 | N:_Q_MENU 466 | G:_Q_S_Q5 467 | *:_Q_E_Q5 468 | G:_Q_MENU 469 | 470 | #------------------------------------------------------------------------------ 471 | # Lesson series Q menu 472 | #------------------------------------------------------------------------------ 473 | *:_Q_MENU 474 | B: Quick QWERTY course 475 | M: UP=_EXIT "The Q series contains the following 5 lessons" 476 | :_Q_S_Q1 "Lesson Q1 a s d f j k l ; e i" 477 | :_Q_S_Q2 "Lesson Q2 h g o u n . t" 478 | :_Q_S_Q3 "Lesson Q3 y r c , ? : p" 479 | :_Q_S_Q4 "Lesson Q4 m w v z x b q" 480 | :_Q_S_Q5 "Lesson Q5 ' -" 481 | *:_Q_EXIT 482 | #------------------------------------------------------------------------------ 483 | -------------------------------------------------------------------------------- /public/q2.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # Copyright (C) 1998 Simon Baldwin (simonb@sco.com) 3 | # 4 | # This program is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | 18 | #------------------------------------------------------------------------------ 19 | # Series Q 20 | #------------------------------------------------------------------------------ 21 | G:_Q_MENU 22 | *:_Q_NO_MENU 23 | 24 | #------------------------------------------------------------------------------ 25 | # Lesson Q1 26 | #------------------------------------------------------------------------------ 27 | *:Q1 28 | *:_Q_S_Q1 29 | B: Lesson Q1 30 | 31 | *:_Q_R_L0 32 | T: Welcome to lesson Q1. 33 | : 34 | :In the Q series of lessons, we will be learning to touch-type on the standard 35 | :keyboard. I will introduce you to each letter on the keyboard, one at a time. 36 | :By the time you have completed this series, you will be able to type the entire 37 | :alphabet, the numbers, and most of the punctuation keys by touch. 38 | : 39 | :If you have never taken any lessons in typing before, please be patient. Typing 40 | :is not difficult but it does take a lot of practice. Avoid the tendency to 41 | :look down at your fingers while typing. This is a very bad habit and is hard 42 | :to break later. If you hit the wrong key, I will let you know. (But, I won't 43 | :tell anyone else, so don't worry about it.) 44 | : 45 | :If you have always used the hunt-and-peck method, you will have an even harder 46 | :time keeping yourself from looking. Don't be surprised if you find touch 47 | :typing slower than your old ways. It may be slower when you first start. 48 | :But, touch typing is far faster once you get the hang of it. 49 | : 50 | :If you can already touch type, you should be able to go through these lessons 51 | :fairly quickly. Or, you may want to go directly to the S series. 52 | 53 | *:_Q_R_L1 54 | T: 55 | : The HOME Keys. 56 | : 57 | :In order to hit the correct keys by touch alone, you must always know where your 58 | :fingers are. The way to do this is to have a special place for each finger. 59 | :This key is called the HOME position. 60 | : 61 | :Place the first finger of your right hand on the J-key. Now, place your second 62 | :finger on the K-key, your third finger on the L-key, and your fourth-finger on 63 | :the ;-key (the one with the : and ; on it). 64 | : 65 | :Similarly place the four fingers of your left hand on the F, D, S, and A-keys. 66 | :Place your right thumb over the SPACE bar. (Henceforth, always hit the SPACE 67 | :bar with this thumb.) Now, lift all your fingers slightly so that they are 68 | :poised just over the keys. Each finger should be just barely touching its home 69 | :key. This is an electronic keyboard and does not take much pressure to ac- 70 | :cidentally press the key down. 71 | : 72 | :Above the D-key is the E-key. Above the K-key is the I-key. Learn these 73 | :positions well. Whenever you are about to type a line, look at your fingers and 74 | :make sure they are in the HOME position. Then don't look at them again. 75 | 76 | *:_Q_R_L2 77 | T: 78 | : DRILL PATTERNS 79 | : 80 | :For the rest of this lesson, I will display a line of text in the middle of the 81 | :screen and instructions at the top of the screen. 82 | : 83 | :All you have to do is type in the characters that you see in the middle of 84 | :the screen. If you hit the correct key, I will not do anything. If you make 85 | :a mistake, I will display a large X under the letter that you got wrong and 86 | :beep the terminal. In either event, just keep going by typing the next letter. 87 | : 88 | :When you have finished typing the line, hit the RETURN key. To do this, extend 89 | :the little finger of your right hand over to the RETURN key. Hit the key and 90 | :zip the finger back to its home position. Be careful not to let your other 91 | :fingers move far from their home positions in the process. Also, be careful 92 | :not to type an extra space at the end of the line. 93 | : 94 | :If you made no mistakes on the line, I will display the next drill pattern. If 95 | :you did make a mistake, I will beep at you and make you do the line again. If 96 | :on the second try you made more than two mistakes, I will beep again and make 97 | :you try again, etc. Don't forget to use your right thumb for the SPACE bar. 98 | 99 | I:(1) Try this: 100 | *:_Q_R_L3 101 | D:asdf ;lkj asdf ;lkj asdf ;lkj asdf ;lkj asdf ;lkj asdf ;lkj 102 | 103 | I:Now this (use 'k' finger for 'i' and 'd' finger for 'e'): 104 | *:_Q_R_L4 105 | D:asdef ;lkij asdef ;lkij asdef ;lkij asdef ;lkij asdef ;lkij 106 | 107 | I:(2) Some more: 108 | *:_Q_R_L5 109 | D:as al ad ak af aj fa ka da la sa ja sl sd sk sf ls ds ks fs 110 | :de le ae ke se je fe ed el ea ek es ej ef ed lf dk dl fl kl 111 | :ki ai li si di ji fi ia il is ik id ij if dd ee ss ff ll ei 112 | 113 | I:(3) Hang in there; let's do some sentences... 114 | :To get capitals use your ';' finger on [right-SHIFT] 115 | *:_Q_R_L6 116 | D:Dad adds a salad A lad asks Salad falls as a lad asks Dad 117 | 118 | I:(4) Now try [left-SHIFT] usage (for 'L') and [right-SHIFT]! 119 | *:_Q_R_L7 120 | D:Lease a desk Add a safe deal Ask less fees Add a lease 121 | :Lease a lake Add lake sales Add deeds Flee false deals 122 | 123 | I:(5) 124 | *:_Q_R_L8 125 | D:Feel a dead faded leaf Seeds fall as a faded leaf falls 126 | :A lad sells seeds Dad feels a seed Dad adds a seed deal 127 | :A deaf lad sells a false jade Dad sells a deaf lad a sled 128 | 129 | I:(6) 130 | *:_Q_R_L9 131 | D:Idle Sid seeks a salad Sis aids Sid A salad is laid aside 132 | :Sid seeks a lake Sis is all silks Sid likes silks 133 | :A lad asks if Dad likes lilies Dad is ill Dad feels life dies as lilies fade 134 | :Dad slides all lilies aside Dad is jaded 135 | 136 | I:(7) 137 | *:_Q_R_L10 138 | D:Sails fill as Sis sails a safe lake Skill aids Sis Dad 139 | :likes a safe sail Sis seeks a lee isle All sail is 140 | :laid aside Sis feels life is ideal Idle fields lead as 141 | :Sis seeks lilies Sis falls Lilies fade as Sis falls 142 | :Faded sails fill Idle isles slide aside as Sis sails 143 | 144 | I:(8) 145 | *:_Q_R_L11 146 | D:Sid adds all sail as Dad sees a safe sea as idle as a lake 147 | 148 | G:_Q_E_Q1 149 | 150 | #------------------------------------------------------------------------------ 151 | # Lesson Q2 152 | #------------------------------------------------------------------------------ 153 | *:Q2 154 | *:_Q_S_Q2 155 | B: Lesson Q2 156 | 157 | *:_Q_R_L12 158 | T: 159 | : (h g o u n . t) 160 | : 161 | :In this lesson you learn six new letters (H, G, O, U, N, T) and the period. (.). 162 | :Be sure that the F-finger does not linger on the G-key or the J-finger on the 163 | :H-key. Also be sure to use your fingers as follows: 164 | : 165 | : 'f' for 't' and 'g', 'j' for 'h', 'u' and 'n', finally use 'l' for 'o' and '.' 166 | : 167 | :Note that a period is followed by one space because it's no longer 1957. 168 | 169 | I:(1) Rhythm Drill 170 | *:_Q_R_L13 171 | D:a;sldkfjgh a;sldkfjgh a;sldkfjgh a;sldkfjgh a;sldkfjgh 172 | :asdefghk lokijujhjn asdefghk lokijujhjn asdefghk 173 | :l. a. l. s. l. d. l. e. l. n. l. t. l. o. 174 | 175 | I:(2) Balanced Keyboard Drill 176 | *:_Q_R_L14 177 | D:as os es us is an on en un in at ot et ut it ad od ed ud id 178 | :sa so se su si na no ne nu ni ta to te tu ti ha ho he hu hi 179 | :da do de du di au st oi sh oi ts ht oe nk ou nd ue ns ui th 180 | 181 | I:(3) Continuous Copy 182 | *:_Q_R_L15 183 | D:Ed had a shed. His shed had dishes. He had shade. 184 | :Ed had his ease. Sis liked a safe shed. Sis had shade. 185 | :His shed is ashes. Ed hides his head. He heeds Sis. 186 | 187 | I:(4) 188 | *:_Q_R_L16 189 | D:Odd ideas are like odd seeds. Odd seeds die as do odd deeds. 190 | :Dad has odd ideas. Dad sees a soda as a sad dose. A soda 191 | :aids Sis. So I see a soda is added. Sis does like a soda. 192 | 193 | I:(5) 194 | *:_Q_R_L17 195 | D:Sid used us. Sid sued us. Ada used us as aid. I did aid. 196 | :I added ease. I issued added deeds. Ada said adieu. Ada 197 | :used dead deeds as issues. Sid said I used deeds due Ada. 198 | 199 | I:(6) 200 | *:_Q_R_L18 201 | D:Ed is staid. Ed uses tested data as assets. Sis is a 202 | :tease. Sis sets a tea date. As Ed tastes tea I state tea 203 | :data. Sis teases Ed at tea. As Ed eats I state diet data. 204 | 205 | I:(7) 206 | *:_Q_R_L19 207 | D:Sis said Dean is dense as sand. Dean needs an idea and Sis 208 | :needs a sedan. Dad sends a sedan. Dean is indeed sad as 209 | :he sees Sis and Ed inside. At nine he sees Sis and Ed dine. 210 | 211 | I:(8) Rhythmic Review 212 | *:_Q_R_L20 213 | D:He sees that in a test he has to state and use a sane idea. 214 | 215 | G:_Q_E_Q2 216 | 217 | #------------------------------------------------------------------------------ 218 | # Lesson Q3 219 | #------------------------------------------------------------------------------ 220 | *:Q3 221 | *:_Q_S_Q3 222 | B: Lesson Q3 223 | 224 | *:_Q_R_L21 225 | T: 226 | : (y r c , ? : p) 227 | : 228 | :You learned first the letters that are most frequently used in the English 229 | :language. They are repeated over and over again. 230 | : 231 | :One space always follows a comma. 232 | : 233 | :Finger usage: 234 | : 235 | : 'j' for 'y', 'f' for 'r', 'k' for ',', 'd' for 'c', ';' for '?', 'p' and ':' 236 | 237 | I:(1) Rhythm Drill 238 | *:_Q_R_L22 239 | D:deki frju dck, dcl. frju ftjy deki frju dck, dcl. frju ftjy 240 | :fgjh ;p;? jujy dedc lol. kik, fgju ;:;: frfk jujy dedc kik, 241 | 242 | I:(2) Balanced Keyboard Drill 243 | *:_Q_R_L23 244 | D:ag ac ar al ap at ay af ug uc ur ul up ut eg ec er el ep et 245 | :ey ef og or ol op ot of ig ic ir il ip if ga ca ra la pa fa 246 | :gu cu ru lu pu fu ge ce re le pe ye fe go co ro lo po yo fo 247 | :gi ci ri li fi gn pl gh ld sy rd ty ct ft ch nc dy dr ph ng 248 | :s? d? e? f? r? f? t? j? n? s: d: e: r: t: n: 249 | :k, i, d, e, f, r, k, u, f, t, k, y, d, c, k, n, k, h, l, o, 250 | 251 | I:(3) Continuous Copy 252 | *:_Q_R_L24 253 | D:Chance can aid a nice choice. It can teach one to count his 254 | :costs too. In each such case a chance cause can hit costs. 255 | 256 | I:(4) 257 | *:_Q_R_L25 258 | D:At his age a good song is the thing as he gets his dog and 259 | :gun. He is going to hunt again. As night ends he sets out. 260 | 261 | I:(5) 262 | *:_Q_R_L26 263 | D:As soon as papa is deep in a nap Pat happens to pound in his 264 | :shop and the phone sounds. Pat is to paint and pass up noise. 265 | 266 | I:(6) 267 | *:_Q_R_L27 268 | D:I hear there is an error in her other order. The store sent 269 | :her red dress to our door. She is sure that it is too dear. 270 | 271 | I:(7) 272 | *:_Q_R_L28 273 | D:I shall hold those ideal hotel lots at least until all land 274 | :is sold. Late sales still total less than the one old deal. 275 | 276 | I:(8) 277 | *:_Q_R_L29 278 | D:Sunday is too soon. It is not easy to stay and study this 279 | :dandy day. I need to study. It is not easy on the eyes. 280 | 281 | I:(9) 282 | *:_Q_R_L30 283 | D:One needs to use faith if one fishes often. It is fun to sit 284 | :on soft sod and fish. It is fun to feel a fish dash out fast. 285 | 286 | I:(9A) 287 | *:_Q_R_L31 288 | D:Hello, is this Dan? Hello, Dan, this is Ann. No, Ann. Did 289 | :you see Ted? Is Nan at the house? Then dash to the house. 290 | :Is he at the house? Has he his auto? Did he tie on those 291 | :odds and ends: used suits, sun hats, shoes, and side tent? 292 | 293 | I:(10) Rhythmic Review 294 | *:_Q_R_L32 295 | D:Papa can not plan to get us all there in such a car as this. 296 | 297 | G:_Q_E_Q3 298 | 299 | #------------------------------------------------------------------------------ 300 | # Lesson Q4 301 | #------------------------------------------------------------------------------ 302 | *:Q4 303 | *:_Q_S_Q4 304 | B: Lesson Q4 305 | 306 | *:_Q_R_L33 307 | T: 308 | : (m w v z x b q ' -) 309 | : 310 | :Self control is important in learning to type. Concentrate on using the 311 | :correct finger for each key. In this lesson you learn the seven remaining 312 | :letters of the alphabet. 313 | : 314 | :The semicolon (;), like the comma, is followed by one space in a sentence. 315 | : 316 | :Fingers: 'j' for 'm', 's' for 'w' and 'x', 'f' for 'v' and 'b', 317 | :';' for ' and '-', 'a' for 'z' and 'q' 318 | 319 | I:(1) Rhythm Drill 320 | *:_Q_R_L34 321 | D:dedc kik, frfv jujm swsx lol. aqaz ;p;p frfv jujm ftfb jyjn 322 | :aqsw az;p sxl. fvjm fvjn fbjn aqsw az;p sxl. fvjm fvjn fbjn 323 | 324 | I:(2) Balanced Keyboard Drill 325 | *:_Q_R_L35 326 | D:am aw av az ak ax ab um ub em ew ev ez ek eq ex om ow ov oz 327 | :ok ob im iv iz ix ib ma wa va za ka ja xa ba mu ju qu bu me 328 | :we ve ze ke je xe be mo wo vo zo ko jo bo mi wi vi zi ki xi 329 | :bi xt sm sk sw kn ms nk wh tw ks wn dv s; o; n; d; l; e; t; 330 | 331 | I:(3) Continuous Copy 332 | *:_Q_R_L36 333 | D:Iowa was white with snow when we two went down town and saw 334 | :a show. We wanted to see news and not the widow who was wed. 335 | 336 | I:(4) 337 | *:_Q_R_L37 338 | D:John has to use a tan and jet auto. He joined Jane in its 339 | :joint use. Jane just intends to use it in June on a jaunt. 340 | 341 | I:(5) 342 | *:_Q_R_L38 343 | D:Smith is his name. He is on some Maine team. I am to meet 344 | :him and Miss Smith. I must see them some time this month. 345 | 346 | I:(6) 347 | *:_Q_R_L39 348 | D:Kate uses ink to send a note south to Kansas kin. She asks 349 | :to use a kodak to take along on these keen skates and skis. 350 | 351 | I:(7) 352 | *:_Q_R_L40 353 | D:I advise Eva in vain to avoid an auto visit in seven states. 354 | :Nevada is so vivid that Eva votes to have this visit saved. 355 | 356 | I:(8) 357 | *:_Q_R_L41 358 | D:She has questions and unique ideas to quote us. So she is 359 | :quite the queen in this quiet set and sets us quaint quotas. 360 | 361 | I:(9) 362 | *:_Q_R_L42 363 | D:The zoo is shut. His zest is dashed. Dan dozes. One sneeze 364 | :and then a dozen seize Dan. In a daze he sees the zoo seized. 365 | 366 | I:(9A) 367 | *:_Q_R_L43 368 | D:The boat has been best to Boston. On this basis no doubt one 369 | :is bound to be a bit behind but boats beat both dust and heat. 370 | 371 | I:(9B) 372 | *:_Q_R_L44 373 | D:Nan is in Texas. She is anxious to dine at six. She sees a 374 | :taxi stand next to the sixth exit. Taxis exist to aid one. 375 | 376 | I:(10) Rhythmic Review 377 | *:_Q_R_L45 378 | D:Ask them to let us have the car if they both go to the show. 379 | 380 | G:_Q_E_Q4 381 | 382 | #------------------------------------------------------------------------------ 383 | # Lesson Q5 384 | #------------------------------------------------------------------------------ 385 | *:Q5 386 | *:_Q_S_Q5 387 | B: Lesson Q5 388 | 389 | *:_Q_R_L46 390 | T: 391 | :Now you know all of the alphabet. In this lesson we add the hyphen (-) and 392 | :the apostrophe ('). 393 | 394 | I:(1) Rhythm Drill 395 | *:_Q_R_L47 396 | D:dedc kik, frfv jujm swsx lol. aqaz ;p;p frfv jujm ftfb jyjn 397 | :frfk fvfb jujy jmjn aqsw azsw azsx ;plo ;p;- kik, ;p;- 398 | 399 | I:(2) Balanced Keyboard Drill 400 | *:_Q_R_L48 401 | D:ad ar an al am ab ee st ed er en el es em ex om on or un up 402 | :id ic ir in im se sy le ly re ry ec fy ty de be my by bi di 403 | :l-t o-d s-c p-t o-d n-y r-o g-d r-h d-g n't t's l's y's I'l 404 | 405 | I:(3) Continuous Copy -- Review 406 | *:_Q_R_L49 407 | D:It is a good thing papa has gone. Pat gets up a deep song. 408 | :Yet Ann says an easy song any day is a sign to guess again. 409 | 410 | I:(4) 411 | *:_Q_R_L50 412 | D:They often need funds but don't think it is any fun to study. 413 | :Ann is keen to ask him to use his kodak at the same time. 414 | 415 | I:(5) 416 | *:_Q_R_L51 417 | D:Ted notes an odd noise. Dan is in the seas and needs aid. 418 | :He sheds his suit and shoes on the sand and is out in haste. 419 | 420 | I:(6) 421 | *:_Q_R_L52 422 | D:A good visit East is Ann's next quest. Ann seems to seize 423 | :on this idea with zest. She has set seven visits as a quota. 424 | 425 | I:(7) 426 | *:_Q_R_L53 427 | D:She is to adjust her six visits to have a snow-white Maine 428 | :Christmas. An Iowa aunt asks Ann to take in that state, too. 429 | 430 | I:(8) 431 | *:_Q_R_L54 432 | D:It's a tax on time, but it's quite a new zone to Ann who is 433 | :in just the mood to end her quota of visits in sixteen weeks. 434 | 435 | I:(9) Rhythmic Review 436 | *:_Q_R_L55 437 | D:Two of the boys are to do it today and two of them next week. 438 | 439 | G:_Q_E_Q5 440 | 441 | #------------------------------------------------------------------------------ 442 | # Lesson series Q jump tables 443 | #------------------------------------------------------------------------------ 444 | *:_Q_E_Q1 445 | Q: Do you want to continue to lesson Q2 [Y/N] ? 446 | N:_Q_MENU 447 | G:_Q_S_Q2 448 | *:_Q_E_Q2 449 | Q: Do you want to continue to lesson Q3 [Y/N] ? 450 | N:_Q_MENU 451 | G:_Q_S_Q3 452 | *:_Q_E_Q3 453 | Q: Do you want to continue to lesson Q4 [Y/N] ? 454 | N:_Q_MENU 455 | G:_Q_S_Q4 456 | *:_Q_E_Q4 457 | Q: Do you want to continue to lesson Q5 [Y/N] ? 458 | N:_Q_MENU 459 | G:_Q_S_Q5 460 | *:_Q_E_Q5 461 | G:_Q_MENU 462 | 463 | #------------------------------------------------------------------------------ 464 | # Lesson series Q menu 465 | #------------------------------------------------------------------------------ 466 | *:_Q_MENU 467 | B: Quick QWERTY course 468 | M: UP=_EXIT "The Q series contains the following 5 lessons" 469 | :_Q_S_Q1 "Lesson Q1 a s d f g h j k l ;" 470 | :_Q_S_Q2 "Lesson Q2 h g o u n . t" 471 | :_Q_S_Q3 "Lesson Q3 y r c , ? : p" 472 | :_Q_S_Q4 "Lesson Q4 m w v z x b q" 473 | :_Q_S_Q5 "Lesson Q5 ' -" 474 | *:_Q_EXIT 475 | #------------------------------------------------------------------------------ 476 | -------------------------------------------------------------------------------- /public/s.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # Copyright (C) 1998 Simon Baldwin (simonb@sco.com) 3 | # 4 | # This program is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | 18 | #------------------------------------------------------------------------------ 19 | # Series S 20 | #------------------------------------------------------------------------------ 21 | G:_S_MENU 22 | *:_S_NO_MENU 23 | 24 | #------------------------------------------------------------------------------ 25 | # Lesson S1 26 | #------------------------------------------------------------------------------ 27 | *:S1 28 | *:_S_S_S1 29 | B: Lesson S1 30 | 31 | *:_S_R_L0 32 | T: SPEED PRACTICE SERIES 33 | : 34 | :The S series of lessons is designed to help you improve your typing speed 35 | :and accuracy. It is assumed that you have already learned how to touch 36 | :type either from a previous course in touch typing or from the T series of 37 | :these lessons. 38 | : 39 | :You can use this series even if you do not know how to touch type. But, it is 40 | :recommended that you at least learn to touch type most of the letters of the 41 | :alphabet before starting this series. When you encounter a letter or symbol 42 | :which you have not learned, you will have to look. This is a very bad habit to 43 | :get into and is hard to break. (You needn't worry if you only need to glance 44 | :down for unusual keys, like the dollar sign.) 45 | 46 | *:_S_R_L1 47 | T: RULES OF THE GAME 48 | : 49 | :I will display a paragraph on the screen. You should then type the entire 50 | :paragraph as quickly and as accurately as possible. As you type each 51 | :character, I will immediately check it for accuracy. If it was right, I won't 52 | :do anything. But, if you made a mistake, I will beep and write that letter in 53 | :inverse video (a black character on a white background). You can ignore the 54 | :error and continue going; or, you can backup and correct it with the DELETE 55 | :or BACKSPACE keys. (I will still count it as an error though.) 56 | : 57 | :I will also be timing you. From the time you type the first character until 58 | :you hit the final carriage return, my stop watch will be going. At the 59 | :end of the paragraph, I will tell you your rating (in words-per-minute). 60 | : 61 | :If you made too many mistakes, try the next paragraph slower. If you made no 62 | :mistakes or only one or two, try the next one faster. 63 | 64 | I:First, a quick warm-up. 65 | *:_S_R_L2 66 | S:The quick brown fox jumped over the lazy dogs. 67 | 68 | 69 | I:If the cursor is on a blank line, type return to skip it 70 | *:_S_R_L4 71 | S:Dear Sirs: 72 | : 73 | :I have just purchased a Heathkit H89 computer system and would 74 | :like to order two boxes of diskettes for it. This system uses 75 | :5 1/4 inch, hard-sectored, ten-sector, single-sided, single- 76 | :density diskettes. 77 | : 78 | :Enclosed is my check for $45.00. Please rush this order, as I 79 | :can not use my system before they arrive. 80 | : 81 | :Sincerely, 82 | : 83 | :Mr. Smith 84 | 85 | *:_S_R_L5 86 | S:Dear Sirs: 87 | : 88 | :Thank you for sending the diskettes so promptly. How- 89 | :ever, the diskettes which you sent are for soft-sectored 90 | :drives. As I stated in my original letter my system 91 | :accepts only ten-sector, hard-sectored diskettes. 92 | : 93 | :I will return these two boxes as soon as I receive the 94 | :correct ones. 95 | : 96 | :Sincerely, 97 | : 98 | :Mr. Smith 99 | 100 | *:_S_R_L6 101 | S:Dear Mr. Smith: 102 | : 103 | :Thank you for informing us that the diskettes which you pur- 104 | :chased from us are not satisfactory. We are sorry for the 105 | :inconvenience you have been caused in this transaction. 106 | : 107 | :We shall be glad to replace the diskettes you now have or to 108 | :allow you to select a different brand. If you will let us know 109 | :your wishes we shall be glad to give the matter our immediate 110 | :attention. 111 | : 112 | :We hope you will give us the opportunity to prove to you that 113 | :this incident is most unusual and that we do strive to render 114 | :to our customers an efficient and courteous service at all 115 | :times. 116 | 117 | G:_S_E_S1 118 | 119 | #------------------------------------------------------------------------------ 120 | # Lesson S2 121 | #------------------------------------------------------------------------------ 122 | *:S2 123 | *:_S_S_S2 124 | B: Lesson S2 125 | 126 | *:_S_R_L7 127 | T: 128 | :In this lesson we will practice some quotes by some famous (and not 129 | :so famous) people. 130 | 131 | I:Marcus Aurelius 132 | *:_S_R_L8 133 | S:A man can live well even in a palace. 134 | 135 | I:Ralph Waldo Emerson 136 | *:_S_R_L9 137 | S:My chief want in life is someone who shall make me do what I can. 138 | 139 | I:Elizabeth Barrett Browning 140 | *:_S_R_L10 141 | S:No man can be called friendless when he has God and the 142 | :companionship of good books. 143 | 144 | I:Ralph Waldo Emerson 145 | *:_S_R_L11 146 | S:I like the silent church before the service begins better than any preaching. 147 | 148 | I:George Washington 149 | *:_S_R_L12 150 | S:True friendship is a plant of slow growth. 151 | 152 | I:Aristotle 153 | *:_S_R_L13 154 | S:There is a foolish corner in the brain of the wisest men. 155 | 156 | I:Goethe 157 | *:_S_R_L14 158 | S:Tell me what you are busy about, and I will tell you what you are. 159 | 160 | I:Gelett Burgess 161 | *:_S_R_L15 162 | S:If in the last few years you haven't discarded a major opinion or 163 | :acquired a new one, check your pulse. You may be dead. 164 | 165 | I:James B. Conant 166 | *:_S_R_L16 167 | S:Democracy is a small hard core of common agreement, surrounded 168 | :by a rich variety of individual differences. 169 | 170 | I:Albert Einstein 171 | *:_S_R_L17 172 | S:I never think of the future. It comes soon enough. 173 | 174 | I:Harry S. Truman 175 | *:_S_R_L18 176 | S:Men often mistake notoriety for fame, and would rather be 177 | :remarked for their vices than not be noticed at all. 178 | 179 | I:Will Rogers 180 | *:_S_R_L19 181 | S:I could study all my life and not think up half the amount 182 | :of funny things they can think of in one session of Congress. 183 | 184 | I:Ralph Waldo Emerson 185 | *:_S_R_L20 186 | S:Hospitality consists in a little fire, a little food and an immense quiet. 187 | 188 | I:H. L. Mencken 189 | *:_S_R_L21 190 | S:Puritanism is the haunting fear that someone, somewhere, may be happy. 191 | 192 | I:William James 193 | *:_S_R_L22 194 | S:When you have to make a choice and don't make it, that is in itself a choice. 195 | 196 | I:James Holt McGravran. 197 | *:_S_R_L23 198 | S:There is a way of transferring funds that is even faster 199 | :than electronic banking. It is called marriage. 200 | 201 | I:Woody Allen 202 | *:_S_R_L24 203 | S:Showing up is 80 percent of life. 204 | 205 | I:Robert Frost 206 | *:_S_R_L25 207 | S:A poem begins in delight and ends in wisdom. 208 | 209 | I:Louis Pasteur 210 | *:_S_R_L26 211 | S:When I approach a child, he inspires in me two sentiments: tenderness 212 | :for what he is, and respect for what he may become. 213 | 214 | G:_S_E_S2 215 | 216 | #------------------------------------------------------------------------------ 217 | # Lesson S3 218 | #------------------------------------------------------------------------------ 219 | *:S3 220 | *:_S_S_S3 221 | B: Lesson S3 222 | 223 | *:_S_R_L27 224 | T: 225 | :In this lesson you will be given several excerpts from the classics. 226 | :Take your time and type them carefully. 227 | 228 | I:A Christmas Carol, Stave One, Marley's Ghost 229 | *:_S_R_L28 230 | S:Now, it is a fact, that there was nothing at all par- 231 | :ticular about the knocker on the door, except that it 232 | :was very large. It is also a fact, that Scrooge had 233 | :seen it, night and morning, during his whole residence 234 | :in that place; also that Scrooge has as little of what 235 | :is called fancy about him as any man in the city of 236 | :London, even including--which is a bold word--the 237 | :corporation, aldermen, and livery. Let it also be 238 | :borne in mind that Scrooge had not bestowed one 239 | :thought on Marley, since his last mention of his 240 | :seven year's dead partner that afternoon. And then 241 | :let any man explain to me, if he can, how it happened 242 | :that Scrooge, having his key in the lock of the door, 243 | :saw in the knocker, without its undergoing any inter- 244 | :mediate process of change--not a knocker, but Mar- 245 | :ley's face. 246 | 247 | I:Gulliver's Travels, Chapter One, A Voyage to Lilliput 248 | *:_S_R_L29 249 | S:When I awaked it was just daylight. I attempted to rise, but I 250 | :found my arms and legs were strongly fastened on each side to 251 | :the ground; and my hair, which was long and thick, tied to the 252 | :ground in the same manner. I likewise felt several slender 253 | :ligatures across my body, from my armpits to my thighs. I 254 | :could only look upward; the sun began to grow hot, and the 255 | :light offended my eyes. I heard a confused noise about me; 256 | :but in the posture I lay could see nothing except the sky. In a 257 | :little time I felt something alive moving on my left leg, 258 | :which, advancing gently forward over my breast, came almost up 259 | :to my chin; when bending my eyes downward as much as I could, I 260 | :perceived it to be a human creature not six inches high, with a 261 | :bow and arrow in his hands, and a quiver at his back. In the 262 | :mean time I felt at least forty more of the same kind (as I 263 | :conjectured) following the first. 264 | 265 | I:Treasure Island, Chapter IV, "The Sea Chest", by Stevenson. 266 | *:_S_R_L30 267 | S:I lost no time, of course, in telling my mother all that 268 | :I knew, and perhaps should have told her long before, 269 | :and we saw ourselves at once in a difficult and dangerous 270 | :position. Some of the man's money--if he had any--was 271 | :certainly due to us; but it was not likely that our 272 | :captain's shipmates, above all the two specimens seen by 273 | :me, Black Dog and the blind beggar, would be inclined to 274 | :give up their booty in payment of the dead man's debts. 275 | :The captain's order to mount at once and ride for Dr. 276 | :Livesey would have left my mother alone and unprotected, 277 | :which was not to be thought of. Indeed, it seemed 278 | :impossible for either of us to remain much longer in the 279 | :house: the fall of coals in the kitchen grate, the very 280 | :ticking of the clock, filled us with alarms. 281 | 282 | I:Treasure Island, Chapter IV, "The Sea Chest", by Stevenson. 283 | *:_S_R_L31 284 | S:The neighborhood, to our ears, seemed haunted by 285 | :approaching footsteps; and what between the dead 286 | :body of the captain on the parlor floor, and the thought 287 | :of that detestable blind beggar hovering near at hand, 288 | :and ready to return, there were moments when, as the 289 | :saying goes, I jumped in my skin for terror. Something 290 | :must speedily be resolved upon; and it occurred to us at 291 | :last to go forth together and seek help in the neighbor- 292 | :ing hamlet. No sooner said than done. Bareheaded as we 293 | :were, we ran out at once in the gathering evening and 294 | :the frosty fog. 295 | 296 | G:_S_E_S3 297 | 298 | #------------------------------------------------------------------------------ 299 | # Lesson S4 300 | #------------------------------------------------------------------------------ 301 | *:S4 302 | *:_S_S_S4 303 | B: Lesson S4 304 | 305 | *:_S_R_L32 306 | T: 307 | :In this lesson you will be given several soliloquies from 308 | :Shakespeare's plays. The spelling and punctuation are 309 | :quite hard. Take your time and type them carefully. 310 | 311 | I:Romeo and Juliet, Act II, Scene II (Capulet's Garden). 312 | *:_S_R_L33 313 | S:But, soft! what light through yonder window breaks? 314 | :It is the east, and Juliet is the sun!-- 315 | :Arise, fair sun, and kill the envious moon, 316 | :Who is already sick and pale with grief, 317 | :That thou her maid art far more fair than she: 318 | :Be not her maid, since she is envious; 319 | :Her vestal livery is but sick and green, 320 | :And none but fools do wear it; cast it off.-- 321 | :It is my lady; O, it is my love! 322 | :O, that she knew she were!-- 323 | :She speaks, yet she says nothing: what of that? 324 | :Her eye discourses, I will answer it.-- 325 | :I am too bold, 'tis not to me she speaks: 326 | 327 | *:_S_R_L34 328 | S:Two of the fairest stars in all the heaven, 329 | :Having some business, do entreat her eyes 330 | :To twinkle in their spheres till they return. 331 | :What if her eyes were there, they in her head? 332 | :The brightness of her cheek would shame those stars, 333 | :As daylight doth a lamp; her eyes in heaven 334 | :Would through the airy region stream so bright 335 | :That birds would sing, and think it were not night.-- 336 | :See how she leans her cheek upon her hand! 337 | :O, that I were a glove upon that hand, 338 | :That I might touch that cheek! 339 | 340 | I:Julius Caesar, Act III, Scene II (The Forum). 341 | *:_S_R_L35 342 | S:Friends, Romans, countrymen, lend me your ears; 343 | :I come to bury Caesar, not to praise him. 344 | :The evil that men do lives after them; 345 | :The good is oft interred with their bones; 346 | :So let it be with Caesar: The noble Brutus 347 | :Hath told you Caesar was ambitious: 348 | :If it were so, it was a grievous fault; 349 | :And grievously hath Caesar answer'd it. 350 | :Here, under leave of Brutus and the rest,-- 351 | :For Brutus is an honourable man; 352 | :So are they all, all honourable men,-- 353 | :Come I to speak in Caesar's funeral. 354 | :He was my friend, faithful and just to me; 355 | :But Brutus says he was ambitious; 356 | :And Brutus is an honourable man. 357 | 358 | *:_S_R_L36 359 | S:He hath brought many captives home to Rome. 360 | :Whose ransoms did the general coffers fill: 361 | :Did this in Caesar seem ambitious? 362 | :When that the poor have cried, Caesar hath wept: 363 | :Ambition should be made of sterner stuff: 364 | :Yet Brutus says he was ambitious; 365 | :And Brutus is an honourable man. 366 | :You all did see that on the Lupercal 367 | :I thrice presented him a kingly crown, 368 | :Which he did thrice refuse: was this ambition? 369 | :Yet Brutus says he was ambitious; 370 | :And, sure, he is an honourable man. 371 | 372 | *:_S_R_L37 373 | S:I speak not to disprove what Brutus spoke, 374 | :But here I am to speak what I do know. 375 | :You all did love him once,--not without cause: 376 | :What cause withholds you, then, to mourn for him? 377 | :O judgement, thou art fled to brutish beasts, 378 | :And men have lost their reason!--Bear with me; 379 | :My heart is in the coffin there with Caesar, 380 | :And I must pause till it come back to me. 381 | 382 | I:The Merchant of Venice, Act IV, Scene I (A Court of Justice). 383 | *:_S_R_L38 384 | S:The quality of mercy is not strain'd; 385 | :It droppeth as the gentle rain from heaven 386 | :Upon the place beneath: it is twice bless'd; 387 | :It blesseth him that gives and him that takes: 388 | :'Tis mightiest in the mightiest; it becomes 389 | :The throned monarch better than his crown; 390 | :His sceptre shows the force of temporal power, 391 | :The attribute to awe and majesty, 392 | :Wherein doth sit the dread and fear of kings; 393 | 394 | *:_S_R_L39 395 | S:But mercy is above this scepter'd sway,-- 396 | :It is enthroned in the heart of kings, 397 | :It is an attribute to God himself; 398 | :And earthly power doth then show likest God's 399 | :When mercy seasons justice. Therefore, Jew, 400 | :Though justice be thy plea consider this-- 401 | :That in the course of justice none of us 402 | :Should see salvation: we do pray for mercy; 403 | :And that same prayer doth teach us all to render 404 | :The deeds of mercy. I have spoke thus much 405 | :To mitigate the justice of thy plea; 406 | :Which if thou follow, this strict court of Venice 407 | :Must needs give sentence 'gainst the merchant there. 408 | 409 | G:_S_E_S4 410 | 411 | #------------------------------------------------------------------------------ 412 | # Lesson series S jump tables 413 | #------------------------------------------------------------------------------ 414 | *:_S_E_S1 415 | Q: Do you want to continue to lesson S2 [Y/N] ? 416 | N:_S_MENU 417 | G:_S_S_S2 418 | *:_S_E_S2 419 | Q: Do you want to continue to lesson S3 [Y/N] ? 420 | N:_S_MENU 421 | G:_S_S_S3 422 | *:_S_E_S3 423 | Q: Do you want to continue to lesson S4 [Y/N] ? 424 | N:_S_MENU 425 | G:_S_S_S4 426 | *:_S_E_S4 427 | G:_S_MENU 428 | 429 | #------------------------------------------------------------------------------ 430 | # Lesson series S menu 431 | #------------------------------------------------------------------------------ 432 | *:_S_MENU 433 | B: Speed drills 434 | M: UP=_EXIT "The S series contains the following 4 lessons" 435 | :_S_S_S1 "Lesson S1 Speed tests" 436 | :_S_S_S2 "Lesson S2 Speed tests" 437 | :_S_S_S3 "Lesson S3 Speed tests" 438 | :_S_S_S4 "Lesson S4 Speed tests" 439 | *:_S_EXIT 440 | #------------------------------------------------------------------------------ 441 | -------------------------------------------------------------------------------- /public/s2.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # Copyright (C) 1998 Simon Baldwin (simonb@sco.com) 3 | # 4 | # This program is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | 18 | #------------------------------------------------------------------------------ 19 | # Series S 20 | #------------------------------------------------------------------------------ 21 | G:_S_MENU 22 | *:_S_NO_MENU 23 | 24 | #------------------------------------------------------------------------------ 25 | # Lesson S1 26 | #------------------------------------------------------------------------------ 27 | *:S1 28 | *:_S_S_S1 29 | B: Lesson S1 30 | 31 | *:_S_R_L0 32 | T: SPEED PRACTICE SERIES 33 | : 34 | :The S series of lessons is designed to help you improve your typing speed 35 | :and accuracy. It is assumed that you have already learned how to touch 36 | :type either from a previous course in touch typing or from the T series of 37 | :these lessons. 38 | : 39 | :You can use this series even if you do not know how to touch type. But, it is 40 | :recommended that you at least learn to touch type most of the letters of the 41 | :alphabet before starting this series. When you encounter a letter or symbol 42 | :which you have not learned, you will have to look. This is a very bad habit to 43 | :get into and is hard to break. (You needn't worry if you only need to glance 44 | :down for unusual keys, like the dollar sign.) 45 | 46 | *:_S_R_L1 47 | T: RULES OF THE GAME 48 | : 49 | :I will display a paragraph on the screen. You should then type the entire 50 | :paragraph as quickly and as accurately as possible. As you type each 51 | :character, I will immediately check it for accuracy. If it was right, I won't 52 | :do anything. But, if you made a mistake, I will beep and write that letter in 53 | :inverse video (a black character on a white background). You can ignore the 54 | :error and continue going; or, you can backup and correct it with the DELETE 55 | :or BACKSPACE keys. (I will still count it as an error though.) 56 | : 57 | :I will also be timing you. From the time you type the first character until 58 | :you hit the final carriage return, my stop watch will be going. At the 59 | :end of the paragraph, I will tell you your rating (in words-per-minute). 60 | : 61 | :If you made too many mistakes, try the next paragraph slower. If you made no 62 | :mistakes or only one or two, try the next one faster. 63 | 64 | I:First, a quick warm-up. 65 | *:_S_R_L2 66 | S:The quick brown fox jumped over the lazy dogs. 67 | 68 | 69 | I:If the cursor is on a blank line, type return to skip it 70 | *:_S_R_L4 71 | S:Dear Sirs: 72 | : 73 | :I have just purchased a Heathkit H89 computer system and would 74 | :like to order two boxes of diskettes for it. This system uses 75 | :5 1/4 inch, hard-sectored, ten-sector, single-sided, single- 76 | :density diskettes. 77 | : 78 | :Enclosed is my check for $45.00. Please rush this order, as I 79 | :can not use my system before they arrive. 80 | : 81 | :Sincerely, 82 | : 83 | :Mr. Smith 84 | 85 | *:_S_R_L5 86 | S:Dear Sirs: 87 | : 88 | :Thank you for sending the diskettes so promptly. How- 89 | :ever, the diskettes which you sent are for soft-sectored 90 | :drives. As I stated in my original letter my system 91 | :accepts only ten-sector, hard-sectored diskettes. 92 | : 93 | :I will return these two boxes as soon as I receive the 94 | :correct ones. 95 | : 96 | :Sincerely, 97 | : 98 | :Mr. Smith 99 | 100 | *:_S_R_L6 101 | S:Dear Mr. Smith: 102 | : 103 | :Thank you for informing us that the diskettes which you pur- 104 | :chased from us are not satisfactory. We are sorry for the 105 | :inconvenience you have been caused in this transaction. 106 | : 107 | :We shall be glad to replace the diskettes you now have or to 108 | :allow you to select a different brand. If you will let us know 109 | :your wishes we shall be glad to give the matter our immediate 110 | :attention. 111 | : 112 | :We hope you will give us the opportunity to prove to you that 113 | :this incident is most unusual and that we do strive to render 114 | :to our customers an efficient and courteous service at all 115 | :times. 116 | 117 | G:_S_E_S1 118 | 119 | #------------------------------------------------------------------------------ 120 | # Lesson S2 121 | #------------------------------------------------------------------------------ 122 | *:S2 123 | *:_S_S_S2 124 | B: Lesson S2 125 | 126 | *:_S_R_L7 127 | T: 128 | :In this lesson we will practice some quotes by some famous (and not 129 | :so famous) people. 130 | 131 | I:Marcus Aurelius 132 | *:_S_R_L8 133 | S:A man can live well even in a palace. 134 | 135 | I:Ralph Waldo Emerson 136 | *:_S_R_L9 137 | S:My chief want in life is someone who shall make me do what I can. 138 | 139 | I:Elizabeth Barrett Browning 140 | *:_S_R_L10 141 | S:No man can be called friendless when he has God and the 142 | :companionship of good books. 143 | 144 | I:Ralph Waldo Emerson 145 | *:_S_R_L11 146 | S:I like the silent church before the service begins better than any preaching. 147 | 148 | I:George Washington 149 | *:_S_R_L12 150 | S:True friendship is a plant of slow growth. 151 | 152 | I:Aristotle 153 | *:_S_R_L13 154 | S:There is a foolish corner in the brain of the wisest men. 155 | 156 | I:Goethe 157 | *:_S_R_L14 158 | S:Tell me what you are busy about, and I will tell you what you are. 159 | 160 | I:Gelett Burgess 161 | *:_S_R_L15 162 | S:If in the last few years you haven't discarded a major opinion or 163 | :acquired a new one, check your pulse. You may be dead. 164 | 165 | I:James B. Conant 166 | *:_S_R_L16 167 | S:Democracy is a small hard core of common agreement, surrounded 168 | :by a rich variety of individual differences. 169 | 170 | I:Albert Einstein 171 | *:_S_R_L17 172 | S:I never think of the future. It comes soon enough. 173 | 174 | I:Harry S. Truman 175 | *:_S_R_L18 176 | S:Men often mistake notoriety for fame, and would rather be 177 | :remarked for their vices than not be noticed at all. 178 | 179 | I:Will Rogers 180 | *:_S_R_L19 181 | S:I could study all my life and not think up half the amount 182 | :of funny things they can think of in one session of Congress. 183 | 184 | I:Ralph Waldo Emerson 185 | *:_S_R_L20 186 | S:Hospitality consists in a little fire, a little food and an immense quiet. 187 | 188 | I:H. L. Mencken 189 | *:_S_R_L21 190 | S:Puritanism is the haunting fear that someone, somewhere, may be happy. 191 | 192 | I:William James 193 | *:_S_R_L22 194 | S:When you have to make a choice and don't make it, that is in itself a choice. 195 | 196 | I:James Holt McGravran. 197 | *:_S_R_L23 198 | S:There is a way of transferring funds that is even faster 199 | :than electronic banking. It is called marriage. 200 | 201 | I:Woody Allen 202 | *:_S_R_L24 203 | S:Showing up is 80 percent of life. 204 | 205 | I:Robert Frost 206 | *:_S_R_L25 207 | S:A poem begins in delight and ends in wisdom. 208 | 209 | I:Louis Pasteur 210 | *:_S_R_L26 211 | S:When I approach a child, he inspires in me two sentiments: tenderness 212 | :for what he is, and respect for what he may become. 213 | 214 | G:_S_E_S2 215 | 216 | #------------------------------------------------------------------------------ 217 | # Lesson S3 218 | #------------------------------------------------------------------------------ 219 | *:S3 220 | *:_S_S_S3 221 | B: Lesson S3 222 | 223 | *:_S_R_L27 224 | T: 225 | :In this lesson you will be given several excerpts from the classics. 226 | :Take your time and type them carefully. 227 | 228 | I:A Christmas Carol, Stave One, Marley's Ghost 229 | *:_S_R_L28 230 | S:Now, it is a fact, that there was nothing at all par- 231 | :ticular about the knocker on the door, except that it 232 | :was very large. It is also a fact, that Scrooge had 233 | :seen it, night and morning, during his whole residence 234 | :in that place; also that Scrooge has as little of what 235 | :is called fancy about him as any man in the city of 236 | :London, even including--which is a bold word--the 237 | :corporation, aldermen, and livery. Let it also be 238 | :borne in mind that Scrooge had not bestowed one 239 | :thought on Marley, since his last mention of his 240 | :seven year's dead partner that afternoon. And then 241 | :let any man explain to me, if he can, how it happened 242 | :that Scrooge, having his key in the lock of the door, 243 | :saw in the knocker, without its undergoing any inter- 244 | :mediate process of change--not a knocker, but Mar- 245 | :ley's face. 246 | 247 | I:Gulliver's Travels, Chapter One, A Voyage to Lilliput 248 | *:_S_R_L29 249 | S:When I awaked it was just daylight. I attempted to rise, but I 250 | :found my arms and legs were strongly fastened on each side to 251 | :the ground; and my hair, which was long and thick, tied to the 252 | :ground in the same manner. I likewise felt several slender 253 | :ligatures across my body, from my armpits to my thighs. I 254 | :could only look upward; the sun began to grow hot, and the 255 | :light offended my eyes. I heard a confused noise about me; 256 | :but in the posture I lay could see nothing except the sky. In a 257 | :little time I felt something alive moving on my left leg, 258 | :which, advancing gently forward over my breast, came almost up 259 | :to my chin; when bending my eyes downward as much as I could, I 260 | :perceived it to be a human creature not six inches high, with a 261 | :bow and arrow in his hands, and a quiver at his back. In the 262 | :mean time I felt at least forty more of the same kind (as I 263 | :conjectured) following the first. 264 | 265 | I:Treasure Island, Chapter IV, "The Sea Chest", by Stevenson. 266 | *:_S_R_L30 267 | S:I lost no time, of course, in telling my mother all that 268 | :I knew, and perhaps should have told her long before, 269 | :and we saw ourselves at once in a difficult and dangerous 270 | :position. Some of the man's money--if he had any--was 271 | :certainly due to us; but it was not likely that our 272 | :captain's shipmates, above all the two specimens seen by 273 | :me, Black Dog and the blind beggar, would be inclined to 274 | :give up their booty in payment of the dead man's debts. 275 | :The captain's order to mount at once and ride for Dr. 276 | :Livesey would have left my mother alone and unprotected, 277 | :which was not to be thought of. Indeed, it seemed 278 | :impossible for either of us to remain much longer in the 279 | :house: the fall of coals in the kitchen grate, the very 280 | :ticking of the clock, filled us with alarms. 281 | 282 | I:Treasure Island, Chapter IV, "The Sea Chest", by Stevenson. 283 | *:_S_R_L31 284 | S:The neighborhood, to our ears, seemed haunted by 285 | :approaching footsteps; and what between the dead 286 | :body of the captain on the parlor floor, and the thought 287 | :of that detestable blind beggar hovering near at hand, 288 | :and ready to return, there were moments when, as the 289 | :saying goes, I jumped in my skin for terror. Something 290 | :must speedily be resolved upon; and it occurred to us at 291 | :last to go forth together and seek help in the neighbor- 292 | :ing hamlet. No sooner said than done. Bareheaded as we 293 | :were, we ran out at once in the gathering evening and 294 | :the frosty fog. 295 | 296 | G:_S_E_S3 297 | 298 | #------------------------------------------------------------------------------ 299 | # Lesson S4 300 | #------------------------------------------------------------------------------ 301 | *:S4 302 | *:_S_S_S4 303 | B: Lesson S4 304 | 305 | *:_S_R_L32 306 | T: 307 | :In this lesson you will be given several soliloquies from 308 | :Shakespeare's plays. The spelling and punctuation are 309 | :quite hard. Take your time and type them carefully. 310 | 311 | I:Romeo and Juliet, Act II, Scene II (Capulet's Garden). 312 | *:_S_R_L33 313 | S:But, soft! what light through yonder window breaks? 314 | :It is the east, and Juliet is the sun!-- 315 | :Arise, fair sun, and kill the envious moon, 316 | :Who is already sick and pale with grief, 317 | :That thou her maid art far more fair than she: 318 | :Be not her maid, since she is envious; 319 | :Her vestal livery is but sick and green, 320 | :And none but fools do wear it; cast it off.-- 321 | :It is my lady; O, it is my love! 322 | :O, that she knew she were!-- 323 | :She speaks, yet she says nothing: what of that? 324 | :Her eye discourses, I will answer it.-- 325 | :I am too bold, 'tis not to me she speaks: 326 | 327 | *:_S_R_L34 328 | S:Two of the fairest stars in all the heaven, 329 | :Having some business, do entreat her eyes 330 | :To twinkle in their spheres till they return. 331 | :What if her eyes were there, they in her head? 332 | :The brightness of her cheek would shame those stars, 333 | :As daylight doth a lamp; her eyes in heaven 334 | :Would through the airy region stream so bright 335 | :That birds would sing, and think it were not night.-- 336 | :See how she leans her cheek upon her hand! 337 | :O, that I were a glove upon that hand, 338 | :That I might touch that cheek! 339 | 340 | I:Julius Caesar, Act III, Scene II (The Forum). 341 | *:_S_R_L35 342 | S:Friends, Romans, countrymen, lend me your ears; 343 | :I come to bury Caesar, not to praise him. 344 | :The evil that men do lives after them; 345 | :The good is oft interred with their bones; 346 | :So let it be with Caesar: The noble Brutus 347 | :Hath told you Caesar was ambitious: 348 | :If it were so, it was a grievous fault; 349 | :And grievously hath Caesar answer'd it. 350 | :Here, under leave of Brutus and the rest,-- 351 | :For Brutus is an honourable man; 352 | :So are they all, all honourable men,-- 353 | :Come I to speak in Caesar's funeral. 354 | :He was my friend, faithful and just to me; 355 | :But Brutus says he was ambitious; 356 | :And Brutus is an honourable man. 357 | 358 | *:_S_R_L36 359 | S:He hath brought many captives home to Rome. 360 | :Whose ransoms did the general coffers fill: 361 | :Did this in Caesar seem ambitious? 362 | :When that the poor have cried, Caesar hath wept: 363 | :Ambition should be made of sterner stuff: 364 | :Yet Brutus says he was ambitious; 365 | :And Brutus is an honourable man. 366 | :You all did see that on the Lupercal 367 | :I thrice presented him a kingly crown, 368 | :Which he did thrice refuse: was this ambition? 369 | :Yet Brutus says he was ambitious; 370 | :And, sure, he is an honourable man. 371 | 372 | *:_S_R_L37 373 | S:I speak not to disprove what Brutus spoke, 374 | :But here I am to speak what I do know. 375 | :You all did love him once,--not without cause: 376 | :What cause withholds you, then, to mourn for him? 377 | :O judgement, thou art fled to brutish beasts, 378 | :And men have lost their reason!--Bear with me; 379 | :My heart is in the coffin there with Caesar, 380 | :And I must pause till it come back to me. 381 | 382 | I:The Merchant of Venice, Act IV, Scene I (A Court of Justice). 383 | *:_S_R_L38 384 | S:The quality of mercy is not strain'd; 385 | :It droppeth as the gentle rain from heaven 386 | :Upon the place beneath: it is twice bless'd; 387 | :It blesseth him that gives and him that takes: 388 | :'Tis mightiest in the mightiest; it becomes 389 | :The throned monarch better than his crown; 390 | :His sceptre shows the force of temporal power, 391 | :The attribute to awe and majesty, 392 | :Wherein doth sit the dread and fear of kings; 393 | 394 | *:_S_R_L39 395 | S:But mercy is above this scepter'd sway,-- 396 | :It is enthroned in the heart of kings, 397 | :It is an attribute to God himself; 398 | :And earthly power doth then show likest God's 399 | :When mercy seasons justice. Therefore, Jew, 400 | :Though justice be thy plea consider this-- 401 | :That in the course of justice none of us 402 | :Should see salvation: we do pray for mercy; 403 | :And that same prayer doth teach us all to render 404 | :The deeds of mercy. I have spoke thus much 405 | :To mitigate the justice of thy plea; 406 | :Which if thou follow, this strict court of Venice 407 | :Must needs give sentence 'gainst the merchant there. 408 | 409 | G:_S_E_S4 410 | 411 | #------------------------------------------------------------------------------ 412 | # Lesson series S jump tables 413 | #------------------------------------------------------------------------------ 414 | *:_S_E_S1 415 | Q: Do you want to continue to lesson S2 [Y/N] ? 416 | N:_S_MENU 417 | G:_S_S_S2 418 | *:_S_E_S2 419 | Q: Do you want to continue to lesson S3 [Y/N] ? 420 | N:_S_MENU 421 | G:_S_S_S3 422 | *:_S_E_S3 423 | Q: Do you want to continue to lesson S4 [Y/N] ? 424 | N:_S_MENU 425 | G:_S_S_S4 426 | *:_S_E_S4 427 | G:_S_MENU 428 | 429 | #------------------------------------------------------------------------------ 430 | # Lesson series S menu 431 | #------------------------------------------------------------------------------ 432 | *:_S_MENU 433 | B: Speed drills 434 | M: UP=_EXIT "The S series contains the following 4 lessons" 435 | :_S_S_S1 "Lesson S1 Speed tests" 436 | :_S_S_S2 "Lesson S2 Speed tests" 437 | :_S_S_S3 "Lesson S3 Speed tests" 438 | :_S_S_S4 "Lesson S4 Speed tests" 439 | *:_S_EXIT 440 | #------------------------------------------------------------------------------ 441 | -------------------------------------------------------------------------------- /public/u.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # Copyright (C) 1998 Simon Baldwin (simonb@sco.com) 3 | # 4 | # This program is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | 18 | #------------------------------------------------------------------------------ 19 | # Series U 20 | #------------------------------------------------------------------------------ 21 | G:_U_MENU 22 | *:_U_NO_MENU 23 | 24 | #------------------------------------------------------------------------------ 25 | # Lesson U1 26 | #------------------------------------------------------------------------------ 27 | *:U1 28 | *:_U_S_U1 29 | B: Lesson U1 30 | 31 | *:_U_R_L0 32 | T: Welcome to lesson U1 33 | : 34 | :Still don't know how to touch-type? Let's start from the beginning and 35 | :drill you starting with the home row. 36 | 37 | I:(1) Try this: 38 | *:_U_R_L1 39 | D:has half hag gad gash glass sash ash slash shall flash 40 | :had hall gas gaff gall glad dash ask slag shad ah 41 | 42 | G:_U_E_U1 43 | 44 | #------------------------------------------------------------------------------ 45 | # Lesson U2 46 | #------------------------------------------------------------------------------ 47 | *:U2 48 | *:_U_S_U2 49 | B: Lesson U2 50 | 51 | I:(1) Familiarize yourself with the top row and between the index fingers: 52 | *:_U_R_L3 53 | D:juj kik lol ;p; jyj 54 | :frf ded sws aqa ftf 55 | 56 | I:(2) Some words: 57 | *:_U_R_L4 58 | D:jug part ye aqua their hearty dry great why whose youth 59 | :kit free use type last lower drug light wheat proper your 60 | :lot dear its rear were pretty grip quiet where proud yellow 61 | :hear sweep old easy writer fresh group equip who please yes 62 | 63 | I:(3) Now for the bottom row: 64 | *:_U_R_L5 65 | D:jmj k,k l.l ;/; jnj 66 | :fvf dcd sxs aza fbf 67 | 68 | I:(4) Some words: 69 | *:_U_R_L6 70 | D:man come body vacant many tax ribbon lining believing 71 | :name can beam make examine none native baby commission 72 | :vain sex not cancel even mention woman brick quicken 73 | :become zero cave lazy benzine opening very branch textile 74 | 75 | G:_U_E_U2 76 | 77 | #------------------------------------------------------------------------------ 78 | # Lesson U3 79 | #------------------------------------------------------------------------------ 80 | *:U3 81 | *:_U_S_U3 82 | B: Lesson U3 83 | 84 | I:(1) 85 | *:_U_R_L8 86 | D:Do you live in Scranton, Pennsylvania? 87 | 88 | I:(2) 89 | *:_U_R_L9 90 | D:Mary Brown and Nancy Smith are in New York City. 91 | 92 | I:(3) 93 | *:_U_R_L10 94 | D:Violet, Helen, Dora, Jennie, and Elsie are staying at the Hotel Commodore. 95 | 96 | I:(4) 97 | *:_U_R_L11 98 | D:I have lived in Los Angeles, San Francisco, Portland, Chicago, St. Louis, and 99 | :Denver; Robert has lived in Boston, Philadelphia, Jersey City, and Utica. 100 | 101 | I:(5) 102 | *:_U_R_L12 103 | D:j7j k8k l9l ;0; j6j 104 | :f4f d3d s2s a1a f4f 105 | 106 | I:(6) 107 | *:_U_R_L13 108 | D:j&j k*k l(l ;); j^j 109 | :f$f d#d s@s a!a f%f 110 | 111 | I:(7) 112 | *:_U_R_L14 113 | S:Please send me the book "Facts & Figures." 114 | :Send us the items (3 dozen coats) right away. 115 | :The amount of the bill is $17,563.49; the discount is 2% 10 days, net 30 days. 116 | :The cards should be made up in the following sizes: 4 5/16 x 8 3/16 and 117 | :3 5/8 x 6 7/8. 118 | 119 | I:(8) 120 | *:_U_R_L15 121 | D:2's 3's 4's 5's 122 | :#' #2 #3 #4 #5 123 | 124 | G:_U_E_U3 125 | 126 | #------------------------------------------------------------------------------ 127 | # Lesson U4 128 | #------------------------------------------------------------------------------ 129 | *:U4 130 | *:_U_S_U4 131 | B: Lesson U4 132 | 133 | I:(1) 134 | *:_U_R_L15A 135 | D:;'; ;"; ;/; ;?; ;[; ;{; ;-; ;_; 136 | 137 | I:(2) 138 | *:_U_R_L17 139 | D:The quick brown fox jumps over the lazy dog. 140 | 141 | I:(3) 142 | *:_U_R_L18 143 | D:This is a specimen of the work done on this machine. 144 | 145 | I:(4) 146 | *:_U_R_L19 147 | D:Now is the time for all good men to come to the aid of their party. 148 | 149 | I:(5) 150 | *:_U_R_L20 151 | D:1$ 2$ 3$ 4$ 5$ 6$ 7$ 8$ 9$ 10$ 152 | :2 coats @ $20.00 5 hats @ $4.00 153 | 154 | G:_U_E_U4 155 | 156 | #------------------------------------------------------------------------------ 157 | # Lesson U5 158 | #------------------------------------------------------------------------------ 159 | *:U5 160 | *:_U_S_U5 161 | B: Lesson U5 162 | 163 | *:_U_R_L21 164 | T: 165 | : (Drill on S Combinations) 166 | 167 | I:(1) 168 | *:_U_R_L22 169 | D:sas ses sis sos sus sc scr sh sk sl sm sn sp spl spr st str sw 170 | 171 | I:(2) 172 | *:_U_R_L23 173 | D:says sides springs slips snows shops sweets streets 174 | :sees souls spreads schools smiles shoots swings strikes 175 | :sues speaks splashes screams skates sheets stones stresses 176 | 177 | I:(3) 178 | *:_U_R_L24 179 | S:She wishes to show us some samples. 180 | :The sisters wear the same size dresses. 181 | :She says she speaks to Sally in school. 182 | :The shipment was shipped by fast express. 183 | :Simplicity and sincerity are social assets. 184 | 185 | I:(4) 186 | *:_U_R_L25 187 | S: Safety first. This slogan is well known. Yet many care- 188 | :less people disregard it and so we have accidents. It is pos- 189 | :sible to avoid many types of accidents by a little forethought. 190 | :Don't be careless. Do your share to avoid mishaps. 191 | 192 | G:_U_E_U5 193 | 194 | #------------------------------------------------------------------------------ 195 | # Lesson U6 196 | #------------------------------------------------------------------------------ 197 | *:U6 198 | *:_U_S_U6 199 | B: Lesson U6 200 | 201 | *:_U_R_L26 202 | T: 203 | : (Drill on R Combinations) 204 | 205 | I:(1) 206 | *:_U_R_L27 207 | D:rar rer rir ror rur br cr dr fr gr pr shr tr thr 208 | 209 | I:(2) 210 | *:_U_R_L28 211 | D:rare rural proper trader drier freer cracker 212 | :rear broker prefer trapper dresser fresher grammar 213 | :roar brewer prepare thrower shrewder creamer greater 214 | 215 | I:(3) 216 | *:_U_R_L29 217 | S:Every promise made should be observed. 218 | :The price of the property is really $2,500. 219 | :Try to remember to bring your grammar with you. 220 | :Proof of your brokerage experience will be required. 221 | :The orange grower must have favorable weather conditions. 222 | 223 | I:(4) 224 | *:_U_R_L30 225 | S: Some people break promises as readily as they make them. 226 | :As a result, they acquire a reputation for unreliability. It 227 | :is particularly important to be reliable in the business world. 228 | :A person or firm that comes to be regarded as unreliable has a 229 | :poor chance of success. 230 | 231 | G:_U_E_U6 232 | 233 | #------------------------------------------------------------------------------ 234 | # Lesson U7 235 | #------------------------------------------------------------------------------ 236 | *:U7 237 | *:_U_S_U7 238 | B: Lesson U7 239 | 240 | *:_U_R_L31 241 | T: 242 | : (Drill on L Combinations) 243 | 244 | 245 | I:(1) 246 | *:_U_R_L32 247 | D:lal lel lil lol lul ly bl cl fl gl pl sl 248 | 249 | I:(2) 250 | *:_U_R_L33 251 | D:loll play blow clear glass flesh slow fully 252 | :lisle plow blue class globe fleet sleep silly 253 | :label please blood claim gleam flail slight really 254 | 255 | I:(3) 256 | *:_U_R_L34 257 | S:The mill will close in April. 258 | :It is clear to all who will listen. 259 | :The clerk sells cloth of fine value. 260 | :You will rely on them to supply you. 261 | :He held the floor until a relatively late hour. 262 | 263 | I:(4) 264 | *:_U_R_L35 265 | S: Play is most important to a child. All of us must play 266 | :a little. All work and no play makes Jack a dull boy, the 267 | :old saying goes. Play affords relaxation. Some people claim 268 | :their work is so enthralling that they do not need to play. 269 | :Psychologists say that the stress of modern life demands that 270 | :all adults have some hobby away from their daily pursuit. 271 | 272 | G:_U_E_U7 273 | 274 | #------------------------------------------------------------------------------ 275 | # Lesson U8 276 | #------------------------------------------------------------------------------ 277 | *:U8 278 | *:_U_S_U8 279 | B: Lesson U8 280 | 281 | *:_U_R_L36 282 | T: 283 | : (Drill on D-T Combinations) 284 | 285 | I:(1) 286 | *:_U_R_L37 287 | D:dad ded did dod dud dr ld nd rd 288 | :tat tet tit tot tut th tr ct ft lt nt pt st 289 | 290 | I:(2) 291 | *:_U_R_L38 292 | D:did bend tot total that last rented mended 293 | :deed lend toot tutor this kept melted handed 294 | :dude bold tight taught them chest drafted founded 295 | :dodo board trait treats there first directed doubted 296 | 297 | I:(3) 298 | *:_U_R_L39 299 | S:The first shall be last. 300 | :Credit the cost to the estate. 301 | :Record your thoughts from time to time. 302 | :An effort should be made to settle the estate. 303 | :Rest assured you will succeed if you try hard. 304 | 305 | I:(4) 306 | *:_U_R_L40 307 | D: To learn to typewrite is not difficult. The keyboard 308 | :of the typewriter may be mastered in a few hours, but to 309 | :get speed in typewriting calls for a good deal of practice. 310 | :One of the best methods of getting up speed is to write a 311 | :selection over and over again until it can be written easily 312 | :and accurately. 313 | 314 | G:_U_E_U8 315 | 316 | #------------------------------------------------------------------------------ 317 | # Lesson U9 318 | #------------------------------------------------------------------------------ 319 | *:U9 320 | *:_U_S_U9 321 | B: Lesson U9 322 | 323 | *:_U_R_L41 324 | T: 325 | : (Drill on M-N Combinations) 326 | 327 | I:(1) 328 | *:_U_R_L42 329 | D:am em im om um mb mp ment 330 | :an en in on un ng nk 331 | 332 | I:(2) 333 | *:_U_R_L43 334 | D:amount damper only singing payment moment 335 | :emblem camper enter ringing enrollment judgment 336 | :immense hamper under longing engagement excitement 337 | :omnibus lumber income banking appointment settlement 338 | :umbrella bomber answer thinking entertainment employment 339 | 340 | I:(3) 341 | *:_U_R_L44 342 | S:We are informed that an increase is anticipated. 343 | :Please inform us if you are interested in an engine. 344 | :Banks will extend financial aid to the business man. 345 | :Unless your invoice is paid, no shipment can be made. 346 | :The amount of your investment in common stocks is $800. 347 | 348 | I:(8) 349 | *:_U_R_L45 350 | S: The employer must consider any increase in cost that 351 | :enters into the manufacture of his product. Unless he includes 352 | :such cost in his selling price, he is unlikely to show a profit. 353 | :The installation of a cost system that enables the employer 354 | :to break down his costs to a unit basis is a prime necessity. 355 | 356 | G:_U_E_U9 357 | 358 | #------------------------------------------------------------------------------ 359 | # Lesson U10 360 | #------------------------------------------------------------------------------ 361 | *:U10 362 | *:_U_S_U10 363 | B: Lesson U10 364 | 365 | *:_U_R_L46 366 | T: 367 | : (Drill on com-con Combinations) 368 | 369 | I:(1) 370 | *:_U_R_L47 371 | D:com recom decom discom incom uncom 372 | :con recon decon discon incon uncon 373 | 374 | I:(2) 375 | *:_U_R_L48 376 | D:common commit decompose conduct consign incomplete 377 | :comply comment discomfort connect confuse unconvinced 378 | :combine compose disconnect consist contrast uncontrolled 379 | :commerce compare discontinue control contrary incomparable 380 | :commence complete inconvenient contract convince uncomfortable 381 | 382 | I:(3) 383 | *:_U_R_L49 384 | S:The lawyer consulted the complainant. 385 | :Please continue to comply with all recommendations. 386 | :Their income is derived from common stock commitments. 387 | :The concern communicated its conclusions convincingly. 388 | :Under the circumstances, the company will command control. 389 | 390 | I:(4) 391 | *:_U_R_L50 392 | S: Character shows itself in a man's conduct. Deeds speak 393 | :louder than words. Words sometimes confuse as issue where 394 | :deeds clarify it. The test of a man's sincerity is not what 395 | :he says but what he does. Consider this well and you will 396 | :never be confused in estimating a man's worth. 397 | 398 | G:_U_E_U10 399 | 400 | #------------------------------------------------------------------------------ 401 | # Lesson U11 402 | #------------------------------------------------------------------------------ 403 | *:U11 404 | *:_U_S_U11 405 | B: Lesson U11 406 | 407 | *:_U_R_L51 408 | T: 409 | : (Drill on sion-tion Combinations) 410 | 411 | I:(1) 412 | *:_U_R_L52 413 | D:asion esion ision osion usion 414 | :ation etion ition otion ution 415 | 416 | I:(2) 417 | *:_U_R_L53 418 | D:action motion quotation session caution ambition 419 | :nation ration invention division exhibition attention 420 | :portion station intention possession connection situation 421 | :location creation condition impression completion commission 422 | 423 | I:(3) 424 | *:_U_R_L54 425 | S:Information on the invention has been sent you. 426 | :The cancellation of the exhibition was announced. 427 | :Your communication of February 16 has been received. 428 | :Students are taught addition, subtraction, and division. 429 | :Your attention is called to the action of the Commission. 430 | 431 | I:(4) 432 | *:_U_R_L55 433 | S: Concentration is a valuable faculty. The ability to direct 434 | :one's attention exclusively along certain lines accounts for 435 | :the success of some people. Diffusion of effort is considered 436 | :an enemy of success. We are told that this is an age of 437 | :specialization, and specialization demands concentration. 438 | 439 | G:_U_E_U11 440 | 441 | #------------------------------------------------------------------------------ 442 | # Lesson U12 443 | #------------------------------------------------------------------------------ 444 | *:U12 445 | *:_U_S_U12 446 | B: Lesson U12 447 | 448 | *:_U_R_L56 449 | T: 450 | : (Drill on ter, ther, tor, ture, ster, der Combinations) 451 | 452 | I:(1) 453 | *:_U_R_L57 454 | D:ater oter etor utor ider ather other eture uture ister 455 | :eter uter itor ader oder ether uther iture aster oster 456 | :iter ator otor eder uder ither ature oture ester uster 457 | 458 | I:(2) 459 | *:_U_R_L58 460 | D:water later actor order father future faster 461 | :alter matter motor wider mother nature poster 462 | :voter better factor reader rather feature master 463 | :writer letter doctor modern either fixture register 464 | 465 | I:(3) 466 | *:_U_R_L59 467 | S:The voter was required to register. 468 | :The reader made a study of the literature. 469 | :The actor was better in the theatre than in pictures. 470 | :The writer wrote a letter to his future sister-in-law. 471 | :The minister received a letter from his father and mother. 472 | 473 | I:(4) 474 | *:_U_R_L60 475 | S: The best letter writers express themselves simply. They 476 | :avoid long words where shorter words will do. They have some- 477 | :thing to say and they say it interestingly and to the point. 478 | :A business letter should not be a literary masterpiece, but 479 | :that is not to say that it should not have style. 480 | 481 | G:_U_E_U12 482 | 483 | #------------------------------------------------------------------------------ 484 | # Lesson U13 485 | #------------------------------------------------------------------------------ 486 | *:U13 487 | *:_U_S_U13 488 | B: Lesson U13 489 | 490 | *:_U_R_L61 491 | T: 492 | : (Drill on qu, ch, wh, dw, sw, tw Combinations) 493 | : (Drill on de, des, dis, ex, self, tran) 494 | : (Drill on cial, cious, ology, ship, tive) 495 | 496 | I:(1) 497 | *:_U_R_L62 498 | D:quick each white sweet dwell exist desire transfer 499 | :quest touch where swell dwarf expose desert transact 500 | :quiet cheap whole twist expect degree dislike transmit 501 | :queen child wheat twenty express deprive dismiss translate 502 | 503 | I:(2) 504 | *:_U_R_L63 505 | D:special gracious active biology worship self-regard 506 | :official conscious native geology hardship self-respect 507 | :financial delicious positive pathology steamship self-defense 508 | 509 | I:(3) 510 | *:_U_R_L64 511 | S:The squadron marched quickly and quietly. 512 | :When will the twenty cars of wheat go forward? 513 | :The study of psychology is a "must" in college. 514 | :We desire to dispose of our financial interests. 515 | :A selfish person has his own self-interest at heart. 516 | 517 | I:(4) 518 | *:_U_R_L65 519 | S:Raymond Investment Co. 520 | :120 Wall Street 521 | :New York, NY 10005 522 | : 523 | :Gentlemen: 524 | : 525 | : For many years our medium has been the leading adver- 526 | :tising paper used by responsible investment firms who desire 527 | :to obtain new accounts. 528 | : 529 | : Our records show that you are not now making use of the 530 | :Adviser, and we ask that you consider its use in connection 531 | :with your new promotion effort. 532 | : 533 | :Yours truly, 534 | 535 | I:(5) 536 | *:_U_R_L66 537 | S:Mr. Z. Dexter 538 | :250 Madison Avenue 539 | :New York, NY 10016 540 | : 541 | :Dear Mr. Dexter: 542 | : 543 | :I am enclosing herewith the annual report of our corporation 544 | :for the year just ended; also table showing Profit and Loss 545 | :Account for the past ten years. 546 | : 547 | :I am placing your name on our mailing list for all future 548 | :reports sent out by the company, and if at any time you have 549 | :any questions regarding the report or the company, if you 550 | :will advise me, I shall be happy to give you any additional 551 | :information that I may have. 552 | : 553 | :Very truly yours, 554 | 555 | I:(6) 556 | *:_U_R_L67 557 | S:Strive for typing accuracy. Speed without accuracy is of little value. 558 | :Rhythm is the secret of typing skill. Don't write one part of a word 559 | :faster than another. Slow down so that you can maintain a regular rhythm. 560 | : 561 | :Think of the letters before you strike them. Strike the keys evenly, so 562 | :that the printing impression does not vary. At the same time, try to 563 | :develop your stroking speed and make it a habit to release the keys quickly. 564 | :To get up speed, type each exercise three or four times. 565 | : 566 | :To do your best, it is necessary that you be relaxed. You may be trying so 567 | :hard that you are all tied up in knots. Relax consciously. If you have a 568 | :feeling of tenseness and hurry, you are not properly relaxed. 569 | 570 | G:_U_E_U13 571 | 572 | #------------------------------------------------------------------------------ 573 | # Lesson series U jump tables 574 | #------------------------------------------------------------------------------ 575 | *:_U_E_U1 576 | Q: Do you want to continue to lesson U2 [Y/N] ? 577 | N:_U_MENU 578 | G:_U_S_U2 579 | *:_U_E_U2 580 | Q: Do you want to continue to lesson U3 [Y/N] ? 581 | N:_U_MENU 582 | G:_U_S_U3 583 | *:_U_E_U3 584 | Q: Do you want to continue to lesson U4 [Y/N] ? 585 | N:_U_MENU 586 | G:_U_S_U4 587 | *:_U_E_U4 588 | Q: Do you want to continue to lesson U5 [Y/N] ? 589 | N:_U_MENU 590 | G:_U_S_U5 591 | *:_U_E_U5 592 | Q: Do you want to continue to lesson U6 [Y/N] ? 593 | N:_U_MENU 594 | G:_U_S_U6 595 | *:_U_E_U6 596 | Q: Do you want to continue to lesson U7 [Y/N] ? 597 | N:_U_MENU 598 | G:_U_S_U7 599 | *:_U_E_U7 600 | Q: Do you want to continue to lesson U8 [Y/N] ? 601 | N:_U_MENU 602 | G:_U_S_U8 603 | *:_U_E_U8 604 | Q: Do you want to continue to lesson U9 [Y/N] ? 605 | N:_U_MENU 606 | G:_U_S_U9 607 | *:_U_E_U9 608 | Q: Do you want to continue to lesson U10 [Y/N] ? 609 | N:_U_MENU 610 | G:_U_S_U10 611 | *:_U_E_U10 612 | Q: Do you want to continue to lesson U11 [Y/N] ? 613 | N:_U_MENU 614 | G:_U_S_U11 615 | *:_U_E_U11 616 | Q: Do you want to continue to lesson U12 [Y/N] ? 617 | N:_U_MENU 618 | G:_U_S_U12 619 | *:_U_E_U12 620 | Q: Do you want to continue to lesson U13 [Y/N] ? 621 | N:_U_MENU 622 | G:_U_S_U13 623 | *:_U_E_U13 624 | G:_U_MENU 625 | 626 | #------------------------------------------------------------------------------ 627 | # Lesson series U menu 628 | #------------------------------------------------------------------------------ 629 | *:_U_MENU 630 | B: QWERTY Review lessons 631 | M: UP=_EXIT "The U series contains the following 13 lessons" 632 | :_U_S_U1 "Lesson U1 Home row" 633 | :_U_S_U2 "Lesson U2 Other letters" 634 | :_U_S_U3 "Lesson U3 Shift numerals figs" 635 | :_U_S_U4 "Lesson U4 Practise" 636 | :_U_S_U5 "Lesson U5 Drill on S Combinations" 637 | :_U_S_U6 "Lesson U6 Drill on R Combinations" 638 | :_U_S_U7 "Lesson U7 Drill on L Combinations" 639 | :_U_S_U8 "Lesson U8 Drill on D-T Combinations" 640 | :_U_S_U9 "Lesson U9 Drill on M-N Combinations" 641 | :_U_S_U10 "Lesson U10 Drill on com-con Combinations" 642 | :_U_S_U11 "Lesson U11 Drill on sion-tion Combinations" 643 | :_U_S_U12 "Lesson U12 Drill on ter, ther, tor, ture, ster, der" 644 | :_U_S_U13 "Lesson U13 Drill on qu, ch, wh, dw, sw, tw, de, des, dis, ex," 645 | :_U_S_U13 "Lesson U13 self, tran, cial, cious, ology, ship, tive" 646 | *:_U_EXIT 647 | #------------------------------------------------------------------------------ 648 | -------------------------------------------------------------------------------- /public/u2.typ: -------------------------------------------------------------------------------- 1 | # GNU Typist - improved typing tutor program for UNIX systems 2 | # Copyright (C) 1998 Simon Baldwin (simonb@sco.com) 3 | # 4 | # This program is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | 18 | #------------------------------------------------------------------------------ 19 | # Series U 20 | #------------------------------------------------------------------------------ 21 | G:_U_MENU 22 | *:_U_NO_MENU 23 | 24 | #------------------------------------------------------------------------------ 25 | # Lesson U1 26 | #------------------------------------------------------------------------------ 27 | *:U1 28 | *:_U_S_U1 29 | B: Lesson U1 30 | 31 | *:_U_R_L0 32 | T: Welcome to lesson U1 33 | : 34 | :Still don't know how to touch-type? Let's start from the beginning and 35 | :drill you starting with the home row. 36 | 37 | I:(1) Try this: 38 | *:_U_R_L1 39 | D:has half hag gad gash glass sash ash slash shall flash 40 | :had hall gas gaff gall glad dash ask slag shad ah 41 | 42 | G:_U_E_U1 43 | 44 | #------------------------------------------------------------------------------ 45 | # Lesson U2 46 | #------------------------------------------------------------------------------ 47 | *:U2 48 | *:_U_S_U2 49 | B: Lesson U2 50 | 51 | I:(1) Familiarize yourself with the top row and between the index fingers: 52 | *:_U_R_L3 53 | D:juj kik lol ;p; jyj 54 | :frf ded sws aqa ftf 55 | 56 | I:(2) Some words: 57 | *:_U_R_L4 58 | D:jug part ye aqua their hearty dry great why whose youth 59 | :kit free use type last lower drug light wheat proper your 60 | :lot dear its rear were pretty grip quiet where proud yellow 61 | :hear sweep old easy writer fresh group equip who please yes 62 | 63 | I:(3) Now for the bottom row: 64 | *:_U_R_L5 65 | D:jmj k,k l.l ;/; jnj 66 | :fvf dcd sxs aza fbf 67 | 68 | I:(4) Some words: 69 | *:_U_R_L6 70 | D:man come body vacant many tax ribbon lining believing 71 | :name can beam make examine none native baby commission 72 | :vain sex not cancel even mention woman brick quicken 73 | :become zero cave lazy benzine opening very branch textile 74 | 75 | G:_U_E_U2 76 | 77 | #------------------------------------------------------------------------------ 78 | # Lesson U3 79 | #------------------------------------------------------------------------------ 80 | *:U3 81 | *:_U_S_U3 82 | B: Lesson U3 83 | 84 | I:(1) 85 | *:_U_R_L8 86 | D:Do you live in Scranton, Pennsylvania? 87 | 88 | I:(2) 89 | *:_U_R_L9 90 | D:Mary Brown and Nancy Smith are in New York City. 91 | 92 | I:(3) 93 | *:_U_R_L10 94 | D:Violet, Helen, Dora, Jennie, and Elsie are staying at the Hotel Commodore. 95 | 96 | I:(4) 97 | *:_U_R_L11 98 | D:I have lived in Los Angeles, San Francisco, Portland, Chicago, St. Louis, and 99 | :Denver; Robert has lived in Boston, Philadelphia, Jersey City, and Utica. 100 | 101 | I:(5) 102 | *:_U_R_L12 103 | D:j7j k8k l9l ;0; j6j 104 | :f4f d3d s2s a1a f4f 105 | 106 | I:(6) 107 | *:_U_R_L13 108 | D:j&j k*k l(l ;); j^j 109 | :f$f d#d s@s a!a f%f 110 | 111 | I:(7) 112 | *:_U_R_L14 113 | S:Please send me the book "Facts & Figures." 114 | :Send us the items (3 dozen coats) right away. 115 | :The amount of the bill is $17,563.49; the discount is 2% 10 days, net 30 days. 116 | :The cards should be made up in the following sizes: 4 5/16 x 8 3/16 and 117 | :3 5/8 x 6 7/8. 118 | 119 | I:(8) 120 | *:_U_R_L15 121 | D:2's 3's 4's 5's 122 | :#' #2 #3 #4 #5 123 | 124 | G:_U_E_U3 125 | 126 | #------------------------------------------------------------------------------ 127 | # Lesson U4 128 | #------------------------------------------------------------------------------ 129 | *:U4 130 | *:_U_S_U4 131 | B: Lesson U4 132 | 133 | I:(1) 134 | *:_U_R_L15A 135 | D:;'; ;"; ;/; ;?; ;[; ;{; ;-; ;_; 136 | 137 | I:(2) 138 | *:_U_R_L17 139 | D:The quick brown fox jumps over the lazy dog. 140 | 141 | I:(3) 142 | *:_U_R_L18 143 | D:This is a specimen of the work done on this machine. 144 | 145 | I:(4) 146 | *:_U_R_L19 147 | D:Now is the time for all good men to come to the aid of their party. 148 | 149 | I:(5) 150 | *:_U_R_L20 151 | D:1$ 2$ 3$ 4$ 5$ 6$ 7$ 8$ 9$ 10$ 152 | :2 coats @ $20.00 5 hats @ $4.00 153 | 154 | G:_U_E_U4 155 | 156 | #------------------------------------------------------------------------------ 157 | # Lesson U5 158 | #------------------------------------------------------------------------------ 159 | *:U5 160 | *:_U_S_U5 161 | B: Lesson U5 162 | 163 | *:_U_R_L21 164 | T: 165 | : (Drill on S Combinations) 166 | 167 | I:(1) 168 | *:_U_R_L22 169 | D:sas ses sis sos sus sc scr sh sk sl sm sn sp spl spr st str sw 170 | 171 | I:(2) 172 | *:_U_R_L23 173 | D:says sides springs slips snows shops sweets streets 174 | :sees souls spreads schools smiles shoots swings strikes 175 | :sues speaks splashes screams skates sheets stones stresses 176 | 177 | I:(3) 178 | *:_U_R_L24 179 | S:She wishes to show us some samples. 180 | :The sisters wear the same size dresses. 181 | :She says she speaks to Sally in school. 182 | :The shipment was shipped by fast express. 183 | :Simplicity and sincerity are social assets. 184 | 185 | I:(4) 186 | *:_U_R_L25 187 | S:Safety first. This slogan is well known. Yet many care- 188 | :less people disregard it and so we have accidents. It is pos- 189 | :sible to avoid many types of accidents by a little forethought. 190 | :Don't be careless. Do your share to avoid mishaps. 191 | 192 | G:_U_E_U5 193 | 194 | #------------------------------------------------------------------------------ 195 | # Lesson U6 196 | #------------------------------------------------------------------------------ 197 | *:U6 198 | *:_U_S_U6 199 | B: Lesson U6 200 | 201 | *:_U_R_L26 202 | T: 203 | : (Drill on R Combinations) 204 | 205 | I:(1) 206 | *:_U_R_L27 207 | D:rar rer rir ror rur br cr dr fr gr pr shr tr thr 208 | 209 | I:(2) 210 | *:_U_R_L28 211 | D:rare rural proper trader drier freer cracker 212 | :rear broker prefer trapper dresser fresher grammar 213 | :roar brewer prepare thrower shrewder creamer greater 214 | 215 | I:(3) 216 | *:_U_R_L29 217 | S:Every promise made should be observed. 218 | :The price of the property is really $2,500. 219 | :Try to remember to bring your grammar with you. 220 | :Proof of your brokerage experience will be required. 221 | :The orange grower must have favorable weather conditions. 222 | 223 | I:(4) 224 | *:_U_R_L30 225 | S:Some people break promises as readily as they make them. 226 | :As a result, they acquire a reputation for unreliability. It 227 | :is particularly important to be reliable in the business world. 228 | :A person or firm that comes to be regarded as unreliable has a 229 | :poor chance of success. 230 | 231 | G:_U_E_U6 232 | 233 | #------------------------------------------------------------------------------ 234 | # Lesson U7 235 | #------------------------------------------------------------------------------ 236 | *:U7 237 | *:_U_S_U7 238 | B: Lesson U7 239 | 240 | *:_U_R_L31 241 | T: 242 | : (Drill on L Combinations) 243 | 244 | 245 | I:(1) 246 | *:_U_R_L32 247 | D:lal lel lil lol lul ly bl cl fl gl pl sl 248 | 249 | I:(2) 250 | *:_U_R_L33 251 | D:loll play blow clear glass flesh slow fully 252 | :lisle plow blue class globe fleet sleep silly 253 | :label please blood claim gleam flail slight really 254 | 255 | I:(3) 256 | *:_U_R_L34 257 | S:The mill will close in April. 258 | :It is clear to all who will listen. 259 | :The clerk sells cloth of fine value. 260 | :You will rely on them to supply you. 261 | :He held the floor until a relatively late hour. 262 | 263 | I:(4) 264 | *:_U_R_L35 265 | S:Play is most important to a child. All of us must play 266 | :a little. All work and no play makes Jack a dull boy, the 267 | :old saying goes. Play affords relaxation. Some people claim 268 | :their work is so enthralling that they do not need to play. 269 | :Psychologists say that the stress of modern life demands that 270 | :all adults have some hobby away from their daily pursuit. 271 | 272 | G:_U_E_U7 273 | 274 | #------------------------------------------------------------------------------ 275 | # Lesson U8 276 | #------------------------------------------------------------------------------ 277 | *:U8 278 | *:_U_S_U8 279 | B: Lesson U8 280 | 281 | *:_U_R_L36 282 | T: 283 | : (Drill on D-T Combinations) 284 | 285 | I:(1) 286 | *:_U_R_L37 287 | D:dad ded did dod dud dr ld nd rd 288 | :tat tet tit tot tut th tr ct ft lt nt pt st 289 | 290 | I:(2) 291 | *:_U_R_L38 292 | D:did bend tot total that last rented mended 293 | :deed lend toot tutor this kept melted handed 294 | :dude bold tight taught them chest drafted founded 295 | :dodo board trait treats there first directed doubted 296 | 297 | I:(3) 298 | *:_U_R_L39 299 | S:The first shall be last. 300 | :Credit the cost to the estate. 301 | :Record your thoughts from time to time. 302 | :An effort should be made to settle the estate. 303 | :Rest assured you will succeed if you try hard. 304 | 305 | I:(4) 306 | *:_U_R_L40 307 | D:To learn to typewrite is not difficult. The keyboard 308 | :of the typewriter may be mastered in a few hours, but to 309 | :get speed in typewriting calls for a good deal of practice. 310 | :One of the best methods of getting up speed is to write a 311 | :selection over and over again until it can be written easily 312 | :and accurately. 313 | 314 | G:_U_E_U8 315 | 316 | #------------------------------------------------------------------------------ 317 | # Lesson U9 318 | #------------------------------------------------------------------------------ 319 | *:U9 320 | *:_U_S_U9 321 | B: Lesson U9 322 | 323 | *:_U_R_L41 324 | T: 325 | : (Drill on M-N Combinations) 326 | 327 | I:(1) 328 | *:_U_R_L42 329 | D:am em im om um mb mp ment 330 | :an en in on un ng nk 331 | 332 | I:(2) 333 | *:_U_R_L43 334 | D:amount damper only singing payment moment 335 | :emblem camper enter ringing enrollment judgment 336 | :immense hamper under longing engagement excitement 337 | :omnibus lumber income banking appointment settlement 338 | :umbrella bomber answer thinking entertainment employment 339 | 340 | I:(3) 341 | *:_U_R_L44 342 | S:We are informed that an increase is anticipated. 343 | :Please inform us if you are interested in an engine. 344 | :Banks will extend financial aid to the business man. 345 | :Unless your invoice is paid, no shipment can be made. 346 | :The amount of your investment in common stocks is $800. 347 | 348 | I:(8) 349 | *:_U_R_L45 350 | S:The employer must consider any increase in cost that 351 | :enters into the manufacture of his product. Unless he includes 352 | :such cost in his selling price, he is unlikely to show a profit. 353 | :The installation of a cost system that enables the employer 354 | :to break down his costs to a unit basis is a prime necessity. 355 | 356 | G:_U_E_U9 357 | 358 | #------------------------------------------------------------------------------ 359 | # Lesson U10 360 | #------------------------------------------------------------------------------ 361 | *:U10 362 | *:_U_S_U10 363 | B: Lesson U10 364 | 365 | *:_U_R_L46 366 | T: 367 | : (Drill on com-con Combinations) 368 | 369 | I:(1) 370 | *:_U_R_L47 371 | D:com recom decom discom incom uncom 372 | :con recon decon discon incon uncon 373 | 374 | I:(2) 375 | *:_U_R_L48 376 | D:common commit decompose conduct consign incomplete 377 | :comply comment discomfort connect confuse unconvinced 378 | :combine compose disconnect consist contrast uncontrolled 379 | :commerce compare discontinue control contrary incomparable 380 | :commence complete inconvenient contract convince uncomfortable 381 | 382 | I:(3) 383 | *:_U_R_L49 384 | S:The lawyer consulted the complainant. 385 | :Please continue to comply with all recommendations. 386 | :Their income is derived from common stock commitments. 387 | :The concern communicated its conclusions convincingly. 388 | :Under the circumstances, the company will command control. 389 | 390 | I:(4) 391 | *:_U_R_L50 392 | S:Character shows itself in a man's conduct. Deeds speak 393 | :louder than words. Words sometimes confuse as issue where 394 | :deeds clarify it. The test of a man's sincerity is not what 395 | :he says but what he does. Consider this well and you will 396 | :never be confused in estimating a man's worth. 397 | 398 | G:_U_E_U10 399 | 400 | #------------------------------------------------------------------------------ 401 | # Lesson U11 402 | #------------------------------------------------------------------------------ 403 | *:U11 404 | *:_U_S_U11 405 | B: Lesson U11 406 | 407 | *:_U_R_L51 408 | T: 409 | : (Drill on sion-tion Combinations) 410 | 411 | I:(1) 412 | *:_U_R_L52 413 | D:asion esion ision osion usion 414 | :ation etion ition otion ution 415 | 416 | I:(2) 417 | *:_U_R_L53 418 | D:action motion quotation session caution ambition 419 | :nation ration invention division exhibition attention 420 | :portion station intention possession connection situation 421 | :location creation condition impression completion commission 422 | 423 | I:(3) 424 | *:_U_R_L54 425 | S:Information on the invention has been sent you. 426 | :The cancellation of the exhibition was announced. 427 | :Your communication of February 16 has been received. 428 | :Students are taught addition, subtraction, and division. 429 | :Your attention is called to the action of the Commission. 430 | 431 | I:(4) 432 | *:_U_R_L55 433 | S:Concentration is a valuable faculty. The ability to direct 434 | :one's attention exclusively along certain lines accounts for 435 | :the success of some people. Diffusion of effort is considered 436 | :an enemy of success. We are told that this is an age of 437 | :specialization, and specialization demands concentration. 438 | 439 | G:_U_E_U11 440 | 441 | #------------------------------------------------------------------------------ 442 | # Lesson U12 443 | #------------------------------------------------------------------------------ 444 | *:U12 445 | *:_U_S_U12 446 | B: Lesson U12 447 | 448 | *:_U_R_L56 449 | T: 450 | : (Drill on ter, ther, tor, ture, ster, der Combinations) 451 | 452 | I:(1) 453 | *:_U_R_L57 454 | D:ater oter etor utor ider ather other eture uture ister 455 | :eter uter itor ader oder ether uther iture aster oster 456 | :iter ator otor eder uder ither ature oture ester uster 457 | 458 | I:(2) 459 | *:_U_R_L58 460 | D:water later actor order father future faster 461 | :alter matter motor wider mother nature poster 462 | :voter better factor reader rather feature master 463 | :writer letter doctor modern either fixture register 464 | 465 | I:(3) 466 | *:_U_R_L59 467 | S:The voter was required to register. 468 | :The reader made a study of the literature. 469 | :The actor was better in the theatre than in pictures. 470 | :The writer wrote a letter to his future sister-in-law. 471 | :The minister received a letter from his father and mother. 472 | 473 | I:(4) 474 | *:_U_R_L60 475 | S:The best letter writers express themselves simply. They 476 | :avoid long words where shorter words will do. They have some- 477 | :thing to say and they say it interestingly and to the point. 478 | :A business letter should not be a literary masterpiece, but 479 | :that is not to say that it should not have style. 480 | 481 | G:_U_E_U12 482 | 483 | #------------------------------------------------------------------------------ 484 | # Lesson U13 485 | #------------------------------------------------------------------------------ 486 | *:U13 487 | *:_U_S_U13 488 | B: Lesson U13 489 | 490 | *:_U_R_L61 491 | T: 492 | : (Drill on qu, ch, wh, dw, sw, tw Combinations) 493 | : (Drill on de, des, dis, ex, self, tran) 494 | : (Drill on cial, cious, ology, ship, tive) 495 | 496 | I:(1) 497 | *:_U_R_L62 498 | D:quick each white sweet dwell exist desire transfer 499 | :quest touch where swell dwarf expose desert transact 500 | :quiet cheap whole twist expect degree dislike transmit 501 | :queen child wheat twenty express deprive dismiss translate 502 | 503 | I:(2) 504 | *:_U_R_L63 505 | D:special gracious active biology worship self-regard 506 | :official conscious native geology hardship self-respect 507 | :financial delicious positive pathology steamship self-defense 508 | 509 | I:(3) 510 | *:_U_R_L64 511 | S:The squadron marched quickly and quietly. 512 | :When will the twenty cars of wheat go forward? 513 | :The study of psychology is a "must" in college. 514 | :We desire to dispose of our financial interests. 515 | :A selfish person has his own self-interest at heart. 516 | 517 | I:(4) 518 | *:_U_R_L65 519 | S:Raymond Investment Co. 520 | :120 Wall Street 521 | :New York, NY 10005 522 | : 523 | :Gentlemen: 524 | : 525 | :For many years our medium has been the leading adver- 526 | :tising paper used by responsible investment firms who desire 527 | :to obtain new accounts. 528 | : 529 | :Our records show that you are not now making use of the 530 | :Adviser, and we ask that you consider its use in connection 531 | :with your new promotion effort. 532 | : 533 | :Yours truly, 534 | 535 | I:(5) 536 | *:_U_R_L66 537 | S:Mr. Z. Dexter 538 | :250 Madison Avenue 539 | :New York, NY 10016 540 | : 541 | :Dear Mr. Dexter: 542 | : 543 | :I am enclosing herewith the annual report of our corporation 544 | :for the year just ended; also table showing Profit and Loss 545 | :Account for the past ten years. 546 | : 547 | :I am placing your name on our mailing list for all future 548 | :reports sent out by the company, and if at any time you have 549 | :any questions regarding the report or the company, if you 550 | :will advise me, I shall be happy to give you any additional 551 | :information that I may have. 552 | : 553 | :Very truly yours, 554 | 555 | I:(6) 556 | *:_U_R_L67 557 | S:Strive for typing accuracy. Speed without accuracy is of little value. 558 | :Rhythm is the secret of typing skill. Don't write one part of a word 559 | :faster than another. Slow down so that you can maintain a regular rhythm. 560 | : 561 | :Think of the letters before you strike them. Strike the keys evenly, so 562 | :that the printing impression does not vary. At the same time, try to 563 | :develop your stroking speed and make it a habit to release the keys quickly. 564 | :To get up speed, type each exercise three or four times. 565 | : 566 | :To do your best, it is necessary that you be relaxed. You may be trying so 567 | :hard that you are all tied up in knots. Relax consciously. If you have a 568 | :feeling of tenseness and hurry, you are not properly relaxed. 569 | 570 | G:_U_E_U13 571 | 572 | #------------------------------------------------------------------------------ 573 | # Lesson series U jump tables 574 | #------------------------------------------------------------------------------ 575 | *:_U_E_U1 576 | Q: Do you want to continue to lesson U2 [Y/N] ? 577 | N:_U_MENU 578 | G:_U_S_U2 579 | *:_U_E_U2 580 | Q: Do you want to continue to lesson U3 [Y/N] ? 581 | N:_U_MENU 582 | G:_U_S_U3 583 | *:_U_E_U3 584 | Q: Do you want to continue to lesson U4 [Y/N] ? 585 | N:_U_MENU 586 | G:_U_S_U4 587 | *:_U_E_U4 588 | Q: Do you want to continue to lesson U5 [Y/N] ? 589 | N:_U_MENU 590 | G:_U_S_U5 591 | *:_U_E_U5 592 | Q: Do you want to continue to lesson U6 [Y/N] ? 593 | N:_U_MENU 594 | G:_U_S_U6 595 | *:_U_E_U6 596 | Q: Do you want to continue to lesson U7 [Y/N] ? 597 | N:_U_MENU 598 | G:_U_S_U7 599 | *:_U_E_U7 600 | Q: Do you want to continue to lesson U8 [Y/N] ? 601 | N:_U_MENU 602 | G:_U_S_U8 603 | *:_U_E_U8 604 | Q: Do you want to continue to lesson U9 [Y/N] ? 605 | N:_U_MENU 606 | G:_U_S_U9 607 | *:_U_E_U9 608 | Q: Do you want to continue to lesson U10 [Y/N] ? 609 | N:_U_MENU 610 | G:_U_S_U10 611 | *:_U_E_U10 612 | Q: Do you want to continue to lesson U11 [Y/N] ? 613 | N:_U_MENU 614 | G:_U_S_U11 615 | *:_U_E_U11 616 | Q: Do you want to continue to lesson U12 [Y/N] ? 617 | N:_U_MENU 618 | G:_U_S_U12 619 | *:_U_E_U12 620 | Q: Do you want to continue to lesson U13 [Y/N] ? 621 | N:_U_MENU 622 | G:_U_S_U13 623 | *:_U_E_U13 624 | G:_U_MENU 625 | 626 | #------------------------------------------------------------------------------ 627 | # Lesson series U menu 628 | #------------------------------------------------------------------------------ 629 | *:_U_MENU 630 | B: QWERTY Review lessons 631 | M: UP=_EXIT "The U series contains the following 13 lessons" 632 | :_U_S_U1 "Lesson U1 Home row" 633 | :_U_S_U2 "Lesson U2 Other letters" 634 | :_U_S_U3 "Lesson U3 Shift numerals figs" 635 | :_U_S_U4 "Lesson U4 Practise" 636 | :_U_S_U5 "Lesson U5 Drill on S Combinations" 637 | :_U_S_U6 "Lesson U6 Drill on R Combinations" 638 | :_U_S_U7 "Lesson U7 Drill on L Combinations" 639 | :_U_S_U8 "Lesson U8 Drill on D-T Combinations" 640 | :_U_S_U9 "Lesson U9 Drill on M-N Combinations" 641 | :_U_S_U10 "Lesson U10 Drill on com-con Combinations" 642 | :_U_S_U11 "Lesson U11 Drill on sion-tion Combinations" 643 | :_U_S_U12 "Lesson U12 Drill on ter, ther, tor, ture, ster, der" 644 | :_U_S_U13 "Lesson U13 Drill on qu, ch, wh, dw, sw, tw, de, des, dis, ex," 645 | :_U_S_U13 "Lesson U13 self, tran, cial, cious, ology, ship, tive" 646 | *:_U_EXIT 647 | #------------------------------------------------------------------------------ 648 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /src/app.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | font-weight: 400; 5 | 6 | color-scheme: only dark; 7 | color: rgba(255, 255, 255, 0.87); 8 | background-color: #242424; 9 | font-synthesis: none; 10 | text-rendering: optimizeLegibility; 11 | /* -webkit-font-smoothing: antialiased; */ 12 | /* -moz-osx-font-smoothing: grayscale; */ 13 | } 14 | 15 | a { 16 | font-weight: 500; 17 | color: #646cff; 18 | text-decoration: inherit; 19 | font-size: 1.2rem; 20 | } 21 | a:hover { 22 | color: #b0b4ff; 23 | } 24 | 25 | body { 26 | margin: 0; 27 | display: flex; 28 | place-items: center; 29 | /* justify-content: center; 30 | align-items: center; */ 31 | color: white; 32 | min-width: 320px; 33 | min-height: 100vh; 34 | } 35 | 36 | /* .card { 37 | padding: 2em; 38 | } */ 39 | 40 | #app { 41 | max-width: 1280px; 42 | margin: 0 auto; 43 | padding: 2rem; 44 | text-align: left; 45 | } 46 | 47 | button { 48 | border-radius: 8px; 49 | border: 1px solid transparent; 50 | padding: 0.6rem 1.2rem; 51 | font-size: 1rem; 52 | font-weight: 500; 53 | font-family: inherit; 54 | background-color: #1a1a1a; 55 | cursor: pointer; 56 | transition: border-color 0.25s; 57 | } 58 | button:hover { 59 | border-color: #646cff; 60 | } 61 | button:focus, 62 | button:focus-visible { 63 | outline: 4px auto -webkit-focus-ring-color; 64 | } 65 | 66 | .inlineBtn { 67 | background-color: transparent; 68 | color: #646cff; 69 | padding: 0; 70 | line-height: 1.5rem; 71 | border: none; 72 | font-size: 1.2rem; 73 | font-weight: 500; 74 | } -------------------------------------------------------------------------------- /src/assets/svelte.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/BTIDisplay.svelte: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 19 |
20 |

{$title}

21 | {#if $instruction} 22 |
23 | {$instruction.trim()} 24 |
25 | {/if} 26 |
27 | {#if action && action.type !== DRILL} 28 | 31 | {/if} 32 | 33 | 47 | -------------------------------------------------------------------------------- /src/components/LoadType.svelte: -------------------------------------------------------------------------------- 1 | 2 | 163 | 164 | 165 | {#if showWarning} 166 | Mobile devices aren't supported yet. 167 | A screen bigger than 800x600 is recommended 168 | {/if} 169 | {#if showMainMenu} 170 |

Welcome to webtypist!

171 |

Select a series to continue (go with the first one if you're a beginner)

172 |
173 | {#each qwertyTyps as typ} 174 | 180 | {/each} 181 |
182 |

Special keyboards' series

183 |
184 | {#each specialKbTyps as typ} 185 | 191 | {/each} 192 |
193 |

More...

194 |
195 | 206 | 217 | 218 | 223 | 224 |
225 | {/if} 226 | {#if action} 227 | {#if showBti} 228 | 229 | {/if} 230 | {#if action.type === MENU} 231 | 232 | {:else if action.type === DRILL} 233 | 234 | {/if} 235 | {#if action.type === QUERY} 236 | 239 | {/if} 240 | {/if} 241 | 242 | 243 | 282 | -------------------------------------------------------------------------------- /src/components/Menu.svelte: -------------------------------------------------------------------------------- 1 | 55 | {#if showBack} 56 | 57 | {/if} 58 | 76 | 77 | 90 | -------------------------------------------------------------------------------- /src/components/Progressbox.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 | {#if $started} 7 |
8 | {#each $text as letter, i} 9 | {letter} 10 | {/each} 11 |
12 |
13 | {#if $typeFocus} 14 |

Current letter: {currChar === "\n" ? "↵" : currChar}

15 | {:else} 16 | 23 | {/if} 24 |
25 | {/if} 26 | 27 | 28 | 29 | {#if $ended && !$started} 30 |
31 | {#each $prevTest.text as letter, i} 32 | {letter} 33 | {/each} 34 |
35 |
36 |
Speed: {$speed} wpm
37 |
Accuracy: {(100 * $accuracy).toFixed(1)}%
38 |
39 | {/if} 40 | 41 | 73 | -------------------------------------------------------------------------------- /src/components/Query.svelte: -------------------------------------------------------------------------------- 1 | 35 | 36 |
37 | {#if query} 38 |
39 | {query.queryText} 40 |
41 |
42 | 43 | 44 |
45 | {/if} 46 | 47 |
48 | 49 | 74 | -------------------------------------------------------------------------------- /src/components/Writebox.svelte: -------------------------------------------------------------------------------- 1 | 156 | 157 |
158 | { 164 | typeFocus.set(false); 165 | }} 166 | class="wordInput" 167 | style="opacity: 0s; height:0; width: 0; outline: none; border: none" 168 | /> 169 | 170 | {#if $started} 171 |
172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 |
180 | {/if} 181 | {#if $ended && !$started} 182 |
183 | 184 | {#if !failed} 185 | 186 | {:else} 187 |
Error rate > {($maxError * 100).toFixed(1)}%, restart
188 | {/if} 189 |
190 | {/if} 191 |
192 | 193 | 212 | -------------------------------------------------------------------------------- /src/constants/constants.js: -------------------------------------------------------------------------------- 1 | export const COMMENT = "#"; 2 | export const ALT_COMMENT = "!"; 3 | export const SEP = ":"; 4 | export const CONT = " "; 5 | export const LABEL = "*"; 6 | export const TUTORIAL = "T"; 7 | export const INSTRUCTION = "I"; 8 | export const CLEAR = "B"; 9 | export const GOTO = "G"; 10 | // 11 | export const EXIT = "X"; 12 | export const QUERY = "Q"; 13 | export const YGOTO = "Y"; 14 | export const NGOTO = "N"; 15 | 16 | export const DRILL = "D"; 17 | export const DRILL_PRACTICE_ONLY = "d"; 18 | export const SPEEDTEST = "S"; 19 | export const SPEEDTEST_PRACTICE_ONLY = "s"; 20 | // 21 | export const KEYBIND = "K"; 22 | export const ERROR_MAX_SET = "E"; 23 | // 24 | export const ON_FAILURE_SET = "F"; 25 | export const MENU = "M"; 26 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import './app.css' 2 | import App from './App.svelte' 3 | 4 | const app = new App({ 5 | target: document.getElementById('app'), 6 | }) 7 | 8 | export default app 9 | -------------------------------------------------------------------------------- /src/parser/script.js: -------------------------------------------------------------------------------- 1 | // TODO: Rewrite this file using Douglas Crockford's classless architecture 2 | 3 | import { ALT_COMMENT, CLEAR, COMMENT, CONT, DRILL, DRILL_PRACTICE_ONLY, EXIT, INSTRUCTION, LABEL, MENU, SPEEDTEST, SPEEDTEST_PRACTICE_ONLY, TUTORIAL, GOTO, QUERY, YGOTO, NGOTO, ERROR_MAX_SET } from "../constants/constants"; 4 | 5 | let global_index = 0; 6 | let global_label_index = new Map(); 7 | let global_typeArr = []; 8 | let global_line = ""; 9 | let prevLabel = "" 10 | let global_menu_history = [] 11 | 12 | function scrCommand(line) { 13 | if (line.length === 0) return ""; 14 | return line[0]; 15 | } 16 | 17 | function scrData(line) { 18 | if (line.length < 2) { 19 | throw Error("Line doesn't contain data"); 20 | } 21 | return line.slice(2); 22 | } 23 | 24 | function eof() { 25 | return !(global_index < global_typeArr.length); 26 | } 27 | 28 | function isSkipped(command) { 29 | return command === "" || command === COMMENT || command === ALT_COMMENT; 30 | } 31 | 32 | // buffer up the complete data from a command 33 | function bufferCommand() { 34 | let buffer = ""; 35 | do { 36 | buffer += scrData(global_line); 37 | buffer += "\n"; 38 | getNextLine(); 39 | } while (scrCommand(global_line) === CONT && !eof()); 40 | return buffer; 41 | } 42 | 43 | function logLabelIndex() { 44 | global_label_index.forEach((v, key) => { 45 | console.log(key, v); 46 | }); 47 | } 48 | 49 | export function buildLabelIndex() { 50 | global_index = 0; 51 | while (!eof()) { 52 | getNextLine(); 53 | if (scrCommand(global_line) === LABEL) { 54 | // if global_label_index.has(scrData(global_line)) throw Error("repeated label!") 55 | global_label_index.set(scrData(global_line).trim(), global_index); 56 | } 57 | } 58 | global_index = 0; 59 | } 60 | 61 | export function parse() { 62 | buildLabelIndex(); 63 | // logLabelIndex(); 64 | } 65 | 66 | function getLabelIndex(label) { 67 | if (global_label_index.has(label)) { 68 | return global_label_index.get(label); 69 | } else throw Error("label not found: " + label); 70 | } 71 | 72 | // gets next non-empty noncomment line 73 | function getNextLine() { 74 | if (eof()) { 75 | // console.log("Reached EOF, exiting"); 76 | return global_index; 77 | } 78 | let command; 79 | do { 80 | global_line = global_typeArr[global_index].trimEnd(); 81 | command = scrCommand(global_line); 82 | // global_prev_index = global_index; 83 | global_index++; 84 | } while (isSkipped(command) && !eof()); 85 | 86 | if (global_index === global_typeArr.length && isSkipped(command)) { 87 | return ""; 88 | } 89 | return global_line; 90 | } 91 | 92 | 93 | // if G: command then called without argument (with script action loop) 94 | // then the label is read from the current line 95 | // if called by user navigation, label argument 96 | // is supplied 97 | export function goto(label = undefined) { 98 | if (!label) label = scrData(global_line); 99 | let index = getLabelIndex(label); 100 | prevLabel = label; 101 | global_index = index; 102 | 103 | getNextLine(); 104 | } 105 | 106 | 107 | export function backToMenu() { 108 | let label = global_menu_history.pop(); 109 | goto(label) 110 | } 111 | 112 | export function hasPrevMenu() { 113 | return global_menu_history.length > 1 114 | } 115 | 116 | export function prevMenu() { 117 | if (!hasPrevMenu()) return; 118 | global_menu_history.pop(); 119 | let label = global_menu_history.pop(); 120 | goto(label) 121 | } 122 | 123 | // gets and returns the next action to take 124 | // only called externally 125 | export function nextScriptAction() { 126 | while (!eof()) { 127 | let command = scrCommand(global_line); 128 | let buf; 129 | 130 | switch (command) { 131 | case MENU: 132 | buf = bufferCommand(); 133 | global_menu_history.push(prevLabel) 134 | return { type: MENU, payload: { menuStr: buf } }; 135 | 136 | case CLEAR: 137 | buf = bufferCommand(); 138 | return { type: CLEAR, payload: { title: buf.trim() } }; 139 | 140 | case INSTRUCTION: 141 | buf = bufferCommand(); 142 | return { type: INSTRUCTION, payload: { instruction: buf } }; 143 | 144 | case DRILL: 145 | case SPEEDTEST: 146 | buf = bufferCommand(); 147 | return { type: DRILL, payload: { drillScript: buf, practice: false } }; 148 | 149 | case SPEEDTEST_PRACTICE_ONLY: 150 | case DRILL_PRACTICE_ONLY: 151 | buf = bufferCommand(); 152 | return { type: DRILL, payload: { drillScript: buf, practice: true } }; 153 | 154 | case TUTORIAL: 155 | buf = bufferCommand(); 156 | return { type: TUTORIAL, payload: { instruction: buf } }; 157 | 158 | case GOTO: 159 | goto(); 160 | break; 161 | 162 | case QUERY: 163 | buf = bufferCommand(); 164 | return { type: QUERY, payload: { queryText: buf } }; 165 | 166 | case YGOTO: 167 | return { type: YGOTO, payload: { goto_label: scrData(global_line) } }; 168 | 169 | case NGOTO: 170 | return { type: NGOTO, payload: { goto_label: scrData(global_line) } }; 171 | 172 | case ERROR_MAX_SET: 173 | buf = bufferCommand(); 174 | return { type: ERROR_MAX_SET, payload: { errorStr: buf } }; 175 | case LABEL: 176 | prevLabel = scrData(global_line).trim() 177 | getNextLine(); 178 | break; 179 | default: 180 | getNextLine(); 181 | break; 182 | } 183 | } 184 | return { type: EXIT }; 185 | } 186 | 187 | export function setInputScript(script) { 188 | global_index = 0; 189 | global_label_index = new Map(); 190 | global_typeArr = []; 191 | global_line = ""; 192 | global_typeArr = script.split("\n"); 193 | } 194 | 195 | export function skipLine() { 196 | getNextLine(); 197 | } 198 | -------------------------------------------------------------------------------- /src/stores/textstore.js: -------------------------------------------------------------------------------- 1 | import { derived, writable } from 'svelte/store'; 2 | 3 | export const text = writable(""); 4 | export const size = derived(text, ($text) => $text.length) 5 | export const started = writable(false) 6 | export const startTimestamp = writable(new Date()) 7 | export const ended = writable(false) 8 | export const endTimestamp = writable(new Date()) 9 | export const speed = writable(0) 10 | export const accuracy = writable(0) 11 | export const typeFocus = writable(false) 12 | export const prevTest = writable({ 13 | text: "", 14 | startTimestamp: new Date(), 15 | endTimestamp: new Date(), 16 | wrongChars: new Set([]), 17 | speed: 0, 18 | accuracy: 0, 19 | }) 20 | export const wrongCount = writable(0) 21 | 22 | export const charcounter = writable(0) 23 | export const increment = () => charcounter.update((v) => v+1) 24 | export const decrement = () => charcounter.update((v) => v-1) 25 | 26 | export const wrongChars = writable(new Set([])) 27 | 28 | 29 | export const title = writable("") 30 | export const instruction = writable("") 31 | export const responseFlag = writable(false) 32 | 33 | export const practice = writable(true) 34 | 35 | export const defaultMaxError = 0.03 36 | export const maxError = writable(defaultMaxError) 37 | export const persistError = writable(false) -------------------------------------------------------------------------------- /src/util/Typeutils.js: -------------------------------------------------------------------------------- 1 | import { get } from "svelte/store"; 2 | import { maxError, persistError, wrongChars, wrongCount } from "../stores/textstore"; 3 | 4 | export const wrongCharUtils = () => { 5 | function add(charIndex) { 6 | wrongChars.update((w) => w.add(charIndex)); 7 | } 8 | function remove(charIndex) { 9 | wrongChars.update((w) => { 10 | w.delete(charIndex); 11 | return w; 12 | }); 13 | } 14 | function clear() { 15 | wrongCount.set(0) 16 | wrongChars.set(new Set([])); 17 | } 18 | function count() { 19 | return get(wrongCount); 20 | } 21 | function has(i) { 22 | return get(wrongChars).has(i); 23 | } 24 | function inc() { 25 | wrongCount.update((v) => v + 1); 26 | } 27 | return { add, clear, count, has, inc, remove }; 28 | }; 29 | 30 | export function setMaxError(errorStr) { 31 | errorStr = errorStr.trim(); 32 | if (errorStr.toLowerCase() === "default") { 33 | maxError.set(defaultMaxError); 34 | persistError.set(false); 35 | return; 36 | } 37 | let arr = errorStr.split("%"); 38 | let errorPct = parseFloat(arr[0]) / 100; 39 | let persistent = arr.length > 1 && arr[1] === "*"; 40 | maxError.set(errorPct); 41 | persistError.set(persistent); 42 | } -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | // Consult https://svelte.dev/docs#compile-time-svelte-preprocess 5 | // for more information about preprocessors 6 | preprocess: vitePreprocess(), 7 | } 8 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import { svelte } from '@sveltejs/vite-plugin-svelte' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [svelte()], 7 | }) 8 | --------------------------------------------------------------------------------