Commit Graph

1500 Commits

Author SHA1 Message Date
Bernd Busse
f53fbdccca Add testcase for #394 2020-10-23 15:46:37 +02:00
yshui
6c6b1afeb3 Merge pull request #516 from yshui/no-xlib
x: remove the last bit of Xlib dependency
2020-10-23 14:19:00 +01:00
Yuxuan Shui
dc37370a66 x: remove the last bit of Xlib dependency
Of course, we still use GLX, so we can't completely remove Xlib yet. But
this removes all Xlib uses outside of the backends.

This drops support for COMPOUND_TEXT Xorg strings, so people how wants
multilingual support has to use UTF8, which should be fine since most of
the applications support that.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-23 07:58:01 +01:00
yshui
b675e3f19d Merge pull request #521 from yshui/more-delayed-handling
More delayed event handlings
2020-10-23 07:50:54 +01:00
Yuxuan Shui
e53ac7a6f9 event, win: delayed handling of shape notify
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-23 04:37:38 +01:00
Yuxuan Shui
f476a78ad1 event: don't eagerly add damage for configure notify
If a window receives multiple configure notifies in between 2 frames, we
add all the in between positions into damage, when we really just need
the starting and the end position.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-23 04:27:35 +01:00
Yuxuan Shui
35b4e82085 win: cache the result of fade-exclude rules
So we don't need to call c2_match every frame something is fading. Also
saves us from some out-of-critical-section X server queries.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-23 02:08:34 +01:00
Yuxuan Shui
21e9aab6b6 event: set WIN_FLAGS_FACTOR_CHANGED on tracked property change
Previously, when some explicitly checked property (e.g.
_NET_WM_WINDOW_OPACITY) changed, it won't trigger a
win_on_factor_change, and the rules will not be re-evaluated. Because
that property stale flag will be cleared after we explicitly check the
property, so it won't be detected as a tracked property change.

Here, we instead set WIN_FLAGS_FACTOR_CHANGED directly when a tracked
property changed.

Fixes: f3ff7eff8c

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-23 01:58:12 +01:00
yshui
598e70dcea Merge pull request #519 from tryone144/picom-trans-help
Add `--help` and `--toggle` options to `picom-trans`
2020-10-23 01:44:49 +01:00
Yuxuan Shui
a099678664 win: delayed handling of configure notify
Part of the configure notify handling which requires querying the X
server, has been moved into the X critical section.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-23 01:36:04 +01:00
yshui
f447e51380 Merge pull request #518 from yshui/delayed-property-update
event: delayed handling of window property changes
2020-10-23 01:30:31 +01:00
Yuxuan Shui
f3ff7eff8c event: delayed handling of window property changes
Move handling window property changes into the X critical section.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-23 00:15:54 +01:00
Bernd Busse
a854acc2d0 picom-trans: add --toggle action to toggle between set opacity and unset.
Fixes: #472
2020-10-22 23:06:17 +02:00
Bernd Busse
c9ccd8fb71 picom-trans: Add inline --help output and update manpage
Fixes: #513
2020-10-22 22:53:02 +02:00
nia
8f78b9b631 Fix the build when memcpy is defined as a macro. (#501)
Parentheses are required around macro argument containing braced
initializer list.

memcpy(3) is a macro when using e.g. -D_FORTIFY_SOURCE=2.
2020-10-22 02:25:19 +01:00
Yuxuan Shui
ff70f6056e core: remove a bit more of Xlib dependencies
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-21 02:06:15 +00:00
Yuxuan Shui
00ee5cb4b1 diagnostics: fix missing newline
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-20 03:10:26 +00:00
Yuxuan Shui
d00c1c7a1d compile.h, utils.h: rename popcount
Rename `popcountl` to `popcntul` to avoid name conflicts with NetBSD
system headers.

Remove the unused `popcount` function.

Closes #502

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-07 19:35:55 +01:00
Bernd Busse
fb3760bbe3 config: add wintypes option blur-background 2020-10-01 23:28:05 +02:00
Bernd Busse
e92e250237 Merge pull request #500 from tryone144/fix-codeql-warning
Fix CodeQL warning
2020-10-01 23:22:45 +02:00
Bernd Busse
fbbc97eedb log: Use thread-safe version of localtime()
Fixes CodeQL warning: https://github.com/yshui/picom/security/code-scanning/1
2020-10-01 23:00:09 +02:00
Yuxuan Shui
453a9e8232 github: codeql: only install dependencies for cpp analysis
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-01 14:01:46 +01:00
yshui
aa1a32db16 github: enable CodeQL workflow
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-10-01 13:32:33 +01:00
Yuxuan Shui
9bb21fc726 core: remove pid file on shutdown
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-09-16 12:14:46 +01:00
jialeens
7d7eef7ff4 Accept write-pid-path option from the config file
Signed-off-by: jialeens <jialeadmin@163.com>
2020-09-16 12:14:46 +01:00
yshui
4bc1ef87c9 Merge pull request #491 from jialeens/next
update picom.sample.conf
2020-09-15 14:48:46 +01:00
jialeens
4d990b3d35 update picom.sample.conf
Signed-off-by: jialeens <jialeadmin@163.com>
2020-09-14 15:57:56 +08:00
yshui
2451c21539 Merge pull request #486 from rharish101/grammar
Changed "A X ..." to "An X ..."
2020-09-12 10:40:59 +01:00
Bernd Busse
aef1b856a6 backend: gl_common: render correct number of elements in blur
Keep track of the number of elements/indices for the normal blur rects
as well as the resized ones and use the correct number when drawing.
The number of rects can change if resized rects overlap and are reduced
into a single rect.

Fixes #440
2020-09-11 20:11:11 +02:00
Harish Rajagopal
88b6d5b0a1 Changed "A X ..." to "An X ..."
Reference: https://blog.apastyle.org/apastyle/2012/04/using-a-or-an-with-acronyms-and-abbreviations.html.
2020-09-10 23:13:45 +02:00
Yuxuan Shui
699ff9bc82 options: fix typo
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-09-08 07:17:56 +01:00
Yuxuan Shui
7d32783d9e options: warn when dual-kawase blur is chosen on unsupported backends
Closes #464

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-09-08 07:08:23 +01:00
Yuxuan Shui
670b4abae7 backend/backend: add a TODO about image ops ordering 2020-09-05 18:55:23 +01:00
Yuxuan Shui
c5145479b0 Fix several memory leaks
* src/event.c: expose_root: region is not freed
* backend/xrender/xrender.c:
    * bind_pixmap: the reply `r` is not freed
    * blur: reg_op_resized is not freed

Spotted-by: Samuel Hand <samuel.d.hand@gmail.com>
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-09-05 16:45:21 +01:00
yshui
c4369ec756 Merge pull request #481 from itaranto/improve-example-config
Do not use single quotes in the example config
2020-09-04 22:53:49 +01:00
Ignacio Taranto
30bbfc28bb Do not use single quotes in the example config
This replaces single quotes for double quotes in the configuration
comments that refer to strings.
This was misleading since someone could took that comment as a valid
config entry, which is not.  One notable example was `backend = 'glx'`
which is not accepted by libconfig.

This also adds `;` for each default config values for consistency.
2020-09-04 10:20:40 -03:00
Bernd Busse
c9ca9de55e core: update stale images AFTER checking focus
Partially revert 32754b0262.

We start with mapping the window (`win_process_update_flags()`). Then check
if focus has changed and process focus updates. Finally refresh stale images
(`win_process_image_flags`) because rules based on focus may have invalidated
them or require them to be created.

Fixes #465 with the following rule:
```
shadow-exclude = [
  "focused" != 1"
]
```
2020-08-31 20:22:28 +02:00
Bernd Busse
f6780cb394 tests: add test case for #465 2020-08-31 20:22:15 +02:00
Yuxuan Shui
283504d527 Remove no-dock-shadow and no-dnd-shadow
Deprecated since v4

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-08-31 18:32:14 +01:00
yshui
731bd61467 Merge pull request #382 from tryone144/feature/dual_kawase
dual-kawase blur algorithm for new OpenGL backend
2020-08-31 14:54:38 +01:00
Bernd Busse
5e0215abab backend: gl_common: implement dual-filter kawase blur method
Implement the dual-filter kawase blur algorithm for the new OpenGL backend
as seen in kwin [1]. Use with `--blur-method dual_kawase` and set the
desired strength with `--blur-strength level` (1-20).

The dual-filter kawase algorithm produces results close to a traditional
gaussian blur with higher performace, especially at high blur radii. The
supported strength levels provide an effect similar to gauss-radii between
4 and 500 pixels.

As this algorithm relies heavily on the texture-filtering units of a
GPU, there is no support for the xrender backend — at least for now.

[1](https://kwin.kde.narkive.com/aSqRYYw7/d9848-updated-the-blur-method-to-use-the-more-efficient-dual-kawase-blur-algorithm)
2020-08-31 14:06:45 +02:00
Bernd Busse
89c18afac6 backend: gl_common: split kernel-blur code from general init/blur code [WIP]
**Work-in-Progress**

Split-off kernel-blur specific initialization and rendering from common
OpenGL setup. Add stub functions for dual_kawase-blur initialization and
rendering.
2020-08-31 14:06:18 +02:00
Bernd Busse
d45d0ca209 backend: create dual_kawase blur parameters from selected strength [WIP]
**Work-in-Progress**

Generate suitable parameters for dual-filter kawase blur based on the
selected `blur-strength` or approximate a gauss blur with the selected
`blur-size` and std-deviation.
2020-08-31 14:06:18 +02:00
Bernd Busse
33c5a5a36b Add support for new blur method dual_kawase [WIP]
**Work-in-Progress**

Add `dual_kawase` to configuration and argument parsing. Allow `kawase`
for backward compatibility. Add `--blur-strength` parameter for
blur-method `dual_kawase`.

Update documentation to reflect the new blur-method and parameters.
2020-08-31 14:06:17 +02:00
Bernd Busse
0000cc1d98 backend: gl_common: support arbitrary number of aux. blur textures/fbos
Support an arbitrary number of auxiliary textures and framebuffers for
blur. Preparation for the dual-filter kawase algorithm.
2020-08-31 14:06:17 +02:00
yshui
ceb9b7f1f2 Merge pull request #476 from tonijarjour/next
Update picom.sample.conf
2020-08-30 22:05:17 +01:00
Toni Jarjour
7f1c08907d picom.sample.conf: remove deprecated options 2020-08-30 22:02:41 +01:00
Yuxuan Shui
5ebac238e2 Remove documentation, usage messages and examples about sw-opti
It have been deprecated.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-08-30 21:26:19 +01:00
Yuxuan Shui
24f0241907 gitignore: ignore language server indices
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-08-30 17:57:05 +01:00
Yuxuan Shui
9c7b8597e0 core: rename _draw_callback to draw_callback_impl
All names start with underscore are reserved in C.

Also just testing out the language server's renaming feature.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-08-30 17:44:21 +01:00