A fast, minimal todo application built specifically for Omarchy. Both GUI and CLI interfaces. Built with Rust and egui, featuring project organization, theme integration, and a clean aesthetic.
- Dual Interface: Both GUI and command-line interfaces
- Project Organization: Group tasks with
project:prefixes - Theme Integration: Automatically syncs with Alacritty terminal themes
- Keyboard-Driven: Vim-inspired navigation (j/k, dd, etc.)
- Fast & Lightweight: Native Rust performance
- Linux-Native: Built specifically for Linux and Omarchy
# Clone and build
git clone https://github.com/ejuro/omado
cd omado
cargo build --release
# The binary will be at target/release/omado
# Copy it to a directory in your PATH, e.g.:
sudo cp target/release/omado /usr/local/bin/
- Linux only (built for Omarchy)
- Rust 1.70+ (install from rustup.rs)
- Development packages:
libxcb,libxrandr,libxi
When switching away from the workspace where OmaDo is open, Hyprland may show an "Application not responding" popup after a few seconds.
- Hyprland throttles or pauses windows that are off-screen
- If an app isn't receiving frame updates, the compositor thinks it's frozen
- OmaDo still works fine when you return — it's just a false alarm
- Add to the bottom section of
~/.config/hypr/hyprland.confif it is not already there:
source = ~/.config/hypr/windows.conf
- Create
~/.config/hypr/windows.confif it does not already exist, with:
# Keep omado lightly rendering in the background to avoid ANR popups
windowrulev2 = renderunfocused, title:^omado$
Launch the GUI application:
omado| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
a |
Add new task |
Enter |
Edit selected task |
x |
Toggle task completion |
dd |
Delete task (press twice) |
f |
Cycle filter (All → Active → Done) |
p |
Cycle project filter |
c |
Clear all filters |
Shift+S |
Toggle search |
Shift+P |
Open project palette |
Escape |
Cancel/Clear |
g / Shift+G |
Go to top/bottom |
Add tasks from the command line:
# Add a simple task
omado add "Buy groceries"
# Add a task with a project
omado add "work: Fix parser bug"
omado add "personal: Call mom"
# Get help
omado helpTasks can be organized into projects using the project: syntax:
work: Fix the login bug- Assigned to "work" projectpersonal: Book dentist appointment- Assigned to "personal" projectBuy milk- No project assigned
- Color-coded: Each project gets a unique theme-based color
- Filtering: Press
pto cycle through projects orShift+Pfor project palette - Statistics: View task counts per project in the palette
Tasks are stored in a plain text file at:
- Linux:
~/.local/share/omado/todo.txt(respects$XDG_DATA_HOME)
The format is compatible with standard todo.txt syntax:
[ ] Buy groceries
[x] work: Fix parser bug
[ ] personal: Call mom
omado automatically syncs with your Alacritty terminal theme by reading:
- Main config:
~/.config/alacritty/alacritty.toml - Imported themes: Supports Alacritty's
importfeature
Colors update automatically when you change your terminal theme (with a short delay).
- egui - Immediate mode GUI
- eframe - GUI framework
- serde - Serialization
- toml - TOML parsing for themes
- shellexpand - Shell path expansion
- anyhow - Error handling
- libc - Low-level system calls for process forking
This project is licensed under the MIT License - see the LICENSE file for details.
- GUI and CLI interfaces
- Project organization with
project:syntax - Alacritty theme integration
- Keyboard-driven navigation
- Real-time theme updates