Skip to content

ArikRahman/enthalpy

 
 

Repository files navigation

Enthalpy

A ClojureScript rewrite of the ColemakCamp typing trainer, re‑focused around the Enthium v14 keyboard layout. The site is a static single‑page application compiled with shadow‑cljs and served from the docs/ directory (GitHub Pages).

The primary feature is an interactive typing trainer with progressive levels, a live cheatsheet keyboard and real‑time WPM/accuracy scoring. Secondary pages provide layout rationale, performance statistics, a comparison table, and learning documentation, all reachable via hash routes.

The original ColemakCamp JavaScript source is kept in the repository root for reference only; the active ClojureScript code lives under src/enthalpy.

Key Features

  • Typing trainer powered by Reagent and re-frame; global application state lives in a single app-db.
  • Progressive level system (1‑8) with letter sets tuned to Enthium v14 home‑row frequency.
  • QWERTY‑emulation mode (“US KB”) for users typing on a physical US QWERTY layout.
  • Live cheatsheet keyboard and finger‑colour legend.
  • Time/word modes, adjustable limits, and optional caps/punctuation/backspace requirements.
  • Supplementary documentation pages (rationale, layout, comparison, FAQ) with hash‑based routing.
  • Build & dev workflow driven by just / Shadow‑CLJS, using Bun as the JS runtime.

Development

  1. just install – install Bun dependencies.
  2. just dev – start Shadow‑CLJS with hot‑reload at http://localhost:3000.
  3. just build – produce a production bundle in docs/js.
  4. just check / just test – perform syntax checks and run the integrity test suite (clj -M scripts/test.clj).

License

The ClojureScript code in this repository is licensed under the GNU Affero General Public License v3.0 (AGPL‑3.0), matching the original ColemakCamp project; see LICENSE for full text.

Parts of the project that are not a part of this license are mentioned in this table:

Project Name Project License
Popper MIT
Tippy.js MIT
Fork Awesome CSS MIT
Cuprum (Google Fonts) Open Font License
Radio Canada (Google Fonts) Open Font License
Cascadia Code (Microsoft) Open Font License
Material Icons (Google Fonts) Apache-2.0

Icon Attributions

Some of the icons have been taken from Flaticon, which requires attribution. Below is a list of all the icons in the fontasm font file that are directly taken from Flaticon or modified based on something from Flaticon.

Icon Class Attribution
fa-arrow-top Flaticon
fa-arrow-right Flaticon
fa-arrow-bottom Flaticon
fa-arrow-left Flaticon
fa-editor Flaticon
fa-settings Flaticon
fa-theme Flaticon
fa-preferences Flaticon
fa-send Flaticon
fa-edit Flaticon
fa-keyboard Flaticon

Icons not listed here are either from Material Icons, or created from scratch.

Gemini_Generated_Image_h7oi8vh7oi8vh7oi(1)

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Clojure 35.3%
  • JavaScript 31.7%
  • CSS 15.6%
  • SCSS 15.4%
  • Just 1.7%
  • Shell 0.3%