Linuxy
AppImage manager that doesn't get in your way.
Install, browse, sandbox, and update AppImages from one window.
---
## Screenshots

Library — installed apps at a glance
|

Discover — browse AppImageHub + GitHub
|

Settings — themes, storage, sandboxing
|

Auto-detect — watches your Downloads folder
|
## Features
| Feature | Description |
|---------|-------------|
| Drag-and-drop install | Drop an AppImage — Linuxy extracts metadata, icons, creates `.desktop` entry, and copies it to `~/.local/appimages/`. Done. |
| App discovery | Browse the [AppImageHub](https://appimage.github.io) catalog or search GitHub repos tagged `appimage`. Install in one click. |
| Firejail sandboxing | Toggle per-app. Enabled apps run under `firejail --appimage` with restricted filesystem and network access. |
| Delta updates | Bundles `appimageupdatetool`. Only fetches the binary diff, not the whole AppImage. |
| Downloads watcher | Notices new AppImages in `~/Downloads` and prompts to install. "Later" snoozes until the next one appears. |
| CLI mode | `linuxy install`, `linuxy list`, `linuxy launch`. Works headless. |
| Dark/Light/System themes | Persists across sessions. |
| Storage dashboard | Disk usage and app count at a glance. |
## Install
### One-liner (any distro)
```bash
curl -fsSL https://raw.githubusercontent.com/swadhinbiswas/linuxy/main/install.sh | bash
```
Automatically detects your package manager (APT, DNF, Zypper) and downloads the right package. Falls back to the universal AppImage.
### Manual
Debian / Ubuntu / Mint / Pop!_OS
```bash
sudo apt install ./linuxy_*_amd64.deb
```
Fedora / RHEL
```bash
sudo dnf install ./linuxy-*.rpm
```
openSUSE
```bash
sudo zypper install ./linuxy-*.rpm
```
Arch Linux (AUR)
```bash
yay -S linuxy
```
Any distro (AppImage)
```bash
chmod +x Linuxy_*.AppImage
./Linuxy_*.AppImage
```
Build from source
```bash
git clone https://github.com/swadhinbiswas/linuxy.git
cd linuxy
bun install
bun run tauri build
```
## Usage
### GUI
| Tab | What it does |
|-----|-------------|
| **Library** | Your installed apps. Launch, toggle sandbox, check updates, remove. Drag new AppImages here. |
| **Discover** | Browse AppImageHub or search GitHub. One-click install. |
| **Settings** | Theme toggle, storage stats, Firejail / updater status. |
### CLI
```bash
linuxy install ~/Downloads/App.AppImage # install from path
linuxy install https://example.org/app # install from URL
linuxy list # list installed apps
linuxy launch AppName # launch by name
linuxy remove AppName # remove by name
linuxy --help # full command list
```
## Configuration
| Path | Contents |
|------|----------|
| `~/.local/appimages/` | AppImage binaries |
| `~/.local/share/applications/` | `.desktop` entries |
| `~/.local/share/icons/hicolor/*/apps/` | Extracted icons |
**Firejail**: install with your distro's package manager, then toggle per-app from the GUI. When enabled, Linuxy rewrites the `.desktop` `Exec=` line to prepend `firejail --appimage`.
**Wayland**: Linuxy runs via XWayland by default (`WEBKIT_DISABLE_COMPOSITING_MODE=1`). No configuration needed.
## Development
### Prerequisites
```bash
# Ubuntu / Debian
sudo apt install libwebkit2gtk-4.1-dev build-essential libssl-dev \
libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libxdo-dev
# Fedora
sudo dnf install webkit2gtk4.1-devel openssl-devel gtk3-devel \
libappindicator-gtk3-devel librsvg2-devel libxdo-devel
```
### Run
```bash
bun install
bun run tauri dev
```
### Checks
```bash
bun run typecheck
bun run lint
cd src-tauri && cargo clippy && cargo test
```
## Contributing
```bash
git clone https://github.com/YOUR_USERNAME/linuxy.git
cd linuxy
git checkout -b feat/your-thing
# make changes
git commit -m "feat: what you did"
git push origin feat/your-thing
```
Open a pull request. See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
## License
[MIT](LICENSE)
---
Made with Rust + React for the Linux desktop.