1
0
Fork 0
mirror of https://github.com/yshui/picom.git synced 2025-04-07 17:44:04 -04:00
picom/CHANGELOG.md
Yuxuan Shui 43de276c19
options: refactor option parsing
The main objective is to remove the need to worry about option value
assignment. Because of the way getopt works, we need to assign a number
to each option, and later match the return value of getopt in a big
switch. We have to make sure to not assign the same number to two
options, and we have to carefully make sure the same number is used in
two different places (once in the options table, once in the switch).
And that is just annoying.

With this commit everything is in one place, and the compiler will yell
at us if we assigned duplicated numbers.

Maybe this can also be a stepping stone for unifying command line
options parsing and config file parsing.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-05-12 17:16:02 +01:00

4.5 KiB
Raw Blame History

Unreleased

New features

  • Allow corner-radius-rules to override corner-radius = 0. Previously setting corner radius to 0 globally disables rounded corners. (#1170)

  • New picom-inspect tool, which lets you test out your picom rules. Sample output:

    ...
    Checking rounded-corners-exclude:
        window_type = "dock" ... not matched
        window_type = "desktop" ... not matched
        window_type *= "menu" ... not matched
        fullscreen = 1 ... not matched
    Checking opacity-rule:
        _NET_WM_STATE@[0] *= "_NET_WM_STATE_HIDDEN" ... not matched
    Checking corner-radius-rule:
        class_g = "Alacritty" ... matched/10
    
    Here are some rule(s) that match this window:
        name = '[0.2.1] ./picom-inspect: ~/p/picom(./picom-inspect: ~/p/picom)*'
        class_i = 'Alacritty'
        class_g = 'Alacritty'
        window_type = 'normal'
        ! fullscreen
        border_width = 0
    

Notable changes

  • Marginally improve performance when resizing/opening/closing windows. (#1190)
  • Type and format specifiers are no longer used in rules. These specifiers are what you put after the colon (':') in rules, e.g. the :32c in "_GTK_FRAME_EXTENTS@:32c". Now this information is ignored and the property is matched regardless of format or type.

Deprecated features

  • Setting --shadow-exclude-reg is now a hard error. It was deprecated almost since the start of picom. --clip-shadow-above is the better alternative. (#1254)
  • Remove command line options -n, -a, and -s. They were removed more than 10 years ago, it's time to finally get rid of them entirely. (#1254)
  • Remove error message for --glx-swap-method, it was deprecated in v6.
  • Remove error message for passing argument to --vsync arguments, it was deprecated in v5.
  • Option --opengl is now deprecated, use --backend=glx instead.

Bug fixes

  • Fix ghosting artifacts that sometimes occur when window manager is restarted (#1081)
  • Fix a bug where rounded corner is disabled after making a window fullscreen and back (#1216)

Dependency changes

  • picom now uses some OpenGL 4.3 features.
  • picom now optionally depends on rtkit at runtime to give itself realtime scheduling priority.
  • libconfig is now a mandatory dependency.

v11.2 (2024-Feb-13)

Build changes

  • picom now depends on libepoxy for OpenGL symbol management.

Bug fixes

  • Workaround a NVIDIA problem that causes high CPU usage after suspend/resume (#1172, #1168)
  • Fix building on OpenBSD (#1189, #1188)
  • Fix occasional freezes (#1040, #1145, #1166)
  • Fix corner-radius-rules not applying sometimes (#1177)
  • Fix window shader not having an effect when frame opacity is enabled (#1174)
  • Fix binding root pixmap in case of depth mismatch (#984)

v11.1 (2024-Jan-28)

Bug fixes

  • Fix missing fading on window close for some window managers. (#704)

v11 (2024-Jan-20)

Build changes

  • Due to some caveats discovered related to setting the CAP_SYS_NICE capability, it is now recommended to NOT set this capability for picom.

Deprecations

  • Uses of --sw-opti, and --respect-prop-shadow are now hard errors.
  • -F has been removed completely. It was deprecated before the picom fork.

v11-rc1 (2024-Jan-14)

Notable features

  • picom now uses dithering to prevent banding. Banding is most notable when using a strong background blur. (#952)
  • Frame pacing. picom uses present feedback information to schedule new frames when it makes sense to do so. This improves latency, and replaces the glFlush and GL_MaxFramesAllowed=1 hacks we used to do for NVIDIA. (#968 #1156)
  • Some missing features have been implemented for the EGL backend (#1004 #1007)

Bug fixes

  • Many memory/resource leak fixes thanks to @absolutelynothelix . (#977 #978 #979 #980 #982 #985 #992 #1009 #1022)
  • Fix tiling of wallpaper. (#1002)
  • Fix some blur artifacts (#1095)
  • Fix shadow color for transparent shadows (#1124)
  • Don't spam logs when another compositor is running (#1104)
  • Fix rounded corners showing as black with the xrender backend (#1003)
  • Fix blur with rounded windows (#950)

Build changes

  • Dependency pcre has been replaced by pcre2.
  • New dependency xcb-util.
  • xinerama is no longer used.
  • picom now tries to give itself a real-time scheduling priority. Please consider giving picom the CAP_SYS_NICE capability when packaging it.

Deprecations

  • The kawase blur method is removed. Note this is just an alias to the dual_kawase method, which is still available. (#1102)

Earlier versions

Please see the GitHub releases page.