Commit graph

84 commits

Author SHA1 Message Date
Simon Ser
8468608cf5
screencopy: add missing wl_shm.format enum attribute 2020-05-25 17:58:46 +02:00
Martin Michlmayr
4a7a0494bd Fix typos 2020-05-17 14:29:08 +02:00
Guido Günther
55cdefe663 Add output power management protocol
This specifies how to control power management modes of outputs.

Closes: #56
2020-02-20 16:24:07 +01:00
Andri Yngvason
c11408942e virtual-pointer: Add request for mapping to specific output 2020-02-10 21:01:07 +01:00
Andri Yngvason
f80a44fa9b virtual-pointer: Align with wlroots 2020-02-10 21:01:07 +01:00
Nikita Tsukanov
67abc798b0 Properly reference zwlr_layer_shell_v1.layer
Referencing enums from other interfaces without interface name seems to be invalid.
2020-01-15 23:06:25 +01:00
Josef Gajdusek
571766f797 Add wlr-virtual-pointer-unstable-v1 2019-12-31 10:29:36 +01:00
Jason
29d4a59df8 Amend typo in protocol 2019-11-23 10:34:01 -05:00
Andri Yngvason
35b82d47eb screencopy: Add request and event for coarse damage reporting 2019-10-22 10:41:09 -04:00
Timidger
98efe0bc24 layer_shell: set layer of existing surface 2019-10-16 16:40:19 +03:00
William Wold
59497d9379 number of [coordinates] -> distance from the edge 2019-07-05 11:33:49 -04:00
William Wold
895f310f64 Clearify under what conditions the exclusive zone has an effect 2019-07-05 11:33:49 -04:00
Ilia Bozhinov
54579f72b8 foreign-toplevel-management: add support for fullscreening toplevels
This can be used for fullscreening an app from a taskbar, and
potentially also for panels to autohide themselves in case a
fullscreen toplevel appears.
2019-04-26 20:45:25 +03:00
emersion
d278d20905 Address @dcz-purism's comments 2019-03-16 09:53:09 -06:00
emersion
125b006f28 Remove arbitrary modes 2019-03-16 09:53:09 -06:00
emersion
6c576d109d Introduce custom modes 2019-03-16 09:53:09 -06:00
emersion
c2d41a8654 Address @ddevault comments 2019-03-16 09:53:09 -06:00
emersion
7981765515 All heads must be either enabled or disabled 2019-03-16 09:53:09 -06:00
emersion
4361785c72 Add wlr-output-management-unstable-v1
This commit adds a new output management protocol. It can be used to get the
current output configuration and apply a new one. It's based on the GNOME D-Bus
API [1] and the KDE protocol [2] [3].

Goals:

* High-level API, not a copy of KMS
* Protect against races wrt. hotplugging
* Extensible via backwards-compatible changes
* Atomic (both when reading current config and when applying a new one)

Features:

* Read all outputs including disabled ones
  * Identification (name, description), available modes, physical size
  * Current mode, enabled/disabled
  * Position, scale, transform
* Write
  * Modeset, enable/disable
  * Position, scale, transform

Non-features (ie. features in GNOME or KDE excluded from this protocol):

* No DPMS (left out for another protocol because it can operate on wl_output)
* No gamma ramps (left out for another protocol, we already have one)
* Cannot set the primary logical monitor and the presentation monitor (should be
  a separate protocol, could use wl_output)

Available outputs and their current configuration are advertised when the client
binds to the manager as "heads" (a head is an enabled or disabled output).

Clients can create a configuration object, add some outputs to configure and
apply the new state.

The GNOME protocol has a concept of "logical monitor": it's a region of the
screen you can assign physical monitors to. You can modeset and enable/disable
physical monitors while you can position, scale and transform logical monitors.
This nicely splits physical properties and logical properties. I've tried to
design a protocol with a similar concept [4], but it turned out being pretty
complicated since you need to have at least two extra objects (one to read the
current logical monitors, one to configure them). I've decided against this
approach for now.

TODO:

* Custom modes
* Output cloning with different resolutions or underscan
* Should transform & scale be per slot or per output device?
* Check all of this makes sense for non-KMS outputs?
* Make sure a compositor can offload everything to a helper client (ie. it
  doesn't apply an initial default modeset on hotplug)
* Should some features be optional?
* Better wording
* Should zero modes mean the output doesn't support modes? What to do if an EDID
  is malformed and returns zero modes?

Possible future features:

* Modes aspect ratio and interlaced modes
* Underscanning? (needs investigation)
* is-builtin property for heads? (should this be in the compositor?)
* Expose suggested panel orientation and tiling data?
* Variable refresh rate? (needs investigation)

References:

[1]: https://gitlab.gnome.org/GNOME/mutter/blob/master/src/org.gnome.Mutter.DisplayConfig.xml#L292
[2]: https://github.com/KDE/kwayland/blob/master/src/client/protocols/outputdevice.xml
[3]: https://github.com/KDE/kwayland/blob/master/src/client/protocols/output-management.xml
[4]: https://paste.sr.ht/%7Eemersion/8727ea50437fff3927c81c40c0ecc9c9885817ef
2019-03-16 09:53:09 -06:00
Drew DeVault
4dde2728f1
Merge pull request #34 from YaLTeR/data-control-primary
Support primary selection in data-control
2019-02-15 15:24:26 +01:00
Ivan Molodetskikh
151664b67a
Make using a data source twice a protocol error 2019-02-15 12:38:59 +03:00
Ivan Molodetskikh
06b41b7ff4
Clarify that data sources can only be used once 2019-02-15 12:38:58 +03:00
Ivan Molodetskikh
caf9c74946
Clarify when the first selection events are sent 2019-02-15 12:38:58 +03:00
Ivan Molodetskikh
3953961870
Add data_control_device.{set_,}primary_selection 2019-01-29 19:16:06 +03:00
Ivan Molodetskikh
3f831de2bb
Fix data_control_device.data_offer description
Data offers are invalidated by selection events, not by new data_offer
events themselves.
2019-01-29 19:16:06 +03:00
Ivan Molodetskikh
a003e45ba1
Fix data_control_device.selection summary 2019-01-29 19:06:38 +03:00
Ivan Molodetskikh
3c1e415eec
Fix data_control_device.set_selection description 2019-01-29 19:06:00 +03:00
Drew DeVault
4ff1cda832
Merge pull request #25 from emersion/data-control
Add wlr-data-control-unstable-v1
2019-01-07 15:25:23 -05:00
emersion
cdd0eddd54
Add wlr-data-control-unstable-v1 2018-12-30 02:47:11 +01:00
emersion
6b442ab091
Merge pull request #26 from ammen99/master
add wlr-foreign-toplevel-management protocol to enumerate and control desktop surfaces
2018-12-09 09:08:22 +01:00
Ilia Bozhinov
60e33b7e36 add wlr-foreign-toplevel-management-v1 protocol
This protocol enables the creation of taskbars, docks, etc. by providing
them a means of listing and controlling opened applications.
2018-12-08 14:19:10 +01:00
emersion
014360a2b0
Merge pull request #28 from swaywm/install
Add Makefile and pkg-config entry
2018-10-12 16:17:26 +02:00
Drew DeVault
723f9c03a2 Add Makefile and pkg-config entry 2018-10-12 10:14:24 -04:00
Drew DeVault
77ee60a6e9
Merge pull request #24 from emersion/gamma-control
Add gamma control
2018-08-06 14:03:49 -04:00
Drew DeVault
c99e4dd86c
Merge pull request #17 from emersion/screencopy
Add screencopy protocol
2018-07-28 09:16:37 -04:00
emersion
34366dbbcc Disambiguate unicity of gamma controls 2018-07-22 13:53:16 +01:00
emersion
1c76f50579 Improve gamma_size description 2018-07-22 13:45:36 +01:00
emersion
d2a96796ec Add gamma control 2018-07-19 00:23:56 +01:00
emersion
9b652d3dd4
screencopy: remove invalid_output_region, format and stride are now enforced 2018-06-23 18:42:19 +01:00
emersion
d105604f15
screencopy: fix typos and minor text issues 2018-06-23 15:18:43 +01:00
emersion
494de01024
screencopy: add invalid_output_region error, simplify overlay_cursor description 2018-06-23 15:12:49 +01:00
emersion
5841bde0ad
screencopy: add capture_output_region 2018-06-23 14:12:06 +01:00
emersion
a7d1452ec4
screencopy: move flags to a separate event 2018-06-23 14:03:21 +01:00
emersion
9c0b0a7092
Improve wording, add presentation timestamp 2018-06-22 22:21:11 +01:00
emersion
faeda4cf13
Remove scale and transform 2018-06-22 22:11:58 +01:00
emersion
063f96463e
Simplify manager interface 2018-06-22 22:11:57 +01:00
emersion
75f284b64f
Add first draft of the screencopy protocol 2018-06-22 22:11:54 +01:00
Drew DeVault
acc39751ad
Merge pull request #11 from atomnuker/master
A DMA-BUF export protocol
2018-06-22 05:38:19 -07:00
Rostislav Pehlivanov
dec67642b6 Add a DMA-BUF export protocol 2018-06-17 14:39:47 +01:00
emersion
e706ef0eaf
Merge pull request #22 from dcz-purism/patch-1
Fix typos in wlr_layer_shell
2018-06-04 21:06:03 +01:00