Commit graph

23787 commits

Author SHA1 Message Date
Vlad Zahorodnii
ca7f7a42c8 wayland: Make kwin_wayland create virtual outputs
At the moment, we rely on placeholder output getting created, but there
are cases where it's desired to spin kwin with virtual outputs so you
could take screenshots and things as such.
2022-12-06 17:46:49 +00:00
Vlad Zahorodnii
cdda8593d8 backends/virtual: Fix KWIN_WAYLAND_VIRTUAL_SCREENSHOTS
Image path is incorrectly specified in the EGL backend. Also, `%s` must
be `%2`.
2022-12-06 15:26:07 +00:00
Xaver Hugl
bd26f57e18 backends/drm: allow using both adaptive sync and tearing at the same time
The driver will translate that to adaptive sync in the vrr range, and tearing
above it
2022-12-06 11:49:59 +00:00
Xaver Hugl
7c3489b1a5 wayland/tearingcontrol: actually create the d pointer object 2022-12-06 11:49:59 +00:00
Xaver Hugl
b3e977f416 backends/drm: add buffer format to logging 2022-12-06 10:13:38 +00:00
l10n daemon script
f1440ebca1 GIT_SILENT Sync po/docbooks with svn 2022-12-06 02:04:59 +00:00
l10n daemon script
30f73e7b03 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-12-06 01:49:30 +00:00
Vlad Zahorodnii
fdea693da5 wayland: Implement xwayland-shell-v1
As explained in [1], WL_SURFACE_ID is racy because wayland aggressively
reuses object ids. The xwayland-shell-v1 protocol intends to fix that by
two things:

* associating a serial number with each X11 window. This is to avoid
  potential XID reuse
* referring to the wayland surface by the wl_surface rather than
  specifying an object id

Unfortunately, we will have to maintain both legacy WL_SURFACE_ID and
WL_SURFACE_SERIAL for quiet some time until most instances of Xwayland
support the xwayland-shell-v1 protocol [2].

[1] https://gitlab.freedesktop.org/xorg/xserver/-/issues/1157
[2] https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/163
2022-12-05 17:09:01 +02:00
Xaver Hugl
909378e6fd kcmkwin/kwincompositing: add option to toggle tearing on Wayland 2022-12-05 12:52:18 +00:00
Xaver Hugl
b85550ab41 backends/drm: use tearing presentation where possible and appropriate 2022-12-05 12:52:18 +00:00
Xaver Hugl
b261050be1 wayland: implement tearing_control_v1 2022-12-05 12:52:18 +00:00
l10n daemon script
1a97d384f1 GIT_SILENT Sync po/docbooks with svn 2022-12-05 02:09:55 +00:00
l10n daemon script
98951840ca SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-12-05 01:51:57 +00:00
Vlad Zahorodnii
b4441cd502 backends/x11: Start reading host X11 events in initialize()
There's no reason to wait until the workspace is created.
2022-12-04 11:29:05 +00:00
Vlad Zahorodnii
28baea1c29 backends/x11: Simplify backend initialization 2022-12-04 11:29:05 +00:00
l10n daemon script
b18a3b3625 GIT_SILENT Sync po/docbooks with svn 2022-12-04 02:08:51 +00:00
l10n daemon script
2f49029e40 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-12-04 01:50:24 +00:00
Hongfei Shang
ebafdc4400 [x11] root window support _NET_WM_WINDOW_OPACITY
java gui will check this property on root window.

see:
6b55ef3b58/src/java.desktop/unix/classes/sun/awt/X11/XNETProtocol.java (L328)

Signed-off-by: Hongfei Shang <shanghongfei@kylinos.cn>
2022-12-03 17:09:18 +00:00
Xaver Hugl
09a41d3851 workspace: slightly simplify tilemanager interactions 2022-12-03 15:33:23 +00:00
Vlad Zahorodnii
7939352fb7 backends/x11: Provide a cursor per output
The main motivation behind this change is to allow setting the cursor
per output, which eases up implementing things such as cursor output layers.

It also has another advantage - output related code is more
encapsulated. Furthermore, we could decouple output backends from Cursor.
2022-12-03 15:17:49 +00:00
Xaver Hugl
6e6caa1021 workspace: move desktopResized after adding new outputs
Otherwise it crashes because the tile manager on the added outputs don't
exist yet

BUG: 462568
2022-12-03 15:42:40 +01:00
Vlad Zahorodnii
d93b1d4943 effects/tileseditor: Specify effect chain pos
The explicit effect chain position is needed to ensure that the effect
is properly ordered with other effects such as screenshot.
2022-12-03 13:02:29 +00:00
Jan Grulich
47732c54b6 Screencast: properly renegotiate stream when window size changes
We need to completely renegotiate stream parameters in case of window
size gets changed, otherwise no renegotiation will happen and clients
will not accommodate to our changes.

Fixes: https://github.com/obsproject/obs-studio/issues/7875
2022-12-03 02:40:30 +00:00
l10n daemon script
75720785a0 GIT_SILENT Sync po/docbooks with svn 2022-12-03 02:15:33 +00:00
l10n daemon script
0c6d62a2ec SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-12-03 01:55:31 +00:00
Natalie Clarius
8ebe9c7981 kconf_update: replace cascaded by zero-cornered placement 2022-12-02 14:05:32 +00:00
Natalie Clarius
b6412454c2 placement: remove cascaded placement policy
becomes redundant with cascade-if-covering for zero-cornered placement
2022-12-02 14:05:32 +00:00
Natalie Clarius
b08ef54727 placement: apply cascade-if-covering to placement modes: random, centered, zero-cornered, under mouse 2022-12-02 14:05:32 +00:00
Natalie Clarius
274922caaf placement: cascade if window would completely overlap another window
BUG: 58063
2022-12-02 14:05:32 +00:00
Harald Sitter
bcfd735808 effects/screenshot: offer an opt out of permission checking
in a CI context the paths are mutable between installation and use
and as such the permission checks can just not ever work. for use
in such scenarios allow completely disabling the permission checks
2022-12-02 10:58:05 +00:00
Vlad Zahorodnii
0047dfc596 backends/wayland: Drop WaylandBackend::getOutputAt()
It's unused.
2022-12-02 08:49:04 +00:00
Xaver Hugl
00b21992c4 backends/drm: don't leak gbm surface if creating egl surface fails 2022-12-02 08:28:46 +00:00
l10n daemon script
07a2ef4273 GIT_SILENT Sync po/docbooks with svn 2022-12-02 03:11:46 +00:00
l10n daemon script
c0461f6b48 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-12-02 02:02:52 +00:00
Vlad Zahorodnii
245dcd2b80 backends/wayland: Provide a cursor per output
It allows us to track cursor state per output and make it more
straightforward to introduce cursor layers in general.
2022-12-01 16:46:27 +00:00
Marco Martin
68517a5806 remove unused member variable 2022-12-01 16:59:27 +01:00
Marco Martin
e4507861f7 Custom quick tiling with configuration ui
* Allow to do quick tiling to custom tile geometries, windows will be snapped to tiles when dragged with the shift modifier pressed.
* Tile geometries are screen specific.
* The global shortcut Meta+T will trigger a fullscreen configuration ui as a QML effect for the tiles which allows to add, remove and resize tiles
* UI and behavior is a bit similar to the Windows Fancy Zones addon: https://docs.microsoft.com/en-us/windows/powertoys/fancyzones
* Its main scope is to help the workflow with very big monitors, especially ultra wide ones, where most application don't make sense maximized to the full screen (eventually also support games to be full screened to a given tile instead of the whole screen)
* it should get also some bindings for scripting, as its ain goal is not to replicate other popular tiling window managers, but should give the popular kwin tiling scripts to have a more robust infrastructure
* it will eventually get support for a set of predefined layouts, but this is for a second phase

BUG: 438788
2022-12-01 14:39:22 +00:00
Samuel Dionne-Riel
81ff7e6316 libinput/connection: Ensure touchpad defaults are used
The previous logic would set `defaults` to the last found group.

Since a touchpad is a pointer, it would set `defaults` to point
to `[Libinput][Defaults][Pointer]`, and thus the next clause would
try to find `[Libinput][Defaults][Pointer][Touchpad]`, instead of the
expected `[Libinput][Defaults][Touchpad]`. That is, only if a default
was set for Pointer.

Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
2022-12-01 12:31:02 +00:00
Nicolas Fella
5cab7c79b4 Revert "plugins/idletime: Adjust the poller to deprecation of simulateUserActivity()"
simulateUserActivity was un-deprecated

This reverts commit 4610aaf614.
2022-12-01 10:24:11 +00:00
Vlad Zahorodnii
8d04733682 plugins/nightcolor: Register its own service name
In order to make monitoring Night Color appearing and disappearing robust,
make Night Color register its own dbus service.

CCBUG: 428854
2022-12-01 09:56:15 +00:00
Nicolas Fella
a6a022f00f Port away from deprecated KWindowSystem API 2022-12-01 08:08:54 +00:00
l10n daemon script
1d640cc013 GIT_SILENT Sync po/docbooks with svn 2022-12-01 02:08:42 +00:00
l10n daemon script
3e13c516c4 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-12-01 01:50:26 +00:00
Vlad Zahorodnii
7c0cdcf472 backends/wayland: Fix input timestamp in relative motion events
RelativePointer::relativeMotion already provides us timestamps with
microseconds granularity, so we need to convert timestamps in vice versa
order.
2022-11-30 11:20:39 +00:00
l10n daemon script
a93ccbd7e7 GIT_SILENT Sync po/docbooks with svn 2022-11-29 02:12:05 +00:00
l10n daemon script
e691c169de SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-11-29 01:51:31 +00:00
l10n daemon script
f0660a01dc GIT_SILENT Sync po/docbooks with svn 2022-11-28 02:12:17 +00:00
Vlad Zahorodnii
65cd40e85d backends/wayland: Call wl_pointer.set_cursor when pointer enters an output
We must always call wl_pointer.set_cursor when the pointer enters the
surface.
2022-11-27 11:30:03 +00:00
Vlad Zahorodnii
c784217eae backends/wayland: Use software cursor when pointer is locked
Currently, if the pointer is locked, the wayland backend will create a
subsurface. However, when the cursor moves to one of the screen edges,
it looks weird because the xdg window geometry is computed as bounding
geometry of the main surface and its subsurfaces. However, even after
calling xdg_surface.set_window_geometry, it still looks weird because
subsurfaces are stacked above window decoration.

With the proposed change, when the pointer is locked, the wayland
backend will hide the host compositor and use the software cursor. If
the pointer is unlocked, it will go back to using host cursor.

Long term goal is to make every output have its own cursor to make
output layer logic simpler.
2022-11-27 11:30:03 +00:00
l10n daemon script
2fd9cc4fc1 GIT_SILENT Sync po/docbooks with svn 2022-11-27 02:05:46 +00:00