| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The service channel D-Bus interface aims to be a "back door" for
services that needs special casing in Mutter, e.g. have custom private
protocols only meant to be used by that particular service.
There are currently no special casing implemented; only the basic
service channel infrastructure is added. There is a single method on the
interface, that is meant to eventually be used by
xdg-desktop-portal-gnome to open a Wayland connection with a private
protocol needed for the portal backend's rather special window
management needs.
The service channel Wayland client works by allowing one instance of
each "type", where each time needs to be defined to work in parallel. If
a new service client connects, the old one will be disconnected.
MetaWaylandClient's are used to manage the service clients, and are
assigned the service client type.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2810>
|
|
|
|
|
|
|
|
| |
The X-GNOME-Bugzilla-* entries in the desktop file were for use by
bug-buddy, a GNOME 2 technology that's been gone for over a decade.
These entries are obsolete and the desktop file can be removed.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2621>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2813>
|
|
|
|
|
|
|
|
|
| |
Currently subschemas in org.gnome.mutter are marked as child schemas,
but subschemas in org.gnome.mutter.wayland are not. There's no harm
with that, it's just nice to be consistent, and having schemas show
up in `gsettings list-children` is a nice touch.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2809>
|
|
|
|
|
|
|
| |
Mutter's own tab popup implementation was removed almost a decade
ago, about time to clean out the left-over settings.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2809>
|
|
|
|
|
|
|
|
|
|
| |
Recent versions of Xwayland can allow or disallow X11 clients from
different endianess to connect.
Add a setting to configure this feature from mutter, who spawns
Xwayland.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2785>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When modifiers are enabled on mutter on some of the older i915 systems observed
Black-screen on 2nd monitor during multi-head use cases, upon debugging observed
that disabling modifiers on these systems resolved the Black-screen issue:!1618.
This issue depends whether we have enough DBuf space to provide required bandwidth
for the userspace demands. Those platforms which have less Display Buffer, will
just have more chance to face lack of it. However it still depends on various
factors like amount of planes(i.e the more planes we have, the more we divide the buffer),
refresh rate, bpp and so on.
This affects watermark calculations and the minimum blocks required for at least
wm level 0. If we don't have sufficient ddb at least for wm0 for all planes in
the configuration then it is rejected.
Until we have TEST_ONLY commit solution is built we could make sure to disable
modifiers support on these older i915 systems based on udev rules defined in this commit.
This commit makes sure that modifiers are still usable on latest i915 systems.
List of PCI-IDs are referred from:
https://gitlab.freedesktop.org/mesa/mesa/-/blob/f8bf2a9a15d2572974448ed67a282f195d490323/include/pci_ids/iris_pci_ids.h
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/1618
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2641>
|
|
|
|
|
|
|
|
|
|
|
| |
ATM sending modifiers to clients prevents direct scanout for DRI3
clients via Xwayland. Xwayland using the dma-buf feedback v4 Wayland
protocol will solve that, but that might take a while yet to appear in
the wild. Once that happens, this can be reverted.
Direct scanout still works for native Wayland clients as well.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2637>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the peripheral "output" setting will be unset if Mutter is
deciding automatically the mapped output of a tablet device. In that
case, gnome-control-center will have a hard time figuring out itself
the better output to show the tablet calibration UI, unless it's hand
held by Mutter.
Add this private D-Bus interface so that gnome-control-center can look
up the output as determined by Mutter to bring the missing harmony
between both. This interface consists of a simple method to get the
mapped output for a input device node.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2605>
|
|
|
|
|
|
|
|
|
| |
It uses the org.gnome.SettingsDaemon.Power.Screen D-Bus API. Currently
brightness set if the proxy is not ready are ignored; whether the
brightness value should be cached and set once it appears or whether
color profiles should be reapplied is yet to be decided.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2165>
|
|
|
|
|
|
|
|
|
|
|
| |
gsd-color provides this API, which exposes details about the night light
state. Currently, gsd-color also turns this state into CRTC gamma
changes, but this will eventually change, and this is a preparation for
this.
The proxy isn't yet used for anything.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2164>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a screencast session is screencasting from multiple monitors,
it is not possible to distinguish which stream (or PipeWire stream
node id) belongs to which connected monitor (such information may be useful
to the caller e.g. caller might want to embed the stream in a window
and name it after the monitor connector, for example). This change adds
optional metadata for monitor streams to also return the wayland output
name with the stream.
Ideally, this metadata should equip the caller to get more information about
display from the following Wayland interfaces:
https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_output
https://wayland.app/protocols/xdg-output-unstable-v1
Related:
- https://github.com/flatpak/xdg-desktop-portal/pull/832
- https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/merge_requests/48
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2540>
|
|
|
|
|
|
|
| |
This checks whether it's possible to set a CRTC GAMMA_LUT, which is what
is necessary to implement night light.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2310>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now only enable DMA buffer based PipeWire screen casting if a
format/modifier has been negotiated. This practically means a consumer
is aware about what is needed, and we should not try to predict that it
uses the DMA buffer the right way (i.e. not mmap:ing directly).
However, in case we're not hardware accelerated, we never want to
attempt to use DMA buffer screen sharing, as we want to avoid
compositing into a DMA buffer on such hardware as doing so can be very
slow.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2086>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using Xwayland-on-demand (default), if the (experimental) autoclose
features is enabled, we can rely on Xwayland's auto-terminate feature
instead of explicitly killing the Xwayland process.
With it, gone is the mechanism that was added to check the X11 clients
connected and their executable to check whether we can (safely) kill
Xwayland.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1794>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding a <dbus/> element containing a boolean (yes/no) determines
whether org.gnome.Mutter.DisplayConfig ApplyMonitorsConfig will be
callable. The state is also introspectable via the
ApplyMonitorsConfigAllowed property on the same interface.
For example
<monitors version="2">
<policy>
<dbus>no</dbus>
</policy>
</monitors>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2030>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code style in the remote-desktop API is currently a mess.
While, the overall code style in mutter and gnome-remote-desktop is to
use spaces as tabulator, the remote-desktop API is mixed with both
spaces as tabulators and actual tabulators.
In addition to that, the code style in the XDG desktop portal APIs uses
spaces as tabulators as well.
To unify the code style, replace all actual tabulators with spaces.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2255>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code style in the screencast API is currently a mess.
While, the overall code style in mutter and gnome-remote-desktop is to
use spaces as tabulator, the remote-desktop API is mixed with both
spaces as tabulators and actual tabulators.
In addition to that, the code style in the XDG desktop portal APIs uses
spaces as tabulators as well.
To unify the code style, replace all actual tabulators with spaces.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2255>
|
|
|
|
|
|
|
| |
Expose each monitor state as two booleans, not to expose the whole flags
Related-to: GNOME/gnome-control-center#909
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1952>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The only currently known issue with allocating scanout buffers with
modifiers is memory constraints in multi head setups. Heuristics for
handling that are not implemented, but since it doesn't apply to
anything but i915, remove the other drivers from the deny list.
The other drivers had modifiers disabled to marginally increase the
chance of becoming scanout-able when allocated by Xwayland.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2146>
|
|
|
|
|
|
|
| |
It's not used to determine what we send to Wayland clients anymore, it
does so by default.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2146>
|
|
|
|
|
|
|
|
| |
As the format table is setup up front, it doesn't change when this
experimental feature setting change. Make the settings documentation
reflect that.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1959>
|
|
|
|
|
|
|
| |
This is useful if you have a session, and want to "hot-plug" new sources
over time; there is no point in having to create separate sessions for this.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2131>
|
|
|
|
|
|
| |
Place the XML files in data/dbus-interfaces.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2126>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Defining valid values makes
1. changing settings less error prone
2. sure they are discoverable.
This does reset the values once on update, but fortunately does *not*
change the way to set the values. Thus e.g. enabling fractional scaling
via terminal command still works as before and internet guides stay valid.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1961>
|
|
|
|
|
|
| |
To make it more discoverable. While on it, fix a typo.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1961>
|
|
|
|
|
|
|
|
| |
Instead of using sched_setscheduler directly (and relying that we
somehow got CAP_SYS_NICE), use rtkit to do this for us.
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2284
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2060>
|
|
|
|
|
|
|
|
|
| |
There hasn't been a "panel main menu" for ten years now, and gnome-shell
already exports a 'toggle-overview' shortcut for the GNOME 3 replacement.
https://discourse.gnome.org/t/difference-between-show-the-overview-and-show-the-activities-overview-keyboard-shortcuts/6572
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1886>
|
|
|
|
|
|
| |
They were deprecated in meson 0.56.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1957>
|
|
|
|
|
|
|
|
| |
Matching against the driver doesn't seem to work, and isn't showing in
udevadm info. Switch to checking ID_PATH; hopefully it won't change too
often.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1892>
|
|
|
|
|
|
|
|
| |
This is a driver for old AMD/ATI GPUs and doesn't seem to support
modifiers. Tag this driver as not having support for KMS modifiers.
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1960937
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1872>
|
|
|
|
|
|
|
| |
Same as in gnome-settings-daemon, allows overriding where to install
udev rules files.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1844>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Virtual Kernel Mode Setting (vkms) is a virtual /dev/dri/card* device
not backed by any actual hardware. It's intended for testing purposes,
e.g. to run tests suites with a reproducable setup, or in continuous
integration pipelines.
Currently mutter don't have any tests that can run on top of vkms, but
will eventually get that. To prepare for the ability to do that, and
having said kernel module loaded without causing wierd issues with any
active session, add an udev rule that tells mutter to ignore any vkms
device.
Otherwise, when vkms is loaded, mutter would detect it, assume it's a
regular monitor, configure it as such, thus add a region of the stage
that ends up nowhere, which isn't very helpful. It might also conflict
with running actual tests that need to interact with vkms if the active
session has taken control of it.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1740>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Users who customized their workspace shortcuts before updating to
GNOME 40 are experiencing troubles when trying to use the same
keybinding for the horizontal shortcuts, because of hidden conflicts
with the vertical ones.
We can address this by registering the old shortcuts with Settings
without showing them in the UI, so that they are taken into account
by Settings' conflict resolution.
https://gitlab.gnome.org/GNOME/mutter/-/issues/1740
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1814>
|
|
|
|
|
|
|
|
|
| |
Lets wait until we have better ways to unredirect client buffers before
we start enabling KMS modifiers for amdgpu and nouveau; we end up with
mismatch between client buffer modifiers and primary plane modifier,
which right now needs to be the same for unredirection.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1792>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The intel DRM driver is known for not being able to handle multi head
setups when KMS modifiers are enabled, due to the implicitly selected
modifiers, while being more suitable for single head setups, cause
bandwidth issues when a certain number of monitor times resolution and
refresh rate is configured.
We don't yet support automatically finding a combination of modifiers
that work, and have because of this disabled KMS modifiers unless the
driver actually needs it.
Lets flip this configuration the other way around, changing the current
udev rule to decide wen to *disable* KMS modifier support, as it so that
only the Intel driver has this problem, while on the other hand, there
several drivers that requires modifiers to function at all.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1792>
|
|
|
|
|
|
|
|
| |
Workspaces were changed to a horizontal layout, so we should show
the keybindings for horizontal navigation in Settings instead of
the vertical ones.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1706>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1696>
|
|
|
|
|
|
|
| |
Make "Xwayland on demand" the default policy when Xwayland supports
"initfd" and remove the corresponding experimental feature.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1673>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Closing automatically Xwayland once all relevant X11 clients are gone is
inherently racy, if a new client comes along right at the time we're
killing Xwayland.
Fixing the possible race conditions between mutter, Xwayland and the X11
clients may take some time.
Meanwhile, make that an experimental feature "autoclose-xwayland".
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1673>
|
|
|
|
|
|
| |
Wording copied from `data/50-mutter-windows.xml`.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1573>
|
|
|
|
|
|
|
| |
If Xwayland was built with the X Security extension enabled, it should
be safe to use, there is no need to disable it by default from mutter.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1485
|
|
|
|
|
|
|
|
| |
The newline character `\n` in the schema does not produce a new line.
Use a newline instead.
fixes: dbe44f3a83e6a6bdc611bb298e3781a0aebbbd7b
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1483
|
|
|
|
| |
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1481
|
|
|
|
|
|
|
| |
The key was added in https://gitlab.gnome.org/GNOME/mutter/-/commit/af9df1e5b62b253e5f1d5f6eff89e45e3bed81b3
but not added to the list due to the string freeze.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1481
|
|
|
|
| |
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1481
|
|
|
|
|
|
|
|
|
|
|
| |
Some devices can't scanout to linear buffers directly as the hw is not
capable of eg rendering into a linear depth buffer.
Add code to force kms-modifiers on udev taged devices.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1408
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1443
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The X server, including Xwayland, can be compiled with different X11
extensions enabled at build time.
When an X11 extension is built in the X server, it's usually also
enabled at run time. Users can chose to disable those extensions at run
time using the X server command line option "-extension".
However, in the case of Xwayland, it is spawned automatically by the
Wayland compositor, and the command line options are not configurable
by users.
Add a new setting to disable a selected set of X extension in Xwayland
at startup, without needing to rebuild Xwayland.
Of course, if Xwayland is not built with a given extension support in
the first place (which is the default for the security extension for
example), that option has no effect.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1405
|
|
|
|
|
|
|
|
|
| |
Replace "whitelist" and "blacklist" with "allow_list" and "deny_list"
which better represent the purpose of those variables.
There is no functional change.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1396
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The check-alive feature is there for the user to be able to terminate
frozen applications more easily. However, sometimes applications are
implemented in a way where they fail to be reply to ping requests in a
timely manner, resulting in that, to the compositor, they are
indistinguishable from clients that have frozen indefinitely.
When using an application that has these issues, the GUI showed in
response to the failure to respond to ping requests can become annoying,
as it disrupts the visual presentation of the application.
To allow users to work-around these issues, add a setting allowing them
to configure the timeout waited until an application is considered
frozen, or disabling the check completely.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/1080
|