Hi, as many of you might have noticed, terminal emulators such as urxvt set an X11 hint for getting resized only in increments of a specific size (for example in increments of 13 px, if one line in your font size is 13 px high).
Oftentimes, the available space cannot be evenly divided by the resize increment hint, and therefore you get little borders at the bottom or right of a window. Until now, we thought that this is just the way it is, but it turns out that all terminal emulators I have tested (urxvt, xterm, gnome-terminal, ROXterm) cope with whatever size one assigns them, that is, they still work if i3 entirely ignores the size increment hint. As I’ve mentioned in http://bugs.i3wm.org/query/ticket/540#comment:7, Openbox ignores the size increment hint when windows are in fullscreen for several years and that seems to work just fine. Therefore, I’m announcing that we will ignore size increment hints for tiling windows (NOT for floating windows such as GIMP toolbar windows) in i3 4.3 UNLESS somebody has a good reason against that. In case you have a good reason against it, please tell me/us ASAP. In case you want to test whether your favorite terminal emulator still works fine, apply ignore-size-increment-hints.patch (attached) and check. In case you test one which was not mentioned in this thread before, feel free to post your results. Best regards, Michael
diff --git i/src/handlers.c w/src/handlers.c index 0d087e7..ed65bc9 100644 --- i/src/handlers.c +++ w/src/handlers.c @@ -723,6 +723,7 @@ static bool handle_normal_hints(void *data, xcb_connection_t *conn, uint8_t stat } bool changed = false; +#if 0 if ((size_hints.flags & XCB_ICCCM_SIZE_HINT_P_RESIZE_INC)) { if (size_hints.width_inc > 0 && size_hints.width_inc < 0xFFFF) if (con->width_increment != size_hints.width_inc) { @@ -738,6 +739,7 @@ static bool handle_normal_hints(void *data, xcb_connection_t *conn, uint8_t stat if (changed) DLOG("resize increments changed\n"); } +#endif int base_width = 0, base_height = 0;