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:
- Open Omacus once. macOS says it can't verify it; click Done.
- 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 type | Omacus shows |
|---|---|
2 + 2 * 3 | 8 |
(1 + 2) ^ 3 | 27 |
sqrt(144) + 10 mod 3 | 13 |
5 x 3 | 15 |
10 times 3 plus 2 | 32 |
1.5k * 4 | 6,000 |
1e6 / 3 | 333,333.33 |
Functions include sqrt, abs, round, floor, ceil, sin, cos, tan, log, ln and exp; constants pi and e.
Percentages
| You type | Omacus shows |
|---|---|
20% of 340 | 68 |
5% on $200 | $210 |
15% off $1,299 | $1,104.15 |
$120 as % of $480 | 25% |
5% of what is 6 | 120 |
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 type | Omacus shows |
|---|---|
3.5 km in miles | 2.17 miles |
2 hours + 45 min in minutes | 165 minutes |
72 fahrenheit in celsius | 22.22 °C |
60 mph in km/h | 96.56 km / h |
2 cups in ml | 473.18 ml |
10 GB / 4 | 2.5 GB |
1 acre in m^2 | 4,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 type | Omacus shows |
|---|---|
$30 in EUR | 26.75 EUR |
€50 + £20 in USD | $82.60 |
₹5,000 in USD | $52.58 |
¥10,000 in USD | $63.26 |
$100 in INR | 9,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 type | Omacus 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 type | Omacus 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 type | Omacus shows |
|---|---|
Food ₹2,000 | 2,000 INR |
Taxi ₹800 | 800 INR |
subtotal = sum | 2,800 INR |
gst = 18% of subtotal | 504 INR |
subtotal + gst | 3,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 type | Omacus shows |
|---|---|
3pm PST in IST | 3:30 AM IST (next day) |
10:30 London to New York | 5:30 AM EDT |
noon UTC in Tokyo | 9:00 PM JST |
Standup 9:30am PST in Berlin | 6: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 type | Omacus shows |
|---|---|
255 in hex | ff |
0xff in decimal | 255 |
10 in binary | 1010 |
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 type | Omacus shows |
|---|---|
# A header | — |
// a comment line | — |
Rent: $1,450 | $1,450 |
Lunch with Sam $18 | $18 |
"quoted text" 40 + 2 | 42 |
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.
- Always saved. Every change is written within half a second, and again when you close. There is no save command and nothing to lose.
- Picks up where you left off. Order, the open sheet, each sheet's cursor and whether the sidebar is shown all come back next time.
- Deleting is safe. Deleted sheets move to a
trashfolder next to your sheets; copy one back to restore it. - Plain text. Each sheet is a
.txtfile, so you can search, sync or back them up with anything.
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.
| Keys | Action |
|---|---|
| Ctrl N | New sheet |
| Ctrl Tab / Ctrl Shift Tab | Next / previous sheet (also Ctrl PgDn / Ctrl PgUp) |
| Ctrl 1 … Ctrl 9 | Jump to a sheet |
| Alt ↑ / Alt ↓ | Move the sheet up / down |
| Ctrl Delete | Delete the sheet (kept in trash) |
| Ctrl B | Show / hide the sidebar |
| Click a result | Copy it |
| Ctrl Shift C | Copy the last result |
| Ctrl Z / Ctrl Shift Z | Undo / redo (each sheet has its own history) |
| Ctrl + / Ctrl − / Ctrl 0 | Zoom in / out / reset |
| F1 or Ctrl / | Help: shortcuts, live syntax examples, tips |
| Esc, Ctrl W or Ctrl Q | Close (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:
- Your own
theme.toml, if you've made one (see where files live). - On Omarchy, the active Omarchy theme. It switches live when you run
omarchy theme set. - 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:
- Add a Hyprland keybind and floating window for Omacus?
- 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.
- 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
| Linux | macOS | Windows | |
|---|---|---|---|
| Sheets | ~/.local/share/omacus/sheets | ~/Library/Application Support/omacus/sheets | %APPDATA%\omacus\sheets |
| Deleted sheets | …/omacus/trash | …/omacus/trash | …\omacus\trash |
| Order, cursors, sidebar | state.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:
total, average and dates are handled directly.€20 into 20 EUR, and rewrites % on, % off and as % of into plain arithmetic.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.
| Part | Where |
|---|---|
| The notepad layer: labels, percentages, totals, prose | src/engine.rs |
| Dates and time zones | src/time.rs |
| Exchange rates and their cache | src/rates.rs |
| Sheets, saving and restoring | src/sheets.rs |
| The window, sidebar and results column | src/app.rs |
| Syntax colors and autocomplete | src/highlight.rs, src/complete.rs |
| Themes, live reloading | src/theme.rs |
| The built-in help | src/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.