rustpm 0.2.1

A fast, friendly APT frontend with kernel, desktop, and sources management
# rustpm

A fast, friendly APT frontend written in Rust — similar to [nala](https://gitlab.com/volian/nala) but with first-class kernel management.

## Features

- **Package management**: install, remove, upgrade, search, show, list — with a full interactive TUI
- **Kernel management**: install/remove/pin Debian kernels + linux-headers atomically; GRUB updated automatically
- **Vanilla kernels**: download and install mainline kernels from [kernel.org]https://www.kernel.org/ via Ubuntu mainline builds
- **Desktop environments**: install/remove KDE, GNOME, XFCE, MATE, LXQt, Cinnamon with one command
- **APT sources**: view, add, remove, enable/disable APT sources from a TUI panel
- **Transaction history**: view past operations; undo installs/removals
- **Self-update checker**: notifies you when a new version is available
- **Interactive TUI by default**: running `rustpm` with no arguments opens a full-screen terminal UI

## Install

```bash
# From crates.io
cargo install rustpm

# Or build from source
git clone https://gitlab.com/dfred26/rustpm
cd rustpm
make install   # installs to /usr/local/bin/rustpm
```

## Usage

```
rustpm                          # open interactive TUI
rustpm update                   # refresh package lists
rustpm upgrade                  # upgrade packages (shows diff first)
rustpm install <pkg>...         # install packages
rustpm remove <pkg>...          # remove packages
rustpm search <term>            # search packages
rustpm show <pkg>               # show package details
rustpm list [--installed]       # list packages

rustpm kernel list              # show installed/available Debian kernels
rustpm kernel install <ver>     # install kernel + headers
rustpm kernel remove <ver>      # remove kernel (refuses running kernel)
rustpm kernel update            # upgrade to latest Debian kernel
rustpm kernel pin <ver>         # pin kernel version
rustpm kernel vanilla list      # list mainline kernel releases
rustpm kernel vanilla install <ver>  # download & install vanilla kernel

rustpm desktop list             # show available desktop environments
rustpm desktop install kde      # install KDE Plasma
rustpm desktop switch gnome     # install GNOME and set as default DM

rustpm sources list             # list APT sources
rustpm sources add <uri> <suite> <components...>
rustpm sources disable <uri>    # comment out a source

rustpm history                  # view transaction history
rustpm history undo <id>        # undo a transaction
```

## Environment variables

| Variable | Effect |
|---|---|
| `RUSTPM_NO_TUI=true` | Disable TUI, use plain text output |
| `RUSTPM_NO_UPDATE_CHECK=true` | Skip self-update check |

## License

GPL-3.0-or-later