tauri-plugin-positioner 0.2.0

Helps positioning your tauri windows.
Documentation
# Tauri plugin positioner

[![Crates.io][crates-badge]][crates-url]
[![Documentation][docs-badge]][docs-url]
[![MIT licensed][mit-badge]][mit-url]

[crates-badge]: https://img.shields.io/crates/v/tauri-plugin-positioner.svg
[crates-url]: https://crates.io/crates/tauri-plugin-positioner
[docs-badge]: https://img.shields.io/docsrs/tauri-plugin-positioner.svg
[docs-url]: https://docs.rs/tauri-plugin-positioner
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: LICENSE

A plugin for tauri that helps positioning you windows at well known locations.

This plugin is a port of [electron-positioner](https://github.com/jenslind/electron-positioner) for [tauri](https://tauri.studio).

## Install

### Rust

```toml
[dependencies]
tauri-plugin-positioner = "0.1"
```

### JavaScript

```
npm install github:JonasKruckenberg/tauri-plugin-positioner
# or
yarn add github:JonasKruckenberg/tauri-plugin-positioner
```

## Usage

You need to register the plugin first:

```rust
use tauri_plugin_positioner::{Positioner, Position};

fn main() {
    tauri::Builder::default()
        .plugin(Positioner::default())
        .build()
        .run();
}
```

Now you can import the JavaScript API package and move to window:

```javascript
import { move_window, Position } from 'tauri-plugin-positioner-api'

move_window(Position.TopRight)
```

### Rust only

If you only intend on moving the window from rust code, you can just import the `Window` trait extension instead of registering the plugin:

> Note: `Window.move_window` method must be called from a different thread!

```rust
use tauri_plugin_positioner::{WindowExt, Position};

fn main() {
    tauri::Builder::default()
        .setup(|app| {
          let mut win = app.get_window("main").unwrap();
      
          // Call this method from a different thread
          tauri::async_runtime::spawn(async move {
            let _ = win.move_window(Position::TopRight);
          });
          
          Ok(())
        })
        .build()
        .run();
}
```

## Contributing

PRs are welcome!

## License

[MIT © Jonas Kruckenberg](./LICENSE)