# nyado – a Rust todo‑list with TUI


%20%7C%20x86__64%20%7C%20aarch64-lightgrey)




<img align="left" src="img/nyado.png" width="120" alt="nyado logo">
```
nyado is a terminal-based task manager inspired by meowdo.
It supports multiple languages, tags, search, pinning, due dates.
```

## Installation
Choose one of the following methods:
### 1. From crates.io (requires Rust)
```
cargo install nyado
```
This will download and compile the latest version. Language files are built into the binary, but you can override them by placing your own `lang_*.toml` files in `~/.config/nyado/` (Linux) or `%APPDATA%\Local\nyado` (Windows).
### 2. Arch Linux (AUR)
If you are on Arch Linux (or an Arch‑based distribution), you can install one of the AUR packages:
- **Pre‑compiled binary** (fast, no compilation):
```
paru -S nyado-bin
```
or
```
yay -S nyado-bin
```
- **Source – release tarball** (compiled from the latest release):
```
paru -S nyado
```
- **Source – latest git commit** (bleeding edge):
```
paru -S nyado-git
```
All three packages provide the `nyado` command and automatically install the required language files.
### 3. Quick install (binary, no compilation)
```
curl -sSL https://raw.githubusercontent.com/LeynTheCat/nyado/main/install_bin.sh | bash
```
This script:
- Detects your CPU architecture (x86_64 or aarch64)
- Downloads the latest pre‑built static binary from GitHub Releases
- Installs it to `~/.local/bin/`
- Fetches and installs language files to `~/.config/nyado/` (replaces old configs)
### 4. Build from source (via install script)
```
The script will:
- Download the latest source code from GitHub
- Install Rust/Cargo automatically (Arch, Debian/Ubuntu, Fedora, openSUSE, or rustup)
- Build nyado in release mode
- Install binary and config files
### 5. Manual installation (git clone)
```
git clone https://github.com/LeynTheCat/nyado.git
cd nyado
./install.sh
```
or without cloning:
```
cargo install --git https://github.com/LeynTheCat/nyado.git
mkdir -p ~/.config/nyado
cp config/*.toml ~/.config/nyado/
```
### 6. Windows (unsupported, but possible)
Compiling for Windows is possible – just run `cargo build --release` on a Windows machine with Rust installed. However, **I do not provide official support for Windows**. If you want to run nyado on Windows, place the `config/*.toml` files into `%APPDATA%\Local\nyado` and add the directory containing `nyado.exe` to your `PATH` environment variable.
## Update
- **Binary installation**: simply run the same quick install command again – it will download the latest binary and update config files.
- **Source installation (from git)**: cd into the cloned directory and run `./install.sh update`.
- **If you used the one‑line curl installer**: just run the same command again – it will overwrite the binary and configs.
- **crates.io version**: run `cargo install nyado --force` to upgrade.
- **AUR packages**: update with your AUR helper, e.g., `paru -Syu nyado-bin`.
## Uninstall
To completely remove nyado:
```
./install.sh uninstall
```
This deletes the binary from `~/.local/bin/` and the config directory `~/.config/nyado/`.
Your tasks data is stored separately in `~/.local/share/nyado/` – if you want to remove that too, delete it manually:
```
rm -rf ~/.local/share/nyado
```
For Windows, manually delete the executable and the `%APPDATA%\Local\nyado` folder.
## Usage
Just run `nyado` from your terminal.
### Key bindings
| Quit | q / й |
| Language switch | l / L / д / Д |
| Navigate down | j / о , ↓ |
| Navigate up | k / л , ↑ |
| Top / Bottom | g / п , G / П (or Home / End) |
| Page down / up | PageDown / PageUp |
| New task | n / т |
| Edit task | e / у |
| Toggle done | Space |
| Pin / unpin | p / з |
| Set tag | t / е |
| Delete task | d / в |
| Delete all tasks | D / В (Shift + letter) |
| Search | / / . |
| Filter by tag (1‑9) | 1…9 (only for existing tags) |
| Clear filters | Esc |
| Set due date/time | M / m / ь / Ь |
| Show help | h / р , ? |
| Project actions | f / а |
| Previous project | [ / х |
| Next project | ] / ъ |
Note: Filtering works for the first nine most‑used tags displayed in the right panel.
Press 1‑9 to filter by that tag, press Esc to clear the filter and the search query.
## Localisation
- Language files are stored in `~/.config/nyado/lang_*.toml` (Linux) or `%APPDATA%\Local\nyado\lang_*.toml` (Windows).
- You can add your own language by placing a `lang_xx.toml` file there (just copy an existing one and translate).
## Data storage
All data is stored in `~/.local/share/nyado/` (Linux) or `%APPDATA%\Local\nyado` (Windows).
- Projects are saved as separate text files inside `projects/` (e.g., `projects/default.txt`).
- Backup copies are kept in `projects/.backups/<project>/`.
Each task is stored as a single line in the following pipe‑separated format:
```
| `<pin>` | `P` if pinned, otherwise `-` |
| `<done>` | `x` if done, otherwise space (` `) |
| `<tag>` | Tag name, or `none` if no tag |
| `<text>` | Task text |
| `<created_at>` | Unix timestamp (seconds) of creation |
| `<done_at>` | Unix timestamp when completed, or `0` |
| `<due_date>`| Unix timestamp of due date, or `0` if not set |
You may edit these files manually, but be cautious.
## Requirements
- Linux (x86_64 or aarch64) – any distribution with a decent terminal (unicode support).
- For the binary installer: curl.
- For the source installer: Rust toolchain (installed automatically if missing).
- Windows: not officially supported, but you can compile it yourself.
## Contributing
Feel free to open issues or pull requests.
The code is modular (each UI component lives in src/ui/), and the i18n system supports adding new languages easily.