Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Escape Velocity

How far is the job from optional?

Your financial independence ladder in the Omarchy bar — walk-away money, Coast FI, and the date the job stops being compulsory. Everything is priced in days of living, not currency: at €30,000 a year one day costs about €82, so a month's saving buys you a number of future days, and your pot earns a number of its own.

NEXT · COAST FI
52.8% of the time         €121k to go · age 41
████████████░░░░░░░░░░░░░░░░
€100k of €221k · 45% of the money

├────┼──────┼───█──────┼──────────────┤
✓ runway · ✓ walk-away · ▸ coast · lean @51 · full @57

days of freedom per month
you buy         12.2
the pot earns    5.1

Most people find the gap between Coast FI and Full FI is the number that changes how they think. Coast FI is the pot that grows to your FI number by your target age with no further contributions — it usually arrives fifteen years before the finish line, and it's the point the pressure comes off.

Screenshots

The panel mid-journey, and the settings page. Both render in whatever theme Omarchy is running — every colour is a theme token, nothing is hardcoded.

The Escape Velocity panel showing progress toward Lean FI, the milestone track, and the days-of-freedom race

The settings page: money, assumptions, milestones, display options, and a glossary built from your own numbers

Requirements

Omarchy 4 (quattro) or later. This is a Quickshell bar widget built against Omarchy's plugin API and its qs.Ui component kit — it will not run on Omarchy 3, on plain Hyprland, or on any other desktop. There is no standalone mode.

It also needs python3, which Omarchy already ships. Nothing else: no network access, no accounts, no other dependencies.

Install

omarchy plugin add https://github.com/KevHQ/escape-velocity.git --enable

That stages the repository, validates it, installs it under its manifest id, puts it on the right of your bar, and shows you Omarchy's warning that plugin code runs unsandboxed — which you should read before enabling anything, including this.

Use

Left click open the ladder
Middle click recompute now
enter save the balance you typed
r refresh
esc close

Bind it if you like:

o.bind("SUPER + SHIFT + F", "Escape Velocity", "omarchy-shell escape-velocity toggle")

Settings

Open the panel and hit Edit. Everything is there — expenses, contribution, real return, withdrawal rate, ages, and the display options — and each change is written straight to shell.json, which hot-reloads, so the ladder recomputes as you type.

Bar shows switches the pill between icon (the glyph alone — the default, matching Omarchy's other bar widgets), percent, years (to full FI), and next (progress toward the next unreached rung). Hide amounts blanks every figure for screen sharing, leaving the progress bars.

Same settings from a script, if you prefer:

omarchy bar set io.github.kevhq.escape-velocity annualExpenses 42000 --json
omarchy bar set io.github.kevhq.escape-velocity barMode "years"

Pass --json for anything numeric or boolean, or it lands in shell.json as a string.

Nothing leaves your machine

No accounts, no API keys, no network calls, no telemetry. The only state is one JSON file:

~/.local/share/escape-velocity/snapshots.json

Plain, sorted, and yours — back it up or edit it by hand. Privacy mode hides every amount and shows progress only, for screen shares.

Limits

The state file is user-writable and the shell that reads this plugin's output is long-lived, so both boundaries are bounded rather than trusted:

snapshots.json read cap 1 MiB, rejected unparsed above that
retained snapshots 2,000 (one per day, so about five and a half years)
emitted payload 256 KiB, refused above that
diagnostics truncated before they reach the panel

Oldest snapshots are pruned on write. Nothing here should ever be reached in normal use — a decade of daily entries is under 200 KB.

Removing

omarchy plugin disable io.github.kevhq.escape-velocity
omarchy plugin remove io.github.kevhq.escape-velocity
rm -rf ~/.local/share/escape-velocity        # your recorded balances

Settings live on the widget's entry in ~/.config/omarchy/shell.json and go with the widget. Nothing else is written anywhere: no system files, no services, no autostart entries.

bin/ev-reset returns the plugin to a fresh install without uninstalling it.

Check the maths yourself

Every figure is computed in bin/ev.py, not in QML, so you can audit it without a compositor:

python3 bin/ev.py selftest    # verifies the projection against hand-checked values
python3 bin/ev.py status      # the exact JSON the widget renders
python3 bin/ev.py snapshot 125000

The self-test checks that 4% gives 25x, that the monthly rate compounds to the annual one rather than being a twelfth of it, that unreachable targets return "never" instead of a wrong date, and that Coast FI matches the closed-form discount. It found a bad constant while this was being written, which is rather the point.

Licence

MIT.

This is a calculator, not financial advice. It does not know about tax, pensions, property, debt, or your actual life.

Design notes

Why it's built this way — what it deliberately doesn't model, money versus time, and the limits worth knowing: docs/DESIGN.md.

About

Financial independence ladder for the Omarchy bar — walk-away money, Coast FI, and the date the job becomes optional

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages