### Intro
Convert any web page into a desktop app (but, lightweight ~3MB)
- The bundle size will be around 3MB
- Demo: [https://i.imgur.com/BLr03oF.mp4](https://i.imgur.com/BLr03oF.mp4)
### Pre-requisites
#### macOS
```bash
# cargo
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
#### Linux
You should first install the Rust toolchain
```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
Then you need to install some dependencies, which depends on your Linux distribution.
Ubuntu (and derivates such as KDE Neon, PopOS etc.)
```sh
sudo apt install libwebkit2gtk-4.0-dev -y
```
OpenSUSE
```sh
sudo zypper in -y webkit2gtk3-soup2-devel
```
Other
You need to look for another package that provides the development libraries for webkit with GTK4.
There might also be other missing packages.
#### Windows
Windows Setup (x64)
- Setup Tauri Pre-Requisities for windows: [https://tauri.app/v1/guides/getting-started/prerequisites#setting-up-windows](https://tauri.app/v1/guides/getting-started/prerequisites#setting-up-windows)
### Install
```bash
cargo install web2app tauri-cli
```
### Usages
```bash
# Run with args
web2app args -n Notion -u https://www.notion.so -i icon.png
```
```bash
# Run with interactive mode
web2app interactive
# 🍀 Enter Name (TestApp):
# 🍀 Enter URL (https://trello.com):
# 🍀 Enter Description (An example application.):
# 🍀 Enter Version (0.1.0):
# 🍀 Enter Author (John Doe):
# 🍀 Enter Identifier (com.example.testapp):
# 🍀 Enter Icon (icon_path.png):
# 🍀 Enter User Agent (Mozilla/5.0):
```
### Output
- The output will be saved in `$HOME/web2app_apps/` directory.
### Roadmap
- [x] Zoom In/Out
- [x] Reload
- [x] Standard Copy/Paste
- [x] Custom User Agent
- [x] Desktop Notification (working for some apps)
- [x] Back and forward navigation
- [ ] Automatically fetch icon from website
- [ ] Dark Reader Extension (already there but, not fully working)
- [ ] Retain window size and position after restart
- [ ] Separate `web2app_apps` repo to host common built apps through Github Action
- [ ] File download support
### Libraries
- [Tauri](https://github.com/tauri-apps/tauri)
- [home](https://github.com/brson/home)