Add printer discovery and self-update; v0.2.1
- Find… button lists serial ports and paired Bluetooth devices (bluetoothctl on Linux, PnP device properties on Windows) and fills in the connection - Startup check against the releases API; update bar with Update now / Release notes / Later / Skip this version; manual check via the version link. Standalone builds download the new executable and replace themselves via a small handoff script, then relaunch - README: connection setup and updater notes
This commit is contained in:
@@ -13,7 +13,9 @@ Standalone builds, no Python needed — grab the latest from the [releases page]
|
||||
| `NiimbotLabel.exe` | Windows 10/11 x64 |
|
||||
| `NiimbotLabel` | Linux x64 (needs a system Tcl/Tk) |
|
||||
|
||||
Pair the printer over Bluetooth in your OS first, then enter its MAC address in the app's *Printer* box (see [Bluetooth connection](#bluetooth-connection) for which address to use). For USB, leave the address blank to auto-detect, or enter the port (`/dev/ttyACM0`, `COM3`).
|
||||
Pair the printer in your OS Bluetooth settings first, then click **Find…** in the app's *Printer* box: it lists paired Bluetooth devices and serial ports, with the printer highlighted — double-click it and you're set. (On Windows the paired printer also appears as a *Standard Serial over Bluetooth* `COMx` port, which works just as well.) You can also type the address yourself: a MAC like `AA:BB:CC:DD:EE:FF` for Bluetooth, or a port (`/dev/ttyACM0`, `COM3`) for USB — blank auto-detects a single USB printer.
|
||||
|
||||
The app checks the releases page on startup and offers to update itself when a newer version is published.
|
||||
|
||||
## Supported printers
|
||||
|
||||
@@ -146,10 +148,12 @@ The 40 × 12 mm label above, exactly as sent to the printer (320 × 96 px, 1-bit
|
||||
|
||||
### Printing & files
|
||||
|
||||
- **Find…** — lists paired Bluetooth devices (via `bluetoothctl` on Linux, PnP device properties on Windows) and serial ports; pick the printer to fill in *Via* and *Address*.
|
||||
- **Print** — connects lazily and prints in the background; *Copies* repeats the label. Errors show in a dialog.
|
||||
- **Save PNG…** exports the 1-bit image; **Save… / Open…** store the design as JSON; **New** clears the label.
|
||||
- Printer model, connection, address, density, theme, and the last design are remembered in `~/.config/niimprint-label/settings.json`.
|
||||
- ☾ / ☀ toggles light and dark themes ([ttkbootstrap](https://ttkbootstrap.readthedocs.io) *flatly* / *darkly*).
|
||||
- **Updates** — on startup the app asks the releases API for the latest version (one small request, no other data sent). If there is a newer one, a bar offers *Update now*: the standalone build downloads the new executable and replaces itself, a source checkout gets a link to the release. The version link in the bottom bar checks manually.
|
||||
|
||||
### Library use
|
||||
|
||||
@@ -175,7 +179,7 @@ A PyInstaller spec (`label_app.spec`) bundles the app, fonts, emoji data and the
|
||||
.\build-windows.ps1
|
||||
```
|
||||
|
||||
produces `dist\NiimbotLabel.exe` (~30 MB, no installation needed). Bluetooth uses the Windows RFCOMM socket API, so pair the printer in Windows Bluetooth settings first, then enter its MAC address in the app. For USB, enter the `COMx` port or leave the address blank to auto-detect.
|
||||
produces `dist\NiimbotLabel.exe` (~30 MB, no installation needed). Bluetooth uses the Windows RFCOMM socket API: pair the printer in Windows Bluetooth settings, then use **Find…** in the app (or enter the MAC / `COMx` port by hand).
|
||||
|
||||
`assets/win/fribidi.dll` is bundled because Pillow's Windows wheel needs it for emoji sequences (flags, skin tones, 🧑💻-style ZWJ emoji); see `assets/win/README.md`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user