Add README
This commit is contained in:
86
README.md
Normal file
86
README.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# Notion Timer — Stream Deck Plugin
|
||||
|
||||
A Stream Deck plugin that toggles time tracking in Notion. Press a button to start a timer against a project, press again to stop. Only one timer can run at a time.
|
||||
|
||||
---
|
||||
|
||||
## Staff Installation
|
||||
|
||||
Requires [Stream Deck](https://www.elgato.com/downloads) installed and up to date.
|
||||
|
||||
Open Terminal and run:
|
||||
|
||||
```bash
|
||||
curl -s https://gitea.pdmarf.co.uk/pdm/stream_deck_notion_timer/raw/branch/master/install.sh | bash
|
||||
```
|
||||
|
||||
Stream Deck will open and install the plugin automatically.
|
||||
|
||||
**First-time setup:**
|
||||
1. Drag a **Toggle Timer** button onto a key in Stream Deck
|
||||
2. Click the button — a settings panel appears at the bottom
|
||||
3. Expand **Notion Credentials** and fill in your API token, then select your name from the dropdown
|
||||
4. Select your project from the Project dropdown
|
||||
|
||||
---
|
||||
|
||||
## Auto-Updates
|
||||
|
||||
Updates are automatic — no action needed from staff.
|
||||
|
||||
The flow:
|
||||
1. Plugin starts and connects to Stream Deck
|
||||
2. After 10 seconds it checks `version.json` on Gitea
|
||||
3. If a newer version is available, it downloads `plugin.js` and `plugin.js.sig`
|
||||
4. The Ed25519 signature is verified against the public key embedded in the plugin
|
||||
5. If the signature is valid, the plugin overwrites itself and restarts
|
||||
6. Stream Deck relaunches the plugin on the new version
|
||||
|
||||
If the update server is unreachable or the signature fails, the plugin continues running on the current version unchanged.
|
||||
|
||||
---
|
||||
|
||||
## Developer Workflow
|
||||
|
||||
### Build & deploy locally
|
||||
|
||||
```bash
|
||||
npm run build # compile + sign
|
||||
```
|
||||
|
||||
Then copy to Stream Deck:
|
||||
```bash
|
||||
cp com.pdma.notion-timer.sdPlugin/bin/plugin.js "$HOME/Library/Application Support/com.elgato.StreamDeck/Plugins/com.pdma.notion-timer.sdPlugin/bin/plugin.js"
|
||||
cp com.pdma.notion-timer.sdPlugin/bin/plugin.js.sig "$HOME/Library/Application Support/com.elgato.StreamDeck/Plugins/com.pdma.notion-timer.sdPlugin/bin/plugin.js.sig"
|
||||
pkill -f "notion-timer"
|
||||
```
|
||||
|
||||
### Release an update to staff
|
||||
|
||||
1. Make your changes
|
||||
2. Bump `CURRENT_VERSION` in `src/plugin.ts` and `version.json`
|
||||
3. Run:
|
||||
|
||||
```bash
|
||||
npm run package
|
||||
git add .
|
||||
git commit -m "v1.x.x: description"
|
||||
git push
|
||||
```
|
||||
|
||||
Staff machines will pick up the update within 10 seconds of their next Stream Deck start.
|
||||
|
||||
### Signing key
|
||||
|
||||
The Ed25519 private key lives at `~/.notion-timer-signing-key.pem` — keep this backed up. If lost, a new key pair must be generated and the plugin redistributed manually to all staff.
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
| Component | Location | Runtime |
|
||||
|---|---|---|
|
||||
| Plugin logic | `src/plugin.ts` | Node.js 20 (under Stream Deck) |
|
||||
| Notion API | `src/notion.ts` | Node.js 20 |
|
||||
| Settings UI | `ui/property-inspector.html` | Browser (in Stream Deck app) |
|
||||
| PI library | `ui/libs/` | Browser — from [elgatosf/streamdeck-javascript-sdk](https://github.com/elgatosf/streamdeck-javascript-sdk) |
|
||||
Reference in New Issue
Block a user