Skip to content

Releases: yshui/picom

v12.5

13 Nov 06:52
v12.5
a456d43
Compare
Choose a tag to compare

(Sorry, I shouldn't have moved the v12.4, this will not happen again. This release cycle is short to minimize the impact.)

Changes since v12.4

Bug fixes

  • Fix assertion failure when running with some window managers (e.g. qtile) and no window is focused (#1384)

v12.4

11 Nov 17:21
v12.4
ab6ca6c
Compare
Choose a tag to compare

(Note: the v12.4 git tag has been moved at 2024-Nov-12 09:42 UTC to fix wrong version number displayed in picom --version)

Changes since v12.3

Improvements

  • Better workaround for a NVIDIA qurik, fix high CPU usage when screen is off (#1265)
  • Avoid using xrender convolution in all cases, should improve shadow performance for most users. (#1349)

Bug fixes

  • Fix leak of saved window images.

Build fixes

  • Fix build on arm32 (#1355)

v12.3

14 Oct 15:32
v12.3
1b27f3e
Compare
Choose a tag to compare

Changes since v12.2

Improvements

  • Extend workaround for missing hardware accelerated convolution to more drivers (#1349)

Bug fixes

  • Fix memory corruption that can happen when handling window property changes (#1350)
  • Fix force-win-blend having no effect (#1354)
  • Fix shadow being rendered incorrectly in xrender backend (#1352)

v12.2

10 Oct 12:01
v12.2
f9f6f2c
Compare
Choose a tag to compare

Changes since v12.1

Improvements

  • fly-out/slide-out animation presets no longer cause jumps in window opacity

Bug fixes

  • Random delays before screen is updated (#1345 #1330)
  • Fix building on 32-bit systems (#1346)
  • Fix blank screen on 32-bit systems
  • Fix fly-in/fly-out animation presets so they work with directions other than up and left

v12.1

28 Sep 23:20
v12.1
c321da4
Compare
Choose a tag to compare

Changes since v12

Bug fixes

  • picom stops rendering correctly after monitor configuration changes (#1338, thanks to @Suyooo)

v12

27 Sep 06:52
v12
72fce70
Compare
Choose a tag to compare
v12

🎉 🎉

For the main change log, see v12-rc1

Thanks to all the developers that contributed!

Highlights

  • Animation support!

    This version of picom includes a flexible scripting system that can be used to define all kinds of animations. See more here

    geometry-change.mp4

  • Unified rule system

    Manage all per-window option in one place. See more here

Known problems

  • Users of newer NVIDIA drivers might see log spams related to SGI video sync (#1265)
  • Users of NVIDIA GPUs might see their window shadows disappear after suspend/resume (#924)

Changes since v12-rc4

Bug fixes

  • Fix crash related to window leader updates (#1337 + extra).
  • Remove an invalid assertion.

v12-rc4

07 Sep 23:39
v12-rc4
25000a8
Compare
Choose a tag to compare
v12-rc4 Pre-release
Pre-release

(Because of #1334, I decided to do an extra rc release)

Changes since v12-rc3

Bug fixes

  • Windows become completely black when rules and inactive-dim are set at the same time
  • Fix segmentation fault during unredirection if the geometry change animation is used (#1333, thanks to @Monsterovich)
  • Fix many rare race conditions in the window management code (#1334)

v12-rc3

30 Aug 00:07
v12-rc3
9bc6574
Compare
Choose a tag to compare
v12-rc3 Pre-release
Pre-release

(This is likely the last release candidate for v12)

Changes since v12-rc2

Bug fixes

  • transparent-clipping has no effect (#1317)
  • unredir in window rules not being parsed correctly
  • Changing window opacity with picom-trans does not take effect immediately (#1315)

Documentation

  • Document behavior change around rounded corners and fullscreen windows

v12-rc2

17 Aug 09:12
v12-rc2
f4fcedc
Compare
Choose a tag to compare
v12-rc2 Pre-release
Pre-release

Known issues

  • transparent-clipping has no effect (#1317)
  • Change of window opacity property doesn't take effect immediately (#1315)

Change since v12-rc1

Bug fixes

  • Setting corner-radius to 0 cause all windows to not render: #1311
  • Setting corner-radius causes windows to have a 1-pixel transparent border
  • Window shaders no longer work: #1312

v12-rc1

12 Aug 05:57
0585e31
Compare
Choose a tag to compare
v12-rc1 Pre-release
Pre-release

Known issues

  • Setting corner-radius to 0 cause all windows to not render: #1311, fixed by 6b858b8
  • Window shaders no longer work: #1312, fixed by fda04bd

New features

  • Animations! Yes, now picom officially supports animations. For examples, and information on how to configure it, please go to our documentation site. There are some video clips in #1253 as well. (#1220 #1253 #1303 #1305 #1308 #1310)

  • Universal window rules (#1284). One option to rule them all! Added new configuration option rules to replace all existing rule options, and to provide more flexibility on top of that. See picom(1) for more details. This can be used to configure per-window animations.

  • @include directives in config file now also search in $XDG_CONFIG_HOME/picom/include and $XDG_CONFIG_DIRS/picom/include, in addition to relative to the config file's parent directory.

  • 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. man picom-inspect(1) for more details. 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
    
  • picom now has a rudimentary plugin system. At the moment, the only thing you can do with it is loading custom backends.

Notable changes

  • override_redirect in rules now only matches top-level windows that doesn't have a client window. Some window managers (e.g. awesome) set override_redirect for all window manager frame windows, causing this rule to match against everything (#625).
  • 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.
  • backend is now a required option. picom will not start if one is not specified explicitly.
  • New predefined target for conditions: group_focused. This target indicate whether the focused window is in the same window group as the window being matched.
  • Meaning of window_type in conditions changed slightly, now it supports windows with multiple types. (However the behavior of wintypes remains unchanged.)

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)
  • Fix ugly looking rounded corners (#1261)

Build 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, with a minimal supported version of 1.7.
  • xcb-dpms is not needed anymore.
  • libXext is not needed anymore.
  • man pages are now built with asciidoctor, instead of asciidoc.

Behind the scene changes

  • The X critical section is removed, picom no longer grabs the server to fetch updates. Hopefully, if everything works, this change is unnoticeable. Minor responsiveness improvements could be possible, but I won't bet on it. The main point of this change is this makes debugging much less painful. Previously if you breaks inside the X critical section, the whole X server will lock up, and you would have to connect to the computer remotely to recover. Now there is no longer such worries. This also avoids a bug inside Xorg that makes server grabbing unreliable.