-
Notifications
You must be signed in to change notification settings - Fork 47
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
berrywm: rounded corners #145
base: master
Are you sure you want to change the base?
Conversation
This is a very good start, and something that I would really like to be included in |
Oh the client and client_decoration is huge pain. When any border is added |
Due to multiple misconceptions of the workings of windows and decorations bugs were made. They have been promptly smashed. Using border(outer_border) causes: -> Removal of inner_border's rounded cornerss -> When used without inner_border visual artifacts appear
I made a mistake with the calculation of the mask size
I actually quite like this patch and think that this is something that would really attract people to |
Currently the only problem I've found is when
I believe the I dont know how to solve it :/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe the
outer_border
is being applied by the functionewmh_set_frame_extents()
ewmh_set_frame_extents
has no effect on how windows are rendered by berry
. This is a property reported to the x server so that compositors can render shadows correctly (there are other reasons as well, but this is why it was implemented).
The way that window decorations work in berry
is that there is a dummy
window created behind each client. The way that we achieve a double border look is by drawing a border around this window (this is a built-in function provided by the xlib API). This is probably the reason that we're seeing this artifact - the border around the decoration window is being rounded, but the actual base window itself is not being rounded. I'm not super familiar with how the rounding code is actually implemented, but I'll look into it and see if I can come up with a fix.
|
||
# Default pkg flags to substitute when pkg-config is not found | ||
pkg_libs="-lX11 -lXinerama -lfontconfig -lfreetype -lXft" | ||
pkg_libs="-lX11 -lXinerama -lfontconfig -lfreetype -lXft -lXext" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's likely we will need to coordinate with package maintainers for this new dependency (unless its already included elsewhere, I will double check this).
{ | ||
unsigned int rad = conf.border_radius; | ||
|
||
if (c->fullscreen) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this behavior, we might want to consider doing this for monocled windows as well? I'm open to either behavior for monocled windows actually.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should monocole view have it's corners rounded?
Unfortunately I haven't had much time to write up a solution for this, although I don know what the issue is. Behind each client window there is a The issue comes into play because, when we round the decoration window, we are only rounding it's outer-most edge (i.e., it's border). This is an issue because we also want to round the inner edge (i.e. the edge of the base decoration window). I haven't had much time to dive into how to round is actually working, but so long as we could applying rounding to that inner-most window, it should resolve. |
I'll start working on berrwm again. I'll start experimenting right away *I'm sorry dude i changed the title cos i wanted a damn space between |
Patch: https://patch-diff.githubusercontent.com/raw/JLErvin/berry/pull/145.patch
I doubt this goes with this version of berry will fit the idea that @JLErvin has for this project
but i made it as way to learn my way around X and Xlib
\o/ Gotta give credit to this sauce of inspiration