@bobfrankston/msger 0.1.415 → 0.1.417

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -239,7 +239,10 @@ msger -title "Test" -message "Saving config..." -save test.json
239
239
  | `autoSize` | boolean | true when no size | Auto-resize window to fit content |
240
240
  | `alwaysOnTop` | boolean | false | Keep window on top |
241
241
  | `fullscreen` | boolean | false | Start in fullscreen mode |
242
- | `zoom` | number | 100 | Initial zoom level (100=100%, 150=150%) |
242
+ | `zoom` | number | 100 | Initial zoom level (100=100%, 150=150%). Applies in every mode — message, HTML and URL |
243
+ | `newWindow` | string | `"browser"` | Where "open in new window" / `target=_blank` links go: `"browser"` (system browser) or `"msger"` (spawns another msger window) |
244
+ | `contextMenu` | string | `"page"` | `"always"` forces the native right-click menu everywhere, even where the page suppresses it with its own `contextmenu` handler |
245
+ | `showVersion` | boolean | false | Keep `msger vX.Y.Z` appended to the title bar, re-applied when the page changes its own title |
243
246
  | `debug` | boolean | false | Return debug info in result |
244
247
  | `noResult` | boolean | false | Suppress JSON result on stdout (errors still go to stderr) |
245
248
  | `icon` | string | null | Path to window icon (.png, .ico) |
@@ -318,7 +321,10 @@ Options:
318
321
  -size, --size <width,height> Window size (e.g., -size 800,600)
319
322
  -pos, --pos <x,y> Window position (e.g., -pos 100,200)
320
323
  -screen, --screen <number> [Windows only] Screen index (0=primary, 1=second, etc.)
321
- -zoom, --zoom <percent> Zoom level as percentage (e.g., -zoom 150 for 150%)
324
+ -zoom, --zoom <percent> Zoom level as percentage (e.g., -zoom 150 for 150%).
325
+ Works in message, HTML and URL modes alike.
326
+ -newwindow, --newwindow <where> Where "open in new window" links go:
327
+ browser (default) or msger (spawn another msger window)
322
328
  -timeout, --timeout <seconds> Auto-close after specified seconds
323
329
  -ontop, --ontop Keep window always on top
324
330
  -detach, --detach Launch window independently (parent returns immediately)
@@ -344,8 +350,14 @@ Keyboard Shortcuts:
344
350
  - Escape: Dismiss dialog or exit fullscreen
345
351
  - F11: Toggle fullscreen mode
346
352
  - F12: Open developer tools (DevTools/Inspect)
347
- - Ctrl+Wheel/Plus/Minus: Zoom in/out
353
+ - Ctrl+Wheel/Plus/Minus: Zoom in/out (×1.25 per step, so in-then-out returns
354
+ exactly to where you started). The host owns the zoom factor — the system
355
+ menu's zoom items, -zoom and these keys all drive the same value.
348
356
  - Ctrl+0: Reset zoom to 100%
357
+ - Ctrl+Shift+S: Save an image of the WHOLE page — including whatever is
358
+ scrolled out of view — to your Pictures folder. The path is printed to
359
+ stderr and copied to the clipboard (Windows). Also on the right-click menu
360
+ as "Save page image".
349
361
 
350
362
  Debug Mode:
351
363
  - Set environment variable MSGER_DEBUG=1 for diagnostic output
package/cli.js CHANGED
@@ -29,6 +29,13 @@ Options:
29
29
  A local file or directory works too; a directory loads its index.html
30
30
  -hash <fragment> Hash fragment to append to URL (requires -url). Leading # optional.
31
31
  --install-deps Linux: install the WebKitGTK runtime msger needs (uses sudo)
32
+ -newwindow <where> Where "open in new window" links go: browser (default) or msger
33
+ -contextmenu <mode> always = right-click menu everywhere, even where the page
34
+ suppresses it; page (default) = leave the page in control
35
+ -version With other options: keep "msger vX.Y.Z" in the title bar,
36
+ surviving the page's own title (for debugging)
37
+ -zoom <percent> Zoom the page (e.g. -zoom 200). Ctrl+= / Ctrl+- / Ctrl+0 and
38
+ Ctrl+wheel adjust it at runtime, in every mode
32
39
  -buttons <label...> Specify button labels (e.g., -buttons Yes No Cancel)
33
40
  -ok Add OK button
34
41
  -cancel Add Cancel button
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/msger",
3
- "version": "0.1.415",
3
+ "version": "0.1.417",
4
4
  "description": "Fast, lightweight, cross-platform message box - Rust-powered alternative to msgview",
5
5
  "type": "module",
6
6
  "main": "./index.js",
package/shower.js CHANGED
@@ -716,15 +716,15 @@ function createMessageBoxHandle(options) {
716
716
  if (rustOptions.title === undefined || rustOptions.title === null) {
717
717
  rustOptions.title = `msger ${packageJson.version}`;
718
718
  }
719
- // Add version to title only if showVersion flag is set
719
+ // Version in the title bar (-version alongside other options).
720
+ // This used to bake the suffix into the initial title here and then
721
+ // strip the flag, so the version vanished the instant the page's
722
+ // <title> arrived and the auto-title reporter replaced it — i.e.
723
+ // exactly when you're staring at a running window trying to work
724
+ // out which build it is. Now the flag and the live version go to
725
+ // the binary, which re-applies the suffix on every title change.
720
726
  if (rustOptions.showVersion) {
721
- if (rustOptions.title) {
722
- rustOptions.title = `${rustOptions.title} [msger v${packageJson.version}]`;
723
- }
724
- else {
725
- rustOptions.title = `Message [msger v${packageJson.version}]`;
726
- }
727
- delete rustOptions.showVersion; // Don't send this to Rust binary
727
+ rustOptions.versionLabel = `msger v${packageJson.version}`;
728
728
  }
729
729
  if (rustOptions.size) {
730
730
  rustOptions.width = rustOptions.size.width;