Persist app config, add list --verbose, and improve quick start/install

This commit is contained in:
Sebastian Palencsar
2026-02-23 12:15:10 +01:00
parent 4c1b350583
commit 1bc4ac4bc9
8 changed files with 399 additions and 40 deletions

View File

@@ -10,6 +10,8 @@
<img src="https://img.shields.io/badge/Language-Rust-orange?style=flat-square" alt="Written in Rust" />
<img src="https://img.shields.io/badge/Powered_by-Tauri_v2-grey?style=flat-square" alt="Tauri v2" />
<img src="https://img.shields.io/badge/Status-Alpha-yellow?style=flat-square" alt="Alpha status" />
<img src="https://img.shields.io/github/v/release/spalencsar/deskify?label=Latest%20Release&style=flat-square" alt="Latest release" />
<img src="https://img.shields.io/badge/License-MIT-green?style=flat-square" alt="MIT license" />
</p>
<p align="center">
@@ -25,6 +27,31 @@
---
## Quick Start
Two tracks, depending on what you want:
### Option A: Chromium mode (fastest, best compatibility)
Requirements: any Chromium-based browser installed (`chromium`, `google-chrome`, `brave`, etc.)
```bash
mkdir -p ~/.local/bin
curl -L -o ~/.local/bin/deskify \
https://github.com/spalencsar/deskify/releases/latest/download/deskify-linux-x86_64
chmod +x ~/.local/bin/deskify
deskify build --url "https://chat.com" --name "Chat" --backend chromium
```
### Option B: Native Tauri mode (system WebView, no Chromium dependency)
Follow the full install section below (Tauri/WebKitGTK prerequisites), then:
```bash
deskify build --url "https://chat.com" --name "Chat"
```
## Why Deskify Exists
Web apps are now core tools, but Linux desktops still treat them like second-class citizens.
@@ -145,6 +172,23 @@ The table above covers the technical tradeoffs in more detail. In practice, `des
## 🚀 Installation
### Option A: Install a prebuilt binary (recommended)
Deskify provides Linux release binaries. Download the latest release and install it into `~/.local/bin`:
```bash
mkdir -p ~/.local/bin
curl -L -o ~/.local/bin/deskify \
https://github.com/spalencsar/deskify/releases/latest/download/deskify-linux-x86_64
chmod +x ~/.local/bin/deskify
deskify --help
```
Notes:
- The `tauri` backend still requires Tauri/WebKitGTK system dependencies to build wrappers locally.
- The `chromium` backend does not require Tauri prerequisites (but it requires an installed Chromium-based browser).
### 1. System Dependencies
Because `deskify` compiles Tauri applications natively on your machine, you need the standard Tauri prerequisites installed before using it.
@@ -309,12 +353,18 @@ You can view all applications generated by `deskify`:
```bash
deskify list
```
Verbose list (includes URL/backend when metadata is available):
```bash
deskify list --verbose
```
*Output:*
```text
Installed Deskify Apps:
- ChatGPT (Internal ID: chatgpt)
- Home Assistant (Internal ID: home-assistant)
- ChatGPT (Internal ID: chatgpt, Backend: tauri)
- Proton Mail (Internal ID: proton-mail, Backend: chromium)
```
To entirely uninstall an app (including the binary, desktop entry, and icons):
@@ -332,7 +382,8 @@ Rebuild and reinstall an existing app ID without manually running `remove` + `bu
deskify update chat --url "https://chat.com" --name "Chat" --no-decorations
```
Alpha note: `update` currently requires `--url` because Deskify does not persist app URLs/config metadata yet.
Deskify persists app metadata under `~/.local/share/deskify/apps/<id>.json`. With persisted metadata, `update` can be used without `--url`.
If an older app has no metadata yet, provide `--url` once (or rebuild once) to migrate it.
`update <id>` keeps the existing internal ID stable even if you change the display name.
You can also preview an update:
@@ -382,10 +433,9 @@ Expected: clean validation error and no unintended file deletion.
## 🏷️ Versioning & GitHub Releases (MVP)
- Recommended tag format during MVP: `v0.1.0-alpha.N`
- Start with **source-first** releases (repository + tags)
- Add automated binary releases later via GitHub Actions
- GitHub Releases publish a Linux `deskify` CLI binary on tags (`v*`)
For the current public alpha, use `v0.1.0-alpha.2` (and continue with `v0.1.0-alpha.N` for follow-up releases).
For the latest alpha, see GitHub Releases (and continue with `v0.1.0-alpha.N` for follow-up releases).
---