Posicionador
Posiciona tus ventanas en ubicaciones bien conocidas.
Este plugin es un port de electron-positioner para Tauri.
Plataformas Soportadas
Sección titulada “Plataformas Soportadas”Este plugin requiere una versión de Rust de al menos 1.77.2
| Plataforma | Nivel | Notas |
|---|---|---|
| windows | ||
| linux | ||
| macos | ||
| android | ||
| ios |
Configuración
Sección titulada “Configuración”Instala el plugin positioner para comenzar.
Usa el gestor de paquetes de tu proyecto para agregar la dependencia:
npm run tauri add positioneryarn run tauri add positionerpnpm tauri add positionerdeno task tauri add positionerbun tauri add positionercargo tauri add positioner-
Ejecuta el siguiente comando en la carpeta
src-tauripara agregar el plugin a las dependencias del proyecto enCargo.toml:cargo add tauri-plugin-positioner --target 'cfg(any(target_os = "macos", windows, target_os = "linux"))' -
Modifica
lib.rspara inicializar el plugin:src-tauri/src/lib.rs #[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() {tauri::Builder::default().setup(|app| {#[cfg(desktop)]app.handle().plugin(tauri_plugin_positioner::init());Ok(())}).run(tauri::generate_context!()).expect("error while running tauri application");} -
Instala los bindings de JavaScript utilizando tu gestor de paquetes de JavaScript preferido:
npm install @tauri-apps/plugin-positioneryarn add @tauri-apps/plugin-positionerpnpm add @tauri-apps/plugin-positionerdeno add npm:@tauri-apps/plugin-positionerbun add @tauri-apps/plugin-positioner
Se requiere una configuración adicional para que funcionen las posiciones relativas a la bandeja (tray).
-
Añade la característica
tray-icona tu archivoCargo.toml:src-tauri/Cargo.toml [dependencies]tauri-plugin-positioner = { version = "2.0.0", features = ["tray-icon"] } -
Configura
on_tray_eventpara el plugin positioner:src-tauri/src/lib.rs pub fn run() {tauri::Builder::default()// This is required to get tray-relative positions to work.setup(|app| {#[cfg(desktop)]{app.handle().plugin(tauri_plugin_positioner::init());tauri::tray::TrayIconBuilder::new().on_tray_icon_event(|tray_handle, event| {tauri_plugin_positioner::on_tray_event(tray_handle.app_handle(), &event);}).build(app)?;}Ok(())}).run(tauri::generate_context!()).expect("error while running tauri application");}
Las APIs del plugin están disponibles a través de los bindings guest de JavaScript:
import { moveWindow, Position } from '@tauri-apps/plugin-positioner';// when using `"withGlobalTauri": true`, you may use// const { moveWindow, Position } = window.__TAURI__.positioner;
moveWindow(Position.TopRight);Puedes importar y usar la extensión del trait Window directamente mediante Rust:
use tauri_plugin_positioner::{WindowExt, Position};
let mut win = app.get_webview_window("main").unwrap();let _ = win.as_ref().window().move_window(Position::TopRight);Permisos
Sección titulada “Permisos”De forma predeterminada, todos los comandos y alcances (scopes) potencialmente peligrosos del plugin están bloqueados y no se puede acceder a ellos. Debes modificar los permisos en tu configuración de capabilities para habilitarlos.
Consulta la Visión General de Capacidades para obtener más información y la guía paso a paso para usar permisos de plugins.
{ "permissions": [ ..., "positioner:default", ]}Permiso Predeterminado
Permite las APIs moveWindow y handleIconState
Este conjunto de permisos predeterminado incluye lo siguiente:
allow-move-windowallow-move-window-constrainedallow-set-tray-icon-state
Tabla de Permisos
| Identificador | Descripción |
|---|---|
|
|
Habilita el comando move_window sin ningún scope preconfigurado. |
|
|
Deniega el comando move_window sin ningún scope preconfigurado. |
|
|
Habilita el comando move_window_constrained sin ningún scope preconfigurado. |
|
|
Deniega el comando move_window_constrained sin ningún scope preconfigurado. |
|
|
Habilita el comando set_tray_icon_state sin ningún scope preconfigurado. |
|
|
Deniega el comando set_tray_icon_state sin ningún scope preconfigurado. |
© 2026 Colaboradores de Tauri. CC-BY / MIT