Add Tauri config, Cargo.toml, capabilities
This commit is contained in:
parent
c6d8e902f6
commit
8abb0599f6
5 changed files with 146 additions and 0 deletions
52
src-tauri/Cargo.toml
Normal file
52
src-tauri/Cargo.toml
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
[package]
|
||||
name = "claude-usage-widget"
|
||||
version = "0.1.0"
|
||||
description = "Always-on-top Windows widget visualizing local Claude Code usage"
|
||||
authors = ["megaproxy"]
|
||||
edition = "2021"
|
||||
rust-version = "1.77"
|
||||
|
||||
[lib]
|
||||
name = "claude_usage_widget_lib"
|
||||
crate-type = ["staticlib", "cdylib", "rlib"]
|
||||
|
||||
[build-dependencies]
|
||||
tauri-build = { version = "2", features = [] }
|
||||
|
||||
[dependencies]
|
||||
tauri = { version = "2", features = [] }
|
||||
tauri-plugin-autostart = "2"
|
||||
tauri-plugin-store = "2"
|
||||
tauri-plugin-dialog = "2"
|
||||
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
|
||||
notify = "6"
|
||||
notify-debouncer-full = "0.3"
|
||||
walkdir = "2"
|
||||
|
||||
anyhow = "1"
|
||||
thiserror = "1"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
dirs = "5"
|
||||
once_cell = "1"
|
||||
parking_lot = "0.12"
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
windows = { version = "0.58", features = ["Win32_System_Console"] }
|
||||
|
||||
[features]
|
||||
# Default: production binary (no console window on Windows)
|
||||
default = ["custom-protocol"]
|
||||
custom-protocol = ["tauri/custom-protocol"]
|
||||
|
||||
[profile.release]
|
||||
panic = "abort"
|
||||
codegen-units = 1
|
||||
lto = true
|
||||
opt-level = "s"
|
||||
strip = true
|
||||
3
src-tauri/build.rs
Normal file
3
src-tauri/build.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fn main() {
|
||||
tauri_build::build()
|
||||
}
|
||||
22
src-tauri/capabilities/default.json
Normal file
22
src-tauri/capabilities/default.json
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"$schema": "../gen/schemas/desktop-schema.json",
|
||||
"identifier": "default",
|
||||
"description": "Capabilities granted to the main window. FS reads happen Rust-side, so no fs:* permissions are needed.",
|
||||
"windows": ["main"],
|
||||
"permissions": [
|
||||
"core:default",
|
||||
"core:event:allow-listen",
|
||||
"core:event:allow-unlisten",
|
||||
"core:event:allow-emit",
|
||||
"core:event:allow-emit-to",
|
||||
"core:window:allow-start-dragging",
|
||||
"core:window:allow-set-position",
|
||||
"core:window:allow-close",
|
||||
"core:window:allow-hide",
|
||||
"core:window:allow-show",
|
||||
"core:app:allow-version",
|
||||
"autostart:default",
|
||||
"store:default",
|
||||
"dialog:default"
|
||||
]
|
||||
}
|
||||
13
src-tauri/icons/README.md
Normal file
13
src-tauri/icons/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Icons
|
||||
|
||||
Placeholder. Before `pnpm tauri build` will succeed you need real icons here.
|
||||
|
||||
Quickest path: `pnpm tauri icon path/to/source-1024x1024.png` — Tauri generates every required size + format (`.ico`, `.icns`, `.png`).
|
||||
|
||||
Files Tauri's bundler expects (referenced from `tauri.conf.json`):
|
||||
|
||||
- `32x32.png`
|
||||
- `128x128.png`
|
||||
- `128x128@2x.png`
|
||||
- `icon.icns`
|
||||
- `icon.ico`
|
||||
56
src-tauri/tauri.conf.json
Normal file
56
src-tauri/tauri.conf.json
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"$schema": "https://schema.tauri.app/config/2",
|
||||
"productName": "Claude Usage Widget",
|
||||
"version": "0.1.0",
|
||||
"identifier": "com.megaproxy.claude-usage-widget",
|
||||
"build": {
|
||||
"beforeDevCommand": "pnpm dev",
|
||||
"beforeBuildCommand": "pnpm build",
|
||||
"devUrl": "http://localhost:1420",
|
||||
"frontendDist": "../dist"
|
||||
},
|
||||
"app": {
|
||||
"windows": [
|
||||
{
|
||||
"label": "main",
|
||||
"title": "Claude Usage",
|
||||
"width": 280,
|
||||
"height": 360,
|
||||
"minWidth": 280,
|
||||
"minHeight": 360,
|
||||
"resizable": false,
|
||||
"decorations": false,
|
||||
"transparent": true,
|
||||
"alwaysOnTop": true,
|
||||
"skipTaskbar": true,
|
||||
"shadow": false,
|
||||
"center": false,
|
||||
"x": 40,
|
||||
"y": 40,
|
||||
"visible": true
|
||||
}
|
||||
],
|
||||
"security": {
|
||||
"csp": "default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self'"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"autostart": {
|
||||
"args": ["--minimized"]
|
||||
}
|
||||
},
|
||||
"bundle": {
|
||||
"active": true,
|
||||
"targets": ["nsis"],
|
||||
"icon": [
|
||||
"icons/32x32.png",
|
||||
"icons/128x128.png",
|
||||
"icons/128x128@2x.png",
|
||||
"icons/icon.icns",
|
||||
"icons/icon.ico"
|
||||
],
|
||||
"category": "Utility",
|
||||
"shortDescription": "At-a-glance Claude Code usage on the Windows desktop",
|
||||
"longDescription": "Floating, always-on-top widget that visualizes your current 5-hour Claude Code session block, the past 7 days of usage, and a per-model breakdown. Reads JSONL transcripts directly from the Claude Code config directory — no Anthropic API, no auth."
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue