v0.3.0 : migration des dialogues vers wNim + renommage NimPulse + installeur une-ligne
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# TrayTempo
|
||||
# NimPulse
|
||||
|
||||
Timer **Pomodoro nouvelle génération** pour Windows, écrit entièrement en
|
||||
**Nim**. Il vit discrètement dans la zone de notification (system tray) et
|
||||
@@ -53,14 +53,31 @@ prend soin de votre santé autant que de votre productivité, dans une interface
|
||||
nimble install winim
|
||||
```
|
||||
|
||||
- Le framework GUI [wNim](https://github.com/khchen/wNim) :
|
||||
|
||||
```bash
|
||||
nimble install wnim
|
||||
```
|
||||
|
||||
> **Important (Nim 2.2.x)** : wNim 1.0.0 contient deux bugs de compilation
|
||||
> avec Nim 2.2.x. Appliquez ces deux correctifs dans
|
||||
> `~/.nimble/pkgs2/wnim-*/wnim/` :
|
||||
> 1. `private/kiwi/strength.nim` : remplacer les 4 `const X = createStrength(...)`
|
||||
> par des littéraux (`REQUIRED = 1000.0`, `STRONG = 1000000.0`,
|
||||
> `MEDIUM = 1000.0`, `WEAK = 1.0`).
|
||||
> 2. `private/wResizer.nim` : remplacer `initHashSet[wResizable]()` par
|
||||
> `HashSet[wTypes.wResizable]()`.
|
||||
> Voir les issues wNim [#125](https://github.com/khchen/wNim/issues/125) et
|
||||
> [#133](https://github.com/khchen/wNim/issues/133).
|
||||
|
||||
## Compilation
|
||||
|
||||
```bash
|
||||
nim c -d:release --app:gui src/traytempo.nim
|
||||
nim c -d:release --app:gui src/nimpulse.nim
|
||||
```
|
||||
|
||||
Le binaire résultant `src/traytempo.exe` est autonome (aucune dépendance
|
||||
externe à installer) et pèse moins de 1 Mo.
|
||||
Le binaire résultant `src/nimpulse.exe` est autonome (aucune dépendance
|
||||
externe à installer) et pèse environ 1,4 Mo.
|
||||
|
||||
> **Note** : à l'édition de liens, `winim` injecte son propre fichier de
|
||||
> ressources (styles visuels / manifeste), ce qui peut produire l'avertissement
|
||||
@@ -70,18 +87,26 @@ externe à installer) et pèse moins de 1 Mo.
|
||||
|
||||
## Distribution
|
||||
|
||||
- **Binaire autonome** : `src\traytempo.exe` (ou `build\traytempo.exe`).
|
||||
- **Binaire autonome** : `src\nimpulse.exe` (ou `build\nimpulse.exe`).
|
||||
- **Installeur une-ligne (Windows)** :
|
||||
|
||||
```powershell
|
||||
irm https://git.dracodev.net/Projets/NimPulse/-/raw/main/install.ps1 | iex
|
||||
```
|
||||
|
||||
Le script [`install.ps1`](install.ps1) télécharge le binaire et crée un
|
||||
raccourci sur le bureau.
|
||||
- **Archive portable** : lancez [`release.cmd`](release.cmd) pour compiler et
|
||||
créer `build\TrayTempo-portable.zip` (version prête à copier sur une clé USB).
|
||||
- **Installeur** : un script [Inno Setup](installer/traytempo.iss) est fourni.
|
||||
Compilez-le avec [Inno Setup 6](https://jrsoftware.org/isinfo.php).
|
||||
créer `build\NimPulse-portable.zip` (version prête à copier sur une clé USB).
|
||||
- **Installeur classique** : un script [Inno Setup](installer/nimpulse.iss) est
|
||||
fourni. Compilez-le avec [Inno Setup 6](https://jrsoftware.org/isinfo.php).
|
||||
|
||||
## Configuration
|
||||
|
||||
Au premier lancement (et à la sortie), l'application crée :
|
||||
|
||||
```
|
||||
%APPDATA%\TrayTempo\
|
||||
%APPDATA%\NimPulse\
|
||||
├── config.json # réglages, profils, rappels santé
|
||||
└── stats.json # statistiques
|
||||
```
|
||||
@@ -116,7 +141,7 @@ Un exemple de configuration est fourni dans
|
||||
|
||||
```
|
||||
src/
|
||||
├── traytempo.nim # point d'entrée : fenêtre cachée, boucle de messages,
|
||||
├── nimpulse.nim # point d'entrée : fenêtre cachée, boucle de messages,
|
||||
│ # WM_TIMER, raccourci global, mono-instance, câblage
|
||||
├── config.nim # Config/Profile/HealthReminder/Lang, JSON, registre (Run)
|
||||
├── timer.nim # machine à états Pomodoro (aucune dépendance Win32)
|
||||
@@ -124,14 +149,14 @@ src/
|
||||
├── notifications.nim # toast (NIF_INFO), son, rotation des rappels santé
|
||||
├── stats.nim # compteurs jour/semaine/total, streak, CSV, JSON
|
||||
├── i18n.nim # chaînes localisées (français / anglais), détection langue
|
||||
├── dialogs.nim # réglages, rappels santé, assistant, statistiques (Win32)
|
||||
├── dialogs.nim # réglages, rappels santé, assistant, stats (wNim)
|
||||
├── floating.nim # fenêtre flottante compacte (toujours au-dessus)
|
||||
└── updater.nim # comparaison de versions + récupération distante
|
||||
```
|
||||
|
||||
Séparation des responsabilités : `timer`, `stats` et `updater` sont purs
|
||||
(aucune dépendance à l'API Win32), ce qui les rend testables ; `config`,
|
||||
`tray`, `notifications`, `dialogs` et `traytempo` gèrent l'interaction avec
|
||||
`tray`, `notifications`, `dialogs` et `nimpulse` gèrent l'interaction avec
|
||||
Windows.
|
||||
|
||||
## Raccourcis
|
||||
@@ -162,7 +187,6 @@ nim c -r tests/test_notifications.nim
|
||||
nim c -r tests/test_tray_integration.nim
|
||||
nim c -r tests/test_updater.nim
|
||||
nim c -r tests/test_floating.nim
|
||||
nim c -r tests/test_dialogs.nim
|
||||
```
|
||||
|
||||
La correspondance exigence → contrôle → résultat est détaillée dans
|
||||
|
||||
Reference in New Issue
Block a user