baskerville / bspwm

A tiling window manager based on binary space partitioning
BSD 2-Clause "Simplified" License
7.77k stars 415 forks source link

feature: border_width _{north,south,east,west} #606

Open quite opened 7 years ago

quite commented 7 years ago

It would be cool to be able to adjust border width individually on each side of the window. Would probably have to be accompanied with windowgap {n,s,e,w} as well, for correctly achieving collapsed borders. Edited: ...and {normal,active,focused} _{n,s,e,w}_border_color for completeness :]

One could for example just let window have a northern title border. Or perhaps have a southern 2-pixel border (in addition to a 1-pixel overall) to better highlight the focused window.

AtzeDeVries commented 7 years ago

i was just thinking of creating this feature request, so +2

baskerville commented 7 years ago

XCB only provides a simple function for setting the border width.

quite commented 7 years ago

Wow, so that's a hard limit. I'm unfortunately not familiar with XCB, and only a little Xlib. I guess this is somehow a limit, given how bspwm does things. But other WMs may draw a taller title bar on a window (client), and I assume they use some other method. Or is Xlib required for that? Those title bars ought to be drawn by the WM right...

neeasade commented 7 years ago

From what I understand typically WMs that draw titlebars are reparenting WMs. Usually this means that they adopt all windows and put them into a frame that they control (where they draw the title bars), so from X's perspective it's still 'windows' it's just that the windows are actually WM frames that draw titles and control internal dimensions of the application window. This issue is independent of Xlib/xcb. bspwm is not a reparenting WM (as that would add complexity and remove the ability to do things like wmutils w/ bspwm). I've seen some people fake title bars with lemonbar across the top of their windows in bspwm previously, and presumably you could do that cleaner now with receptacles (make one at the top of nodes with titlebars).

quite commented 7 years ago

Ah. I do know of the concept of re-parenting, but I was somehow sure of bspwm being such. katriawm, https://github.com/vain/katriawm is able to draw title bar, but it seems to be Xlib, which then makes this possible?

quite commented 7 years ago

http://lists.suckless.org/dev/1410/23848.html was enlighting

neeasade commented 7 years ago

So you see the issue then? how his implementation of decorations adds a hack using shape?

quite commented 7 years ago

Yes, and I guess that's the same hack he is using in katriawm (on the suckless list it was for his dwm-vain hack). But I sent an email to him asking...

Vintodrimmer commented 5 years ago

Has there been any progress on this or anything?

I'd really like to implement just one border (say, at the top) for my set-up.