Skip to content

[bug] v2 regresses window manager control of decorations/titlebar #14748

@OJFord

Description

@OJFord

Describe the bug

In my sway (window manager) config I have:

default_border pixel 1

which gives all windows a 1 pixel border all around; no titlebar.

Throughout Tauri v1, and in 2.0.0-beta.17, this worked in my Tauri app as in any other.

After some neglect I've just moved to v2 stable, straight to 2.9.5, and in order to retain no titlebar I need:

   "windows": [
      {
        "decorations": false,

in my tauri.conf.json.

But this is not the behaviour I want generally, it's just how my own system happens to be configured, for all windows. I don't want to bake that preference into my app, especially for the main window where people might not know (or have) a way to close it with no titlebar.

And it's not something I can find mentioned as a deliberate/known breaking change?

Reproduction

  • No windows.decorations key in tauri.conf.json
  • A window manager configured not to show title bars, such as sway's default_border pixel 1

OJFord/amail@3826dfa

Expected behavior

No titlebar

Full tauri info output


[✔] Environment
    - OS: Arch Linux Unknown x86_64 (X64) (Unknown DE on wayland)
    ✔ webkit2gtk-4.1: 2.50.4
    ✔ rsvg2: 2.61.3
    ✔ rustc: 1.85.0 (4d91de4e4 2025-02-17)
    ✔ cargo: 1.85.0 (d73d2caf9 2024-12-31)
    ✔ rustup: 1.28.2 (2025-12-16)
    ✔ Rust toolchain: stable-x86_64-unknown-linux-gnu (overridden by environment variable RUSTUP_TOOLCHAIN)
    - node: 22.21.1
    - yarn: 1.22.22
    - npm: 11.7.0

[-] Packages
    - tauri 🦀: 2.9.5
    - tauri-build 🦀: 2.5.3
    - wry 🦀: 0.53.5
    - tao 🦀: 0.34.5
    - tauri-cli 🦀: 2.9.6
    - @tauri-apps/api  ⱼₛ: 2.9.1
    - @tauri-apps/cli  ⱼₛ: 2.9.6

[-] Plugins
    - tauri-plugin-dialog 🦀: 2.5.0
    - @tauri-apps/plugin-dialog  ⱼₛ: 2.5.0
    - tauri-plugin-shell 🦀: 2.3.4
    - @tauri-apps/plugin-shell  ⱼₛ: 2.3.4
    - tauri-plugin-fs 🦀: 2.4.5
    - @tauri-apps/plugin-fs  ⱼₛ: 2.4.5

[-] App
    - build-type: bundle
    - CSP: style-src 'unsafe-inline' tauri:; connect-src ipc://localhost data:; default-src blob: data: filesystem: tauri: 'self'
    - frontendDist: ../dist
    - devUrl: http://localhost:42411/
    - framework: Svelte
    - bundler: Vite

Stack trace


Additional context

Linux 6.18.3-arch1-1

Metadata

Metadata

Assignees

No one assigned

    Labels

    platform: Linuxstatus: needs triageThis issue needs to triage, applied to new issuesstatus: upstreamThis issue is blocked by upstream dependencies and we need to wait or contribute upstream fixestype: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions