Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

workaround for borderless #540

Closed
i3bot opened this issue Oct 16, 2011 · 10 comments
Closed

workaround for borderless #540

i3bot opened this issue Oct 16, 2011 · 10 comments
Assignees
Labels

Comments

@i3bot
Copy link

i3bot commented Oct 16, 2011

[Originally reported by motif]
(New ticket created for the borderless problem/workaround described in ticket #535.

To produce the problems:

  1. in i3 config, use for_window [class="urxvt"] border none.
    [unrelated:
    i3 doesn't seem to be handling some window hints from urxvt correctly]
  2. use URxvt*inheritPixmap: true in .Xdefaults for enabling pseudo-transparency.
  3. in i3, open up multiple urxvt instances, you will see the border gap filled
    with background color, in attached example, black.

Attached i3log and screenshot.
Agreed with the comments about width/height_increment.
#535 history below:

b) When using for_window [class="<any terminal>"] border none, it doesn't really result in borderless window. Instead, width_increment and height_increment have caused a 'hidden border' being drawn with background color, as such, pseudo-transparency failed in the border area.

    What are the usages and significance of width_increment and height_increment?
    Current workaround: comment out code associated with usage of the two variables with pre-configured values.

They are used for terminals where incrementing the size does only make sense if you increment by one character (width) or one line (height). Some other programs also use that (for example GIMP). Commenting this out is not a solution. Please create a separate ticket for this problem with detailed steps on how to reproduce it (and screenshots).

@i3bot
Copy link
Author

i3bot commented Oct 16, 2011

[Original comment by motif]

couldn't add i3log since it's generally larger than 1 MB

@stapelberg
Copy link
Member

This is pretty much by design (of the implementation). I guess an acceptable way of achieving the wanted behaviour is to configure the window (in case it is borderless) to use less space than it normally would.

I will look into this, but not before the release of 4.1.

@stapelberg
Copy link
Member

-ETIME, moving to 4.3

@i3bot
Copy link
Author

i3bot commented Apr 6, 2012

[Original comment by motif]

saw 4.1 has quite # of enhancement and bug fixes, particularly like the floating windows focus capability and looks like the problems with properly vertical/horizontal split are resolved?....
but still looking for borderless support, probably would wait for upgrade until this feature is there... :)

really like i3's performance btw, simple, clean, fully flexible and not bloated at all.... (though haven't tried 4.1.x yet)

@i3bot
Copy link
Author

i3bot commented Aug 30, 2012

[Original comment by klaas@…]

I attached a patch with a new command which can solve this issue:
As urxvt can actually handle width/height that are not "correct" with regard to *_increment by filling the space itself, we can actually ignore the size increment hints it sets and get a better results. To enable this in the configuration I added a command: "sizehints increment disable|enable|toggle".
This use case could be fixed like so: for_window [class="URxvt"] sizehints increment disable

There are some things I'm not entirely happy with:

  • It has no effect on containers that have no window, but subcontainers: Should the command affect all leaf window containers?
  • I'm not sure I correctly forced a redraw of that container, or if I should.

@stapelberg
Copy link
Member

Hey klaas,

Thanks for working on this. I’ve looked at your patch and while it works, I’m not very happy with it. Introducing a new command to work around things like that is really not worth it and I’d like to avoid cluttering i3 with X11 workarounds.

Instead, how about the following course of action? I’ve read that Openbox 3.4 does not honor the size increments in fullscreen mode (see http://openbox.org/wiki/Help:Upgrading_to_3.4#Maximized_terminal_windows) and that at least urxvt, xterm and gnome-terminal cope with that just fine (I additionally tested ROXterm, which also works). Openbox 3.4 was released several years ago and they still do it that way, so it can’t horribly break things.

Therefore, I suggest we just don’t honor resize increment hints in tiling mode ever (but for floating windows, like GIMP toolbars, which rely on it). What do you think?

Best regards,
Michael

@i3bot
Copy link
Author

i3bot commented Sep 5, 2012

[Original comment by anonymous]

That would be perfect. I did not dare suggest that and didn't know that Openbox does it. In my opinion size increment hints are very much tied to a floating layout and there's no satisfying way to handle them in a tiling mode - except letting the application handle the extra space.
So I'm very much in favor of handling it that way.

@stapelberg
Copy link
Member

I’ve posted to the mailing list, unless any good reason comes up for NOT doing it, i3 v4.3 will ignore size increment hints.

@stapelberg
Copy link
Member

This ticket was fixed in commit http://c.i3wm.org/40b12c0a:
Remove support for resize increment size hints for tiling windows

As discussed on the mailing list and the bugtracker.

fixes #540

@i3bot
Copy link
Author

i3bot commented Dec 1, 2014

[Original comment by Robert.Siemer-i3wm.org@…]

You asked for reasons to honor size increment hints some time ago. I’m surprised no-one spoke up yet.

i3 is all about screen space: If I have a terminal (or two: one above the other) next to a browser, I would like to snap to a size (when resizing with a mouse) where I lose no space in the terminal(s) which I could use better in the browser. When resizing “in steps” with the keyboard jumping to a point in this grid would be nice sometimes, too.

If there are competing increments, ignoring them all together is a good first approach.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants