port to tauri/nodejs/rust#1
Open
bfour wants to merge 10 commits into
Open
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.