This plugin helps you set a custom inset for the window controls on macOS. Currently only for Tauri v1.*
This is done without any visible artifacts on resize.
Using the command line from crates.io:
$ cargo add tauri-plugin-trafficlights-positioner
Or add it manually to Cargo.toml
:
[target.'cfg(target_os = "macos")'.dependencies]
tauri-plugin-trafficlights-positioner = "1.0.0"
Or get the latest using git:
[target.'cfg(target_os = "macos")'.dependencies]
tauri-plugin-trafficlights-positioner = { git = "https://github.com/ItsEeleeya/tauri-plugin-trafficlights-positioner/" }
fn main() {
tauri::Builder::default()
.setup(move |app| {
if let Some(window) = app.get_window("main") {
#[cfg(target_os = "macos")]
// NOTE: Make sure you only call this ONCE per window.
let _ = window.setup_traffic_lights_inset(LogicalPosition::new(20.0, 24.0));
};
Ok(())
})
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
If you need extra customization (especially for Windows) use clearlysid/tauri-plugin-decorum
Almost all credits for positioner.rs
goes to @haasal, @charrondev and Hoppscotch
This is also similar to how it is implemented in the Zed editor.
Original Tauri Issue: tauri-apps/tauri#4789
(Gist) https://gist.github.com/charrondev/43150e940bd2771b1ea88256d491c7a9