KWin reads _NET_WM_STATE_SKIP_TASKBAR for its Alt+Tab list, which OW-2 already wired via skip_taskbar(true) on the builder. On Hyprland, Sway, and GNOME Mutter that's not always enough — some switchers still enumerate the overlay. Classifying the window as gdk::WindowTypeHint::Utility signals to the compositor that this is an assistive auxiliary surface, so switchers and auto-tilers leave it alone. No behavioural change on KWin. GTK3 only honours the type hint before the window maps, so the preview builder now starts .visible(false); we grab the gtk_window() via Tauri's escape hatch, set the hint, then show(). The existing hide/show on re-open still works — hint is a property of the gtk::ApplicationWindow and survives the cycle. Added gtk = "0.18" and gdk = "0.18" as Linux-only deps. Both are already pulled in transitively via webkit2gtk 2.0, so this is just surfacing them by name — no new compile cost. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
54 lines
1.6 KiB
TOML
54 lines
1.6 KiB
TOML
[package]
|
|
name = "kon"
|
|
version = "0.1.0"
|
|
description = "Kon — Think out loud"
|
|
authors = ["CORBEL Ltd"]
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
name = "kon_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
# Workspace crates
|
|
kon-core = { path = "../crates/core" }
|
|
kon-audio = { path = "../crates/audio" }
|
|
kon-transcription = { path = "../crates/transcription" }
|
|
kon-ai-formatting = { path = "../crates/ai-formatting" }
|
|
kon-storage = { path = "../crates/storage" }
|
|
kon-cloud-providers = { path = "../crates/cloud-providers" }
|
|
kon-hotkey = { path = "../crates/hotkey" }
|
|
kon-llm = { path = "../crates/llm" }
|
|
|
|
# Tauri
|
|
tauri = { version = "2", features = ["tray-icon"] }
|
|
tauri-plugin-opener = "2"
|
|
tauri-plugin-dialog = "2"
|
|
tauri-plugin-global-shortcut = "2"
|
|
tauri-plugin-updater = "2"
|
|
|
|
# Serialisation
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
|
|
# Async runtime (spawn_blocking for inference)
|
|
tokio = { version = "1", features = ["rt", "sync"] }
|
|
arboard = "3.6.1"
|
|
|
|
# SqlitePool is named directly from src-tauri/src/lib.rs (the AppState
|
|
# stores it). Must be unconditional, not Linux-only — naming a type from
|
|
# a transitive dep requires the dep be listed here too.
|
|
sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] }
|
|
uuid = { version = "1", features = ["v4"] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
webkit2gtk = "2.0"
|
|
# Needed for setting the preview overlay's WindowTypeHint to Utility via
|
|
# the Tauri gtk_window() escape hatch. Versions track what webkit2gtk 2.0
|
|
# transitively depends on (GTK 3).
|
|
gtk = "0.18"
|
|
gdk = "0.18"
|