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).
  • Safe Rich Email Renderer:
    • Sanitized HTML and plain-text/Markdown rendering with formatted typography, headings, bullet lists, blockquotes, and tables.
    • Remote body images and active markup are blocked; optional GitHub sender avatars are validated and cached privately.
    • Monospace code block support for patch diffs, stack traces, and developer notifications.
    • Only HTTP(S) and mail links can open in your default browser.
  • Fast Mailbox Actions:
    • The active mailbox is refreshed from the server whenever the panel opens.
    • Instant Mark as Read / Unread toggle without triggering detail view.
    • Inbox and Trash tabs with one-click trash and restore actions.
    • 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.).
  • Gmail Category Toggles: Hide Promotions, Social, Updates, or Forums with one click from the inbox header.
  • 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:

archive=$(mktemp --suffix=.ortie.tgz)
trap 'rm -f "$archive"' EXIT
curl --fail --proto '=https' --tlsv1.2 -sSL -o "$archive" https://github.com/pimalaya/ortie/releases/download/v2.2.0/ortie.x86_64-linux.tgz
echo "526972ac0b98eac66c943058de350c668d594e0898c8c6bb2d1b0348fafcdb52  $archive" | sha256sum -c
mkdir -p ~/.local/bin
tar -xzf "$archive" -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.command = ["secret-tool", "lookup", "service", "omarmail", "account", "you@example.com"]

Store the secret first with secret-tool store --label="Omarmail" service omarmail account you@example.com. Himalaya and Omarmail also support other password-manager commands such as pass or gopass. A password.raw value remains compatible, but a password-manager command is recommended so the app password is not stored in plaintext.

For Gmail, use imap.server = "imap.gmail.com:993" with a dedicated app password — never your account password. The account may have any name; Omarmail scans configured accounts.

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 to Trash, or restore to Inbox from the Trash tab
/ 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
rm -rf ~/.config/omarmail

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

02Stats

2
stars
1
forks
Python
language
Sep 13, 2026
last push

03Repository

omarmail

omarmail — Nguyen Thai Tai | Nguyen Thai Tai