mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-10-20 23:11:24 +02:00
11211c30e71796cd737280303244552bb7f70797
* fix(window-state): convert macOS coordinates to Logical to fix overlay shrink and multi-monitor DPI scaling drift * chore: add changeset for logical coordinates and macOS overlay fix * chore(window-state): fix change file package keys * fix(window-state): save the macOS content rect size instead of guessing the title bar The 20-40px outer/inner heuristic also matched ordinary decorated windows, saving their outer size so they grew by the title bar height on every restore. Derive the title bar height from the content rect instead, in one helper shared by update_state, the Resized handler and the initial metadata. * fix(window-state): keep the saved state in physical pixels State files written by earlier versions hold physical pixels, and logical coordinates are not one global space across monitors with different scale factors, so a position converted with one monitor's scale was restored on another. Converting with the window's scale at Moved time could also pick up a stale scale mid-drag, and an unavailable scale silently stored physical values as logical. * fix(window-state): check the restored position against the monitors For a maximized window the monitor check tested x and y, which are the monitor's corner, while the window was then placed at prev_x and prev_y. A window maximized after leaving a now-disconnected monitor passed the check and was restored off-screen. * test(window-state): cover repeated size and position restores in e2e Restores each window three times, also with an overlay title bar, and checks the inner and outer size (or position) still match the first save, so drift between saving and restoring accumulates and fails the test. * chore(window-state): describe the restore fixes in the change file * chore(deps): update @crabnebula/test-runner-backend to 0.3.1 0.3.0 returns a new-session response that WebdriverIO 10 rejects as not W3C, so every macOS e2e spec failed to create a session. --------- Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Official Tauri Plugins
This repo and all plugins require a Rust version of at least 1.90
Plugins Found Here
| Win | Mac | Lin | iOS | And | ||
|---|---|---|---|---|---|---|
| autostart | Automatically launch your app at system startup. | ✅ | ✅ | ✅ | ❌ | ❌ |
| barcode-scanner | Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. | ? | ? | ? | ✅ | ✅ |
| biometric | Prompt the user for biometric authentication on Android and iOS. | ? | ? | ? | ✅ | ✅ |
| cli | Parse arguments from your Command Line Interface | ✅ | ✅ | ✅ | ❌ | ❌ |
| clipboard-manager | Read and write to the system clipboard. | ✅ | ✅ | ✅ | ✅ | ✅ |
| deep-link | Set your Tauri application as the default handler for an URL. | ✅ | ✅ | ✅ | ✅ | ✅ |
| dialog | Native system dialogs for opening and saving files along with message dialogs. | ✅ | ✅ | ✅ | ✅ | ✅ |
| fs | Access the file system. | ✅ | ✅ | ✅ | ? | ? |
| geolocation | Get and track current device position. | ? | ? | ? | ✅ | ✅ |
| global-shortcut | Register global shortcuts. | ✅ | ✅ | ✅ | ? | ? |
| haptics | Haptic feedback and vibrations. | ? | ? | ? | ✅ | ✅ |
| http | Access the HTTP client written in Rust. | ✅ | ✅ | ✅ | ✅ | ✅ |
| localhost | Use a localhost server in production apps. | ✅ | ✅ | ✅ | ? | ? |
| log | Configurable logging. | ✅ | ✅ | ✅ | ✅ | ✅ |
| nfc | Read and write NFC tags on Android and iOS. | ? | ? | ? | ✅ | ✅ |
| notification | Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. | ✅ | ✅ | ✅ | ✅ | ✅ |
| opener | Open files and URLs using their default application. | ✅ | ✅ | ✅ | ✅ | ✅ |
| os | Read information about the operating system. | ✅ | ✅ | ✅ | ✅ | ✅ |
| persisted-scope | Persist runtime scope changes on the filesystem. | ✅ | ✅ | ✅ | ? | ? |
| positioner | Move windows to common locations. | ✅ | ✅ | ✅ | ❌ | ❌ |
| process | This plugin provides APIs to access the current process. To spawn child processes, see the shell plugin. |
✅ | ✅ | ✅ | ? | ? |
| shell | Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. | ✅ | ✅ | ✅ | ? | ? |
| single-instance | Ensure a single instance of your tauri app is running. | ✅ | ✅ | ✅ | ❌ | ❌ |
| sql | Interface with SQL databases. | ✅ | ✅ | ✅ | ✅ | ✅ |
| store | Persistent key value storage. | ✅ | ✅ | ✅ | ✅ | ✅ |
| stronghold | Encrypted, secure database. | ✅ | ✅ | ✅ | ? | ? |
| torch | Control the device flashlight (torch) on Android and iOS. | ? | ? | ? | ✅ | ✅ |
| updater | In-app updates for Tauri applications. | ✅ | ✅ | ✅ | ❌ | ❌ |
| upload | Tauri plugin for file uploads through HTTP. | ✅ | ✅ | ✅ | ✅ | ✅ |
| websocket | Open a WebSocket connection using a Rust client in JS. | ✅ | ✅ | ✅ | ? | ? |
| window-state | Persist window sizes and positions. | ✅ | ✅ | ✅ | ❌ | ❌ |
- ✅: (Partially) Supported
- ❌: Not supported
?: Unknown/Untested or Planned
Contributing
PRs accepted. Please make sure to read the Contributing Guide before making a pull request.
Partners
|
|
For the complete list of sponsors please visit our website and Open Collective.
Languages
Rust
57%
TypeScript
25.4%
Kotlin
9.8%
Swift
5.5%
JavaScript
1.4%
Other
0.8%