Open Perlovka opened 4 years ago
Do you know if it worked in v4.3? There is 3 changes that come to my mind that touched this code.
Another way it can happen is if you have code that messed with the border_width in client "manage" callbacks.
Yes, from 4.3 and till c10bdc3cfec1c86b11eb929f5e2564babade8206 it works as expected. This was introduced with 04c757322c079a8b9f13a51d0dc4c37e5a5b7965, as I said. The only code I have with border_width - some definitions in rules, nothing in callbacks:
~/.config/awesome $ grep -r border_width | grep -v '\--'
themes/default/theme.lua:theme.border_width = dpi(1)
widgets/volume.lua: border_width = 1,
widgets/volume.lua: handle_border_width = 1,
rc_rules.lua: border_width = beautiful.border_width,
rc_rules.lua: { rule_any = { class = { "exefile.exe" }}, properties = { titlebars_enabled = false, screen = 1, border_width = 0 }},
rc_rules.lua: { rule = { instance = "explorer.exe" }, properties = { titlebars_enabled = false, border_width = 0, floating = true }},
Oh, I have the same issue. Is anyone working on it?
It is possible to fix this by adding
awful.titlebar(c, {size = 22})
if c.maximized then
c.height = c.height - 22
end
At the end of this function https://awesomewm.org/apidoc/documentation/05-awesomerc.md.html#Titlebars I.e. set titlebar height and recalculate client height
So the problem is that client placement is done before request::titlebars is emitted. Creating titlebar should emit some signal to repair geometry, like
awful/permissions/init.lua:client.connect_signal("property::border_width" , repair_geometry)
or placement should be done after creating titlebar.
This is a trace of maximized client upon restart:
client.connect_signal("property::geometry", function(c)
if c.window == 29360878 then
require("gears.debug").dump{
window_id = c.window,
client = c,
geometry = c:geometry(),
traceback = debug.traceback()
}
end
end)
table: 0x7f28e0264a30
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:288: in function </home/perlovka/.config/awesome/rc.lua:282> (string)
window_id : 29360878 (number)
geometry : table: 0x7f28e02650d0
y : 0 (number)
height : 1029 (number)
width : 1920 (number)
x : 1920 (number)
client : window/client(): 0x7f28d3eafe78 (client)
table: 0x7f28e0043590
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:288: in function </home/perlovka/.config/awesome/rc.lua:282>
[C]: in function 'geometry'
/usr/share/awesome/lib/awful/placement.lua:406: in function 'area_common'
/usr/share/awesome/lib/awful/placement.lua:446: in function 'geometry_common'
/usr/share/awesome/lib/awful/placement.lua:1603: in function </usr/share/awesome/lib/awful/placement.lua:1583>
/usr/share/awesome/lib/awful/permissions/init.lua:421: in function </usr/share/awesome/lib/awful/permissions/init.lua:365> (string)
window_id : 29360878 (number)
geometry : table: 0x7f28e0054f88
y : 0 (number)
height : 1050 (number)
width : 1920 (number)
x : 1920 (number)
client : window/client((333) Как отлÐ...): 0x7f28d3eafe78 (client)
table: 0x7f28e0035670
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:288: in function </home/perlovka/.config/awesome/rc.lua:282>
[C]: at 0x556df1c700c0
/usr/share/awesome/lib/awful/titlebar.lua:820: in function 'titlebar'
/home/perlovka/.config/awesome/rc.lua:249: in function </home/perlovka/.config/awesome/rc.lua:236>
[C]: in function 'emit_signal'
/usr/share/awesome/lib/ruled/client.lua:671: in function '_execute'
/usr/share/awesome/lib/gears/matcher.lua:649: in function 'apply'
/usr/share/awesome/lib/ruled/client.lua:303: in function </usr/share/awesome/lib/ruled/client.lua:302> (string)
window_id : 29360878 (number)
geometry : table: 0x7f28e23fdbe0
y : 0 (number)
height : 1071 (number)
width : 1920 (number)
x : 1920 (number)
client : window/client((333) Как отлÐ...): 0x7f28d3eafe78 (client)
But not maximized window does not call placement.lua at all and the size is ok.... Strange.
table: 0x7f7508dc6228
window_id : 29360878 (number)
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:291: in function </home/perlovka/.config/awesome/rc.lua:285> (string)
client : window/client(): 0x7f7508dc59a8 (client)
geometry : table: 0x7f7508dc62d8
width : 1900 (number)
height : 1009 (number)
x : 1926 (number)
y : 6 (number)
table: 0x7f7508dcb5a0
window_id : 29360878 (number)
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:291: in function </home/perlovka/.config/awesome/rc.lua:285>
[C]: at 0x564af16990c0
/usr/share/awesome/lib/awful/titlebar.lua:820: in function 'titlebar'
/home/perlovka/.config/awesome/rc.lua:249: in function </home/perlovka/.config/awesome/rc.lua:236>
[C]: in function 'emit_signal'
/usr/share/awesome/lib/ruled/client.lua:671: in function '_execute'
/usr/share/awesome/lib/gears/matcher.lua:649: in function 'apply'
/usr/share/awesome/lib/ruled/client.lua:303: in function </usr/share/awesome/lib/ruled/client.lua:302> (string)
client : window/client((337) Как отлÐ...): 0x7f7508dc59a8 (client)
geometry : table: 0x7f7508dcb650
width : 1900 (number)
height : 1030 (number)
x : 1926 (number)
y : 6 (number)
Also, when toggling titlebar with hotkeys, non-maximized window gets resized, so client size remains the same. Maximized window is not being resized, so client becomes bigger or smaller. I mean outer dimensions of visible window.
Non-maximized:
table: 0x7fbe80a2d7a8
window_id : 29360878 (number)
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:291: in function </home/perlovka/.config/awesome/rc.lua:285>
[C]: at 0x56044fb5b0c0
/usr/share/awesome/lib/awful/titlebar.lua:820: in function 'new'
/usr/share/awesome/lib/awful/titlebar.lua:891: in function 'show'
/usr/share/awesome/lib/awful/titlebar.lua:918: in function 'toggle'
/home/perlovka/.config/awesome/rc_bindings.lua:228: in function 'on_press'
/usr/share/awesome/lib/awful/key.lua:338: in function </usr/share/awesome/lib/awful/key.lua:333> (string)
client : window/client((338) Как отлÐ...): 0x7fbe8c8db068 (client)
geometry : table: 0x7fbe80a2d858
width : 1900 (number)
x : 1926 (number)
y : 6 (number)
height : 529 (number)
table: 0x7fbe809f0b08
window_id : 29360878 (number)
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:291: in function </home/perlovka/.config/awesome/rc.lua:285>
[C]: in function 'geometry'
/usr/share/awesome/lib/awful/layout/init.lua:267: in function </usr/share/awesome/lib/awful/layout/init.lua:255>
[C]: in function 'xpcall'
/usr/share/awesome/lib/gears/protected_call.lua:41: in function 'protected_call'
/usr/share/awesome/lib/awful/layout/init.lua:255: in function </usr/share/awesome/lib/awful/layout/init.lua:245>
[C]: in function 'xpcall'
/usr/share/awesome/lib/gears/protected_call.lua:41: in function 'protected_call'
/usr/share/awesome/lib/gears/timer.lua:280: in function </usr/share/awesome/lib/gears/timer.lua:278> (string)
client : window/client((338) Как отлÐ...): 0x7fbe8c8db068 (client)
geometry : table: 0x7fbe809f0bb8
width : 1900 (number)
x : 1926 (number)
y : 6 (number)
height : 508 (number)
table: 0x7fbe80a00f90
window_id : 29360878 (number)
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:291: in function </home/perlovka/.config/awesome/rc.lua:285>
[C]: at 0x56044fb5b0c0
/usr/share/awesome/lib/awful/titlebar.lua:902: in function 'hide'
/usr/share/awesome/lib/awful/titlebar.lua:920: in function 'toggle'
/home/perlovka/.config/awesome/rc_bindings.lua:228: in function 'on_press'
/usr/share/awesome/lib/awful/key.lua:338: in function </usr/share/awesome/lib/awful/key.lua:333> (string)
client : window/client((338) Как отлÐ...): 0x7fbe8c8db068 (client)
geometry : table: 0x7fbe80a01040
width : 1900 (number)
x : 1926 (number)
y : 6 (number)
height : 487 (number)
table: 0x7fbe80a03da0
window_id : 29360878 (number)
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:291: in function </home/perlovka/.config/awesome/rc.lua:285>
[C]: in function 'geometry'
/usr/share/awesome/lib/awful/layout/init.lua:267: in function </usr/share/awesome/lib/awful/layout/init.lua:255>
[C]: in function 'xpcall'
/usr/share/awesome/lib/gears/protected_call.lua:41: in function 'protected_call'
/usr/share/awesome/lib/awful/layout/init.lua:255: in function </usr/share/awesome/lib/awful/layout/init.lua:245>
[C]: in function 'xpcall'
/usr/share/awesome/lib/gears/protected_call.lua:41: in function 'protected_call'
/usr/share/awesome/lib/gears/timer.lua:280: in function </usr/share/awesome/lib/gears/timer.lua:278> (string)
client : window/client((338) Как отлÐ...): 0x7fbe8c8db068 (client)
geometry : table: 0x7fbe80a03e50
width : 1900 (number)
x : 1926 (number)
y : 6 (number)
height : 508 (number)
Maximized:
table: 0x7fbe807f8890
window_id : 29360878 (number)
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:291: in function </home/perlovka/.config/awesome/rc.lua:285>
[C]: at 0x56044fb5b0c0
/usr/share/awesome/lib/awful/titlebar.lua:820: in function 'new'
/usr/share/awesome/lib/awful/titlebar.lua:891: in function 'show'
/usr/share/awesome/lib/awful/titlebar.lua:918: in function 'toggle'
/home/perlovka/.config/awesome/rc_bindings.lua:228: in function 'on_press'
/usr/share/awesome/lib/awful/key.lua:338: in function </usr/share/awesome/lib/awful/key.lua:333> (string)
client : window/client((338) Как отлÐ...): 0x7fbe8c8db068 (client)
geometry : table: 0x7fbe807f8940
width : 1920 (number)
x : 1920 (number)
y : 0 (number)
height : 1071 (number)
table: 0x7fbe8080d6b8
window_id : 29360878 (number)
traceback : stack traceback:
/home/perlovka/.config/awesome/rc.lua:291: in function </home/perlovka/.config/awesome/rc.lua:285>
[C]: at 0x56044fb5b0c0
/usr/share/awesome/lib/awful/titlebar.lua:902: in function 'hide'
/usr/share/awesome/lib/awful/titlebar.lua:920: in function 'toggle'
/home/perlovka/.config/awesome/rc_bindings.lua:228: in function 'on_press'
/usr/share/awesome/lib/awful/key.lua:338: in function </usr/share/awesome/lib/awful/key.lua:333> (string)
client : window/client((338) Как отлÐ...): 0x7fbe8c8db068 (client)
geometry : table: 0x7fbe8080d768
width : 1920 (number)
x : 1920 (number)
y : 0 (number)
height : 1050 (number)
awesome v4.3-735-g002ecfd4-dirty (Too long) • Compiled against Lua 5.1.5 (running with LuaJIT 2.1.0-beta3) • API level: 4 • D-Bus support: yes • xcb-errors support: no • execinfo support: yes • xcb-randr version: 1.6 • LGI version: 0.9.2 • Transparency enabled: yes • Custom search paths: no
Hi, with current master I have an issue with maximized windows, New maximized client (like firefox or chrome) size is calculated wrong, so window overlaps my bottom panel. This also happens with all maximized clients upon awesome restart.
Unmaximize and maximize does fix window size.
This behavior was introduced with https://github.com/awesomeWM/awesome/commit/04c757322c079a8b9f13a51d0dc4c37e5a5b7965
Here is my config: rc.lua.txt rc_rules.lua.txt