Skip to content

port to tauri/nodejs/rust#1

Open
bfour wants to merge 10 commits into
masterfrom
claude/gallant-johnson-l2vr92
Open

port to tauri/nodejs/rust#1
bfour wants to merge 10 commits into
masterfrom
claude/gallant-johnson-l2vr92

Conversation

@bfour

@bfour bfour commented Jun 12, 2026

Copy link
Copy Markdown
Owner

No description provided.

claude and others added 10 commits June 12, 2026 10:46
Initial cross-platform foundation in tauri-app/: system tray with menu,
stacked/positioned notification popups, JSON-based --notify CLI via
tauri-plugin-single-instance (replacing the old named-pipe protocol),
persisted settings, and a code generator page. See tauri-app/README.md
for the architecture and module migration mapping.
Ports _commandLineInterpreter.au3's nesting-aware <tag>content</tag>
parser to Rust and maps the subset of legacy fields that correspond to
NotificationSpec (text, colors, icon, delay, untilClick, talk, audio,
buttons). Unrecognized layout/internal-only tags are accepted and
ignored, matching the old AutoIt behavior.
Tauri's Windows target requires link.exe from the MSVC C++ build
tools, which is a separate install from Rust/Node and is easy to
miss (causing "linker link.exe not found" build failures).
Builds the FP-QUI Tauri app on Windows, macOS and Linux runners
(so contributors without local MSVC/webkit2gtk setups can get
working bundles) and uploads the resulting installers as artifacts.
Builds the FP-QUI Tauri app on Windows, macOS and Linux runners
(so contributors without local MSVC/webkit2gtk setups can get
working bundles) and uploads the resulting installers as artifacts.
Uses Yarn 4 (via corepack) to match the project's package manager.
Notification position/size are set in logical pixels but the previous
code used the monitor's physical size, so corners other than top-left
(where margins happen to be small enough not to matter) ended up off
the visible area on any display with a scale factor != 100%.

- Use Monitor::work_area() (in logical pixels, via scale_factor) instead
  of the full screen size, so notifications no longer overlap the taskbar.
- Add an AppConfig.screen field selecting which monitor to use (index into
  a new list_monitors command), defaulting to the primary monitor.
- Add a "Screen" dropdown to Settings, populated via list_monitors.
WebviewWindowBuilder::build() (and certain monitor queries) deadlock
on Windows if called synchronously from the main/event-loop thread,
which is where Tauri IPC commands and the single-instance plugin's
window-message handler run (see wry#583). This caused the whole app
to freeze when sending a test notification from Settings or the
Generate Code preview.

Mark show_notification, dismiss_notification, set_config and
list_monitors as async so they don't block the main thread, and move
all notification window creation (plus the auto-dismiss timer) into a
single dedicated background thread per notification.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants