jonaburg / picom

A lightweight compositor for X11 (previously a compton fork)
Other
954 stars 99 forks source link

round-borders-rule Does not seem to be working. #22

Open fcomoreira1 opened 3 years ago

fcomoreira1 commented 3 years ago

Pop!_OS 20.04

I am using i3-gaps, picom version vgit-a8445.

Output of picom --diagnostics:

`[ 12/09/2020 14:00:13.243 parse_kawase_blur_strength INFO ] blur-strength: 7 [.iter = 3, .offset = 4.250000, .expand = 50] [ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_SGI_video_sync. [ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_SGI_swap_control. [ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_OML_sync_control. [ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_MESA_swap_control. [ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Missing GLX extension GLX_EXT_swap_control. [ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_EXT_texture_from_pixmap. [ 12/09/2020 14:00:13.306 glx_has_extension INFO ] Found GLX extension GLX_ARB_create_context. [ 12/09/2020 14:00:13.307 glx_has_extension INFO ] Found GLX extension GLX_EXT_buffer_age. Version: vgit-a8445

Extensions:

Misc:

Drivers (inaccurate):

modesetting`

Configuration: (It is almost the same as the example given in this repo, but changing some of the transparency and corner settings, the rest is equal, without the comments)

#################################
#          Animations           #
#################################
transition-length = 250
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true

#################################
#             Corners           #
#################################
corner-radius = 17.0;
rounded-corners-exclude = [
  "class_g = 'Polybar'",
  "class_g = 'code-oss'",
  "class_g = 'firefox'",
  "class_g = 'Thunderbird'",
  "class_g = 'Dunst'",
  "class_g = 'i3-frame'"
];
round-borders-exclude = [
];

round-borders = 2;
round-borders-rule = [
    "2:window_type = 'normal'"
];
#################################
#             Shadows           #
#################################

shadow = true;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;

shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "class_g = 'slop'",
  "class_g = 'Polybar'",
  "_GTK_FRAME_EXTENTS@:c"
];

#################################
#           Fading              #
#################################
fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-exclude = [
  "class_g = 'slop'"   # maim
]
#################################
#   Transparency / Opacity      #
#################################
inactive-opacity = 0.8;
frame-opacity = 0.7;
popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; }
inactive-opacity-override = false;
active-opacity = 1.0;
focus-exclude = [
  "class_g = 'Cairo-clock'",
  "class_g = 'Bar'",                    # lemonbar
  "class_g = 'slop'"                    # maim
];
opacity-rule = [
  "80:class_g     = 'Bar'",             # lemonbar
  "100:class_g    = 'slop'",            # maim
  "100:class_g    = 'XTerm'",
  "100:class_g    = 'URxvt'",
  "100:class_g    = 'kitty'",
  #"100:class_g    = 'Alacritty'",
  "90:class_g     = 'Polybar'",
  "100:class_g    = 'Zathura'",
  "100:class_g    = 'code-oss'",
  "100:class_g    = 'Meld'",
  "70:class_g     = 'TelegramDesktop'",
  "90:class_g     = 'Joplin'",
  "100:class_g    = 'firefox'",
  "100:class_g    = 'Thunderbird'"
];

#################################
#     Background-Blurring       #
#################################
blur: {
  # requires: https://github.com/ibhagwan/picom
  method = "kawase";
  #method = "kernel";
  strength = 7;
  # deviation = 1.0;
  # kernel = "11x11gaussian";
  background = false;
  background-frame = false;
  background-fixed = false;
  kern = "3x3box";
}

blur-background-exclude = [
  "class_g = 'slop'",
  "_GTK_FRAME_EXTENTS@:c"
];

#################################
#       General Settings        #
#################################
experimental-backends = true;
backend = "glx";

vsync = true
mark-wmwin-focused = true;

mark-ovredir-focused = true;
detect-rounded-corners = true;

detect-client-opacity = true;
refresh-rate = 0

detect-transient = true
detect-client-leader = true
wintypes:
{
  normal = { fade = false; shadow = false; }
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.8; }
  dropdown_menu = { opacity = 0.8; }
};

The Expected Behavior

  1. The borders be adapted to the window's corners when they are rounded, as round-borders-rule should be able to do in i3-wm

The Current Behavior

  1. There is a blank space in the borders, as a cut (Like the borders are part of the window itself, being rounded as part of it, thus getting its corner cut).

You can see it in the right Alacritty window in the screenshot that is in this post. I think the rounded corners effect was adapted from Ibhagwan's fork, and as far as I know, this i3-gaps problem should be solved with the rounded-borders-rule.

border

fcomoreira1 commented 3 years ago

I noticed this is a fix already made in ibhagwan's fork, which was recently merged with the mainstream (yshui's). Unfortunately this fork is not forked from the original, but to one that is some versions behind from it, I would really appreciate some work in this issue. This bug is really bothering but borders are necessary for a tiling wm in my opinion

ghost commented 3 years ago

FYI I also have this issue and it would be really satisfying to have it resolved. I have a separate issue with the corner the shadow is directed to having an opaque square border and transparent interior, whether it's related.

Froloket64 commented 3 years ago

Same here...

baris-inandi commented 2 years ago

yes please

tarneaux commented 2 years ago

:+1: