Omacus docs

Omacus is a notepad calculator. You type on the left, in words and numbers; the answer to each line appears on the right as you type. This page covers everything it understands and every way to use it.

Install

Omacus runs on Omarchy and any Linux, macOS (Apple Silicon and Intel) and Windows. Every release has notes and downloads for each.

Omarchy, Arch and any Linux

curl -fsSL omacus.com/install | bash

This installs Omacus for your user (no root) into ~/.local/bin, with a launcher entry and icon. On Omarchy it then asks whether to add a keybind and a floating-window rule; see Omarchy & Hyprland.

Prefer a package? .deb for Ubuntu and Debian (sudo apt install ./omacus-linux-x86_64.deb), .rpm for Fedora and openSUSE (sudo dnf install ./omacus-linux-x86_64.rpm), or the .tar.gz with an install.sh inside. Prebuilt Linux binaries are x86_64; on ARM, build from source.

macOS

curl -fsSL omacus.com/install | bash

Installs Omacus.app into /Applications (or ~/Applications) and links the command-line tool at ~/.local/bin/omacus. Apps installed this way open without a security prompt.

You can also download the .dmg and drag Omacus to Applications. Omacus isn't notarized by Apple yet, so the first time macOS blocks it:

  1. Open Omacus once. macOS says it can't verify it; click Done.
  2. Open System Settings → Privacy & Security, scroll down, and click Open Anyway next to Omacus.

Or in Terminal: xattr -dr com.apple.quarantine /Applications/Omacus.app. You only do this once.

Windows

Download the .zip, unzip it anywhere (for example %LOCALAPPDATA%\Programs\Omacus) and run omacus.exe. It's a single portable file. If SmartScreen warns about an unknown publisher, choose More info → Run anyway. Right-click it to Pin to Start; a shortcut's Properties let you set a global shortcut key.

Your first sheet

Open Omacus and start typing. Each line is calculated on its own, and the result appears at the right edge of that line. Lines that aren't math (headers, comments, prose) simply have no result.

# Weekend
Pizza $24 + $6 tip
Movie tickets 2 * $14
total

Click any result to copy it. Everything is saved as you type, so just close the window when you're done; your sheet is there next time, with the cursor where you left it. Press F1 any time for the built-in guide.

Arithmetic

The usual operators, plus words for them. x between numbers multiplies, k and M are thousands and millions, ^ is a power.

You typeOmacus shows
2 + 2 * 38
(1 + 2) ^ 327
sqrt(144) + 10 mod 313
5 x 315
10 times 3 plus 232
1.5k * 46,000
1e6 / 3333,333.33

Functions include sqrt, abs, round, floor, ceil, sin, cos, tan, log, ln and exp; constants pi and e.

Percentages

You typeOmacus shows
20% of 34068
5% on $200$210
15% off $1,299$1,104.15
$120 as % of $48025%
5% of what is 6120

Units

Hundreds of units for length, area, volume, mass, time, speed, temperature, data, energy and more. Convert with in, to or as; mixing compatible units just works.

You typeOmacus shows
3.5 km in miles2.17 miles
2 hours + 45 min in minutes165 minutes
72 fahrenheit in celsius22.22 °C
60 mph in km/h96.56 km / h
2 cups in ml473.18 ml
10 GB / 42.5 GB
1 acre in m^24,046.86 m^2

Currencies

160+ currencies by code (USD, EUR, INR…) or symbol ($ € £ ¥ ₹ ₩ ₽ ₺). Rates are fetched from a free public source and cached, so currency math keeps working offline; they refresh every 12 hours while there's a connection.

You typeOmacus shows
$30 in EUR26.75 EUR
€50 + £20 in USD$82.60
₹5,000 in USD$52.58
¥10,000 in USD$63.26
$100 in INR9,510.01 INR

Rates above are from when this page was built.

Variables

Write name = value to remember something for the rest of the sheet. Variable names are letters, digits and underscores, and are highlighted once defined.

You typeOmacus shows
rent = $1,450$1,450
rent * 12$17,400
rate = $85/hour$85 / hour
rate * 30 hours$2,550

Totals & prev

total (or sum) adds up the lines above it, back to the last blank line or header, so a blank line starts a new block. average (or avg, mean) works the same way. prev is the result of the line just above.

You typeOmacus shows
Coffee $4.50$4.50
Lunch with Sam $18$18
Taxi $12$12
total$34.50
average$11.50
prev * 2$23

Keep a total in a variable to build on it:

You typeOmacus shows
Food ₹2,0002,000 INR
Taxi ₹800800 INR
subtotal = sum2,800 INR
gst = 18% of subtotal504 INR
subtotal + gst3,304 INR

Time zones

Convert a time between zones by abbreviation (PST, EST, IST, CET, JST…), city (London, Bangalore, San Francisco) or country (India, Japan). Abbreviations follow daylight saving: PST in July means Pacific time, which is then PDT. When the answer falls on another day, it says so.

You typeOmacus shows
3pm PST in IST3:30 AM IST (next day)
10:30 London to New York5:30 AM EDT
noon UTC in Tokyo9:00 PM JST
Standup 9:30am PST in Berlin6:30 PM CEST

For the current time somewhere, write time in Tokyo or now in London. A time without a zone means your local time: 3pm in IST.

Dates

today, now, tomorrow and yesterday, plus or minus minutes, hours, days, weeks, months or years.

today                        Friday, 16 October 2026
tomorrow + 2 weeks           Saturday, 31 October 2026
now - 90 minutes             Fri, 16 Oct 2026, 7:09 AM

Number bases

You typeOmacus shows
255 in hexff
0xff in decimal255
10 in binary1010

Notes & prose

A sheet is a notebook first. Lines starting with # are headers, // starts a comment (on its own line or after the math), and "quoted text" is ignored. A label before a colon is left out of the math, and words Omacus doesn't know are skipped.

You typeOmacus shows
# A header—
// a comment line—
Rent: $1,450$1,450
Lunch with Sam $18$18
"quoted text" 40 + 242
Tip: if a word you meant as prose happens to be a unit (like at or a), put it in a label (Hotel at the beach: $120) or in quotes.

Sheets

The sidebar lists your sheets; a sheet's title is its first line. Create as many as you like, one per trip, budget, invoice or project.

Right-click a sheet in the sidebar for New sheet, Move up, Move down and Delete sheet.

Keyboard shortcuts

On macOS, use ⌘ where this says Ctrl, and ⌥ for Alt.

KeysAction
Ctrl NNew sheet
Ctrl Tab / Ctrl Shift TabNext / previous sheet (also Ctrl PgDn / Ctrl PgUp)
Ctrl 1 … Ctrl 9Jump to a sheet
Alt ↑ / Alt ↓Move the sheet up / down
Ctrl DeleteDelete the sheet (kept in trash)
Ctrl BShow / hide the sidebar
Click a resultCopy it
Ctrl Shift CCopy the last result
Ctrl Z / Ctrl Shift ZUndo / redo (each sheet has its own history)
Ctrl + / Ctrl − / Ctrl 0Zoom in / out / reset
F1 or Ctrl /Help: shortcuts, live syntax examples, tips
Esc, Ctrl W or Ctrl QClose (everything is saved)

Autocomplete

After two letters, Omacus suggests your sheet's variables, then keywords, time zones and units. Tab accepts, ↑ ↓ choose, Esc dismisses. Enter always starts a new line and never accepts a suggestion, so 3 km in followed by Enter can't turn into inch. Short connecting words like in, to and of never trigger suggestions.

Themes

Omacus picks its colors in this order:

  1. Your own theme.toml, if you've made one (see where files live).
  2. On Omarchy, the active Omarchy theme. It switches live when you run omarchy theme set.
  3. Otherwise a built-in light or dark theme that follows your system setting, also live.

A theme.toml uses the same keys as an Omarchy theme's colors.toml. Every key is optional:

mode = "dark"                # or "light"
background = "#121212"       # sheet background
dark_background = "#0d0d0d"  # sidebar and popups
foreground = "#bebebe"       # text
bright_foreground = "#eaeaea" # numbers
light_foreground = "#8a8a8d" # labels and operators
dark_foreground = "#555555"  # comments
accent = "#e68e0d"           # results, headers, cursor
cyan = "#bebebe"             # keywords like in, of, total
magenta = "#d35f5f"          # variables
selection = "#2a2a2a"        # selection and the active sheet
lighter_background = "#1e1e1e" # hover

Command line

The omacus command uses the same engine as the app.

omacus '$100 in INR'                   # one expression → prints the answer
omacus '3pm PST in IST'
printf 'rent = $1450\nrent * 12\n' | omacus -   # a whole sheet from stdin, one result per line
omacus - < ~/notes/budget.txt
omacus                                 # no arguments: open the window

A single expression exits with status 1 when there's no answer, which makes it easy to use in scripts. On Windows, omacus.exe "..." works the same from a terminal.

Omarchy & Hyprland

When the installer runs on Omarchy, it asks:

  1. Add a Hyprland keybind and floating window for Omacus?
  2. Which key? The default is Super Ctrl Alt =. Whatever you choose is checked against your current bindings first. If it's taken, the installer tells you what it does and asks again, so it never overrides one of Omarchy's shortcuts.
  3. Also use the Calculator key? For keyboards that have one; it replaces Omarchy's default calculator on that key.

Your config files are backed up first (*.bak.<timestamp>), nothing is added twice, and the change is rolled back if Hyprland reports an error. For unattended installs, pass the answer:

curl -fsSL omacus.com/install | bash -s -- --hyprland              # default key
curl -fsSL omacus.com/install | bash -s -- --key "SUPER ALT + N"   # your key
curl -fsSL omacus.com/install | bash -s -- --no-hyprland           # leave Hyprland alone

To set it up by hand, add to ~/.config/hypr/bindings.lua and ~/.config/hypr/looknfeel.lua:

o.bind("SUPER + CTRL + ALT + EQUAL", "Omacus calculator", { launch = "omacus", focus = "^omacus$" })
o.window("^omacus$", { float = true, size = { 980, 600 }, center = true })

The keybind launches Omacus, or focuses it if it's already open. Esc closes it again.

Where files live

LinuxmacOSWindows
Sheets~/.local/share/omacus/sheets~/Library/Application Support/omacus/sheets%APPDATA%\omacus\sheets
Deleted sheets…/omacus/trash…/omacus/trash…\omacus\trash
Order, cursors, sidebarstate.json next to the sheets folder
Custom theme~/.config/omacus/theme.toml~/Library/Application Support/omacus/theme.toml%APPDATA%\omacus\theme.toml
Exchange-rate cache~/.cache/omacus~/Library/Caches/omacus%LOCALAPPDATA%\omacus

FAQ

A line shows no result. Why?

Omacus only shows answers it's sure about. Usually the line mixes things that can't be combined (dollars plus kilometres) or uses a word as a unit by accident. Try the expression on its own, and if you think it should work, open an issue with the exact line.

Does it need the internet?

Only to refresh exchange rates. Everything else is local, and cached rates keep currency math working offline.

macOS says it can't verify the app.

That's because Omacus isn't notarized by Apple yet. Install with the one-line installer to avoid the prompt, or allow it once under System Settings → Privacy & Security → Open Anyway.

Windows SmartScreen warns about an unknown publisher.

Choose More info → Run anyway. The warning appears because the executable isn't code-signed yet.

Is my data sent anywhere?

No. Sheets stay on your disk. The only network request is for exchange rates, which sends nothing about you or your sheets.

How it works

Omacus is a single Rust program: one native window and one engine, shared by the app and the command line. Every keystroke re-evaluates the sheet from top to bottom. For each line:

ClassifyBlank lines and headers start a new block; comments are skipped; total, average and dates are handled directly.
RewriteThe notepad layer strips labels and quotes, turns €20 into 20 EUR, and rewrites % on, % off and as % of into plain arithmetic.
Evaluatefend does the math, with units and currencies, in a context shared by the whole sheet, so variables carry down. Unknown words are dropped and the line is retried.
FormatResults are rounded for reading, given thousands separators, and painted on the first row of their line.

Each result also lands in a hidden variable, which is how prev, total and named totals see the lines above them. Time zones use the IANA time-zone database, so daylight saving is always right.

The window is drawn with egui. The editor lays the text out first, and Omacus reads back where each line landed so results stay aligned even when long lines wrap.

PartWhere
The notepad layer: labels, percentages, totals, prosesrc/engine.rs
Dates and time zonessrc/time.rs
Exchange rates and their cachesrc/rates.rs
Sheets, saving and restoringsrc/sheets.rs
The window, sidebar and results columnsrc/app.rs
Syntax colors and autocompletesrc/highlight.rs, src/complete.rs
Themes, live reloadingsrc/theme.rs
The built-in helpsrc/help.rs

Contributing

Bug reports and ideas are very welcome: open an issue, and for a wrong answer, paste the exact line you typed and what you expected. Pull requests too.

To build from source you need Rust:

git clone https://github.com/avinashjoshi/omacus && cd omacus
cargo run --release           # open the window
cargo test                    # the engine, sheets, time zones, help examples
./install.sh                  # Linux: build and install for your user

Releases are automatic: bumping version in Cargo.toml on main runs the tests on Linux, macOS and Windows, builds every package, and publishes a GitHub release with notes. Omacus is MIT licensed.