aboutsummaryrefslogtreecommitdiff
path: root/protocol
AgeCommit message (Collapse)AuthorFilesLines
2021-08-02river-layout: fix typo in protocolIsaac Freund1-3/+3
2021-07-22river-layout: make minor copyediting fixesIsaac Freund1-2/+2
2021-07-20river-layout: update to v3Isaac Freund2-256/+181
- Remove advertise_view and advertise_done events. Using the information provided by these for any purpose would make the layout far less predictable. Futhermore, in the months this has been available for use, to my knowledge nobody has actually used it for anything useful. - Replace the set/mod layout value events with a single user_command event. This simplifies the protocol and is more flexible for clients. - Add a layout_name argument to the commit request. This name is an arbitrary, user-facing string that might, for example, be displayed by a status bar. This was present in early drafts of the protocol, but was removed in favor of river-options. Since river-options itself has since been removed and this feature is nice to have, re-add it. - Rename main factor to main ratio in rivertile. The "factor" name was just legacy from dwm, "ratio" is much more accurate.
2021-04-27river-layout: update to v2Isaac Freund1-21/+76
This implements the changes to the river-layout protocol proposed in the previous commit removing river-options.
2021-04-27river-options: remove protocolIsaac Freund1-209/+0
This protocol involves far too much accidental complexity. The original motivating use-case was to provide a convenient way to send arbitrary data to layout clients at runtime in order to avoid layout clients needing to implement their own IPC and do this over a side-channel. Instead of implementing a quite complex but still rigid options protocol and storing this state in the compositor, instead we will simply add events to the layout protocol to support this use case. Consider the status quo event sequence: 1. send get_option_handle request (riverctl) 2. roundtrip waiting for first event (riverctl) 3. send set_foo_value request (riverctl) 4. receive set_foo_value request (river) 5. send foo_value event to all current handles (river) 6. receive foo_value event (rivertile) 7. send parameters_changed request (rivertile) 8. receive parameters_changed request (river) 9. send layout_demand (river) And compare with the event sequence after the proposed change: 1. send set_foo_value request (riverctl) 2. receive set_foo_value request (river) 3. send set_foo_value event (river) 4. send layout_demand (river) This requires *much* less back and forth between the server and clients and is clearly much simpler.
2021-04-20river-options: rework, bump to v2Isaac Freund2-162/+209
Options are now all global but may be overridden per-output. If an output local value is requested but none has been set, the global value is provided instead. This makes for much better ergonomics when configuring layout related options in particular.
2021-04-20river-layout: create and implement protocolLeon Henrik Plickat1-0/+201
Replace the current layout mechanism based on passing args to a child process and parsing it's stdout with a new wayland protocol. This much more robust and allows for more featureful layout generators. Co-authored-by: Isaac Freund <ifreund@ifreund.xyz>
2021-04-08river: update for wlroots 0.13.0Isaac Freund1-9/+88
2021-01-18river-option: compositor may ignore set requestsIsaac Freund1-11/+26
This allows the compositor to restrict options to a certain set of values, which can be desirable if the options affect compositor behavior. This was always the intended behavior of the protocol, but now it is explicitly stated.
2021-01-16river-options: create protocolIsaac Freund1-0/+147
2020-11-11meta: make copyright headers more maintainableIsaac Freund2-2/+2
- list all files as copyright "The River Developers" - add an AUTHORS file to acknowledge contributors
2020-10-31Implement wlr-output-power-management-unstable-v1 protocolMarten Ringwelski1-0/+128
2020-07-28meta: update layer shell xmlIsaac Freund1-2/+12
2020-07-24river-status: note that wl_outputs must be boundIsaac Freund1-1/+2
2020-06-16river-control: send output on success, fix issuesIsaac Freund1-10/+35
Add an output arg to the success event on the callback. This allows for implementing commands that return values, which are planned. Replace the array of null terminated strings with a series of requests each adding a single string to the args array. This is more idiomatic wayland. Add a seat argument to the run_command request to allow for proper multi-seat support in the future. Add missing destructor request.
2020-06-15org: unify gitignoreIsaac Freund1-2/+0
2020-06-04river-status: add seat status objectIsaac Freund1-8/+50
2020-06-03river-status: fix typoIsaac Freund1-1/+1
2020-06-03river-status: create an object for each outputIsaac Freund1-16/+36
2020-06-03Define the river status protocolIsaac Freund2-47/+54
This is a refinement of the now obsolete river-window-management protocol which has been deleted.
2020-05-24Split control into separate protocolIsaac Freund2-37/+64
2020-05-24Add callback to command request for error handlingIsaac Freund1-4/+25
2020-05-19Implement sending command from riverctlIsaac Freund1-1/+2
These commands are successfully received by the server, but not yet executed.
2020-05-19Sketch out river-window-management protocolIsaac Freund1-0/+58
2020-04-12Move protocol scanning to build.zigIsaac Freund1-1240/+0
2020-04-09Import layer shell protocolIsaac Freund1-0/+301
2020-03-19Initial commitIsaac Freund2-0/+1242