projects / omarmail / README.md

omarmail

Native email status bar widget and rich reader for Omarchy shell powered by Himalaya

01README

✉️ Omarmail

A native status bar email widget and rich inbox reader for the Omarchy desktop shell.

Omarchy Plugin License: MIT Backend: Himalaya

Omarmail Preview


🌟 Highlights

  • Native Omarchy Bar Widget: Status bar envelope icon with real-time unread badges, status dots, and interactive tooltips.
  • Anchored Flyout Panel: Anchored seamlessly below the status bar tray, matching first-party Omarchy panels (tailscale, audio, network).
  • Rich HTML Email Renderer:
    • Full HTML & multi-part email rendering with formatted typography, headings, bullet lists, blockquotes, and tables.
    • Smart banner and logo image scaling with ultra-fast concurrent caching in ~/.cache/omarmail/images/.
    • Monospace code block support for patch diffs, stack traces, and developer notifications.
    • Clickable external links that open directly in your default browser.
  • Fast Inbox Actions:
    • Instant Mark as Read / Unread toggle without triggering detail view.
    • One-click deletion (Move to Trash).
    • Sender initials avatar bubbles and clean relative timestamps.
  • Live Search & Gmail Filter:
    • Instant live fuzzy filtering by sender, email address, or subject.
    • Full IMAP query integration (from:, to:, subject:, is:unread, etc.).
  • Keyboard First Navigation: Full navigation via keyboard shortcuts (j/k, Enter, Escape, u, d, /, r).

📥 Installation

Install directly using the Omarchy CLI:

omarchy plugin add https://github.com/JoeJoeflyn/omarmail

Add to Status Bar

Add an omarmail entry to the right section of the bar layout in ~/.config/omarchy/shell.json:

{
  "bar": {
    "layout": {
      "right": [
        { "id": "omarmail" },
        { "id": "omarchy.network" },
        { "id": "omarchy.audio" },
        { "id": "omarchy.battery" }
      ]
    }
  }
}

⚡ Prerequisites

Omarmail is powered by himalaya for IMAP and a pinned ortie release for Gmail OAuth. Use only the checksummed v2.2.0 assets below — not an unversioned remote installer.

1. Install Himalaya

omarchy pkg add himalaya

2. Install Ortie (Gmail OAuth only)

Download ortie v2.2.0, verify the SHA-256, then extract into ~/.local/bin. Skip this if you use IMAP with password auth.

x86_64 Linux:

curl -sSL -o /tmp/ortie.tgz https://github.com/pimalaya/ortie/releases/download/v2.2.0/ortie.x86_64-linux.tgz
echo '526972ac0b98eac66c943058de350c668d594e0898c8c6bb2d1b0348fafcdb52  /tmp/ortie.tgz' | sha256sum -c
mkdir -p ~/.local/bin
tar -xzf /tmp/ortie.tgz -C ~/.local/bin

aarch64 Linux: use ortie.aarch64-linux.tgz with sha256 667586c32ec3d087a40418014f286f0b8912001d32deef94edf668a634d898c6.

3. Configure Your Mailbox

Create or configure ~/.config/himalaya/config.toml. Note: omarchy pkg add himalaya installs himalaya v2, which uses a flat imap.* schema — the legacy v1 keys (imap.host, imap.port, imap.login, imap.auth) no longer parse.

[accounts.personal]
default = true
email = "you@example.com"
mailbox.alias.inbox = "INBOX"
imap.server = "imap.example.com:993"
imap.sasl.plain.username = "you@example.com"
imap.sasl.plain.password.raw = "your-app-password"

For Gmail, use imap.server = "imap.gmail.com:993" with an app password in imap.sasl.plain.password.raw — not your account password. Keep the account named personal — the plugin reads accounts.personal from this file.

For Gmail OAuth instead: install ortie (step 2), then sign in when the panel prompts — the plugin writes ~/.config/ortie/config.toml and the himalaya OAuth config automatically.


⌨️ Keybindings & Controls

Keyboard Shortcuts (within panel)

Key Action
j / Move cursor down
k / Move cursor up
Enter Open selected email
Escape / Backspace Back to inbox / close search / close panel
u Toggle Read / Unread status
d Move message to Trash
/ or s Focus search bar
r Refresh inbox

Hyprland Global Hotkey

Bind a toggle hotkey in ~/.config/hypr/bindings.lua:

-- Super + M to toggle Omarmail
o.bind("SUPER, M, exec, omarchy-shell omarmail toggle")

🔌 IPC Commands

Control Omarmail programmatically via omarchy-shell:

omarchy-shell omarmail open             # Open inbox popup
omarchy-shell omarmail toggle           # Toggle popup visibility
omarchy-shell omarmail refresh          # Sync latest emails
omarchy-shell omarmail openMessage <id> # Open specific email detail

📄 License

This project is licensed under the MIT License.


🗑️ Removal

Uninstall the plugin and clean up cached data:

omarchy plugin remove omarmail
rm -rf ~/.cache/omarmail

Then remove the {"id": "omarmail"} entry from the right section of the bar layout in ~/.config/omarchy/shell.json.

02Stats

1
stars
1
forks
Python
language
Aug 25, 2026
last push

03Repository

omarmail

omarmail — Nguyen Thai Tai | Nguyen Thai Tai