Qt apps override default window border style defined in i3 config file?

Has anyone noticed recently that Qt applications will automatically be given title bars even though default_border pixel 2 is set inside i3’s config file?



The only way to make the title bar disappear is by adding a for_window directive inside the config file. This was never needed before the latest update.


yeah i’ve noticed this as well after an update a couple days ago

1 Like

Yes, and not only for Qt stuff. Something broke in i3-gaps 4.21-1 - default_border pixel 1 and default_floating_border pixel 1 does not work any more.
Fortunately the same behaviour could be replicated with another function

for_window [class="^.*"] border pixel 1

What do the release notes say about new changes?

i see it also now … not using many qt apps … almost zero …

fixed it for me !

should i add it to the default eos setup configs ?

I am not sure since the official i3wm documentation still states default_borders parameter as valid. I expect this is just a bug that will be fixed β€œsoon”.
But my opinion has no weight here since I do not use default eos setup for quite some time. :smile:

i do not use it too… only on testing it… but i do not test it against every possible usecase… l


The release notes made no mention about this new behaviour.

 β”‚ Release notes for i3 v4.21   β”‚

This is i3 v4.21. This version is considered stable. All users of i3 are
strongly encouraged to upgrade.

The biggest change in this release is that you can now drag tiling windows
with your mouse (floating windows could already be dragged). For more details
on how to use this feature, please refer to the userguide:


A big thank you goes out to our core i3 developer Orestis Floros who made this
feature possible, based on previous work from Michael Forster and Tony Crisci!

 β”‚ Changes in i3 v4.21        β”‚

  β€’ Allow dragging tiling windows with the mouse
  β€’ Add client.focused_tab_title color option
  β€’ Add support for multiple output names in the focus command,
    allowing users to cycle focus between e.g. VGA1 and LVDS1 but not DVI0.
  β€’ Add a toggle option to the title_window_icon command
  β€’ i3 switched from the obsolete PCRE 8.x regular expression matching
    library to the current PCRE2 10.x version.

 β”‚ Bugfixes                   β”‚

  β€’ docs/ipc: document all window_type values
  β€’ docs/userguide: clarify the difference between the β€œworkspace N” and
    β€œworkspace number N” commands
  β€’ i3bar: fix default font not being applied to bars if defined after bar block
  β€’ i3-dmenu-desktop: add backslashes for the exec command,
    which fixes opening some .desktop files (e.g. electrum)
  β€’ i3-sensible-pager: sanitize LESS environment variable to remove -E or -F
  β€’ testsuite: catch i3 crashes instead of hanging on crash
  β€’ Fix logging on machines with 256 GB of RAM
  β€’ Do not replace existing IPC socket on start, to prevent clobbering
    the IPC socket when running i3 within i3 (e.g. in Xepyhr, for development)
  β€’ Refuse to start without a valid IPC socket
  β€’ Fix focus when moving container between outputs with mouse warp and
  β€’ Fix endless loop with transient_for windows
  β€’ Fix wrong β€œfailed” IPC reply on move workspace to output
  β€’ Fix WM registration selection (from WM_S_S<screen> to WM_S<screen>)
  β€’ avoid graphics artifacts when changing the layout tree by
    initializing surfaces to all black
  β€’ update parent split con titles when child container swaps position with
    another child container
  β€’ Fix segfault if command in bindsym is empty
  β€’ Fix segfault with explicit mode "default" key bindings
  β€’ Fix crash if config contains nested variables.
  β€’ strip trailing whitespace in bar output names
  β€’ Fix crash with long commands
  β€’ Fix changing borders by restoring BS_NORMAL _MOTIF_WM_HINTS correctly

 β”‚ Thanks!                    β”‚

Thanks for testing, bugfixes, discussions and everything I forgot go out to:

AndrΓ© Silva, Anton Γ„lgmyr, Baptiste Daroussin, bodea, Chris Templin, George
Rodrigues, Gergely Risko, Ingo BΓΌrk, Jakob Haufe, Jay Ta'ala, Jeff Smith, Jonta,
Josh Soref, Kjetil Torgrim Homme, lycurgus, mariano, Michael Forster, Orestis
Floros, paperluigis, Peder Stray, rvalieris, sergio, Tony Crisci, takelley1, Uli
Schlachter, viri, zhiv-git, zhrvn

-- Michael Stapelberg, 2021-10-19
1 Like

for i3-gaps ? :slight_smile:

there is a line in readme

1 Like

Indeed. Although this is something that should be done using default_border pixel 1. I don’t see why an intervention is needed when that line is already inside the config.

In any case, I just checked i3’s github page. The issue is a bug, and they are working on a fix.

i dont know i3-gaps is a fork as from the docs it is different what they mentioned there too.

Note: In order to use gaps you need to disable window titlebars. This can be done by adding the following line to your config.

# You can also use any non-zero value if you'd like to have a border
for_window [class=".*"] border pixel 0

hmm sounds like it should be in the config… bit if needed why it is not set per default already …