# Oru

Oru is a system configuration manager for Origami Linux.

## Features

- **Interactive Terminal Popup**: Execute privileged commands with an embedded pseudo-terminal for sudo password entry
- **System Updates & Maintenance**: Check for updates, apply updates, rollback, view deployment history
- **Shell Management**: List, change, and config shells (coming soon)
- **Package Management**: Layer packages, remove packages, search and manage overlays (coming soon)
- **Desktop Configuration**: Cosmic desktop settings, display manager, session management (coming soon)
- **System Services**: Enable/disable services, view status, manage systemd units (coming soon)
- **Flatpak Management**: Install, remove, update Flatpaks and manage remotes (coming soon)
- **Container Management**: Manage containers, toolboxes, and distrobox (coming soon)
- **User Management**: Add/remove users, modify groups, password management (coming soon)
- **Network Configuration**: NetworkManager integration, WiFi, VPN, hostname (coming soon)
- **Boot & Kernel Options**: Manage kernel arguments, GRUB settings, boot configuration (coming soon)
- **Storage & Filesystem**: View disk usage, manage mount points, partition info (coming soon)
- **System Information**: System overview, hardware info, resource usage, health check (coming soon)

## Terminal Popup Feature

The application includes an integrated pseudo-terminal (PTY) popup that allows you to execute commands requiring interactive input (like sudo password entry) directly within the TUI. This provides a seamless experience for privileged operations without switching to an external terminal.

**Key capabilities:**
- Interactive command execution with real-time output
- Secure sudo password entry
- Full terminal emulation with ANSI color support
- Keyboard input forwarding (Ctrl+C, arrow keys, etc.)
- Exit status reporting

For detailed documentation, see [docs/terminal_popup.md](docs/terminal_popup.md).

## Installation

```bash
cargo install --path .
```

## Usage

```bash
oru [OPTIONS]
```

### Options

- `--help`, `-h`: Display help information
- `--version`, `-V`: Display version information

Run without arguments to start the interactive TUI.

### Navigation

- **↑/k**: Move up
- **↓/j**: Move down
- **Enter/l**: Select/Execute
- **Esc/h**: Go back
- **q**: Quit

## Technology Stack

- **TUI Framework**: [Ratatui] (v0.30.0-beta)
- **Terminal Backend**: Crossterm (v0.29.0)
- **PTY Support**: portable-pty (v0.8.1)
- **Terminal Emulation**: vt100 (v0.15.2)
- **Error Handling**: color-eyre (v0.6.3)
- **Language**: Rust (edition 2021)

## Development

### Building

```bash
cargo build
```

### Running

```bash
cargo run
```

### Testing

```bash
cargo test
```

## License

Copyright (c) LILAY <contact@lilay.dev>

This project is licensed under the MIT license ([LICENSE] or <http://opensource.org/licenses/MIT>)

[Ratatui]: https://ratatui.rs
[LICENSE]: ./LICENSE
