Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

[DON'T MERGE] wlr-workspaces implementation #2357

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

ammen99
Copy link
Member

@ammen99 ammen99 commented Jul 30, 2020

This is my work so far on implementing swaywm/wlr-protocols#35

I decided to first implement the protocol in its current form (with slight modifications as I saw fit), and I'd like feedback on them.
If it looks okay I will rename wlr to ext and open a PR against wayland-protocols as well.

The only notable change from the PR is that all synchronization is done at the workspace-manager level (both commit and done are moved there), although we could make them per workspace-group.

About the implementation, it should be very similar to foreign-toplevel-management, in almost all aspects. I am not 100% sure on the commit part (with pending, current & server_state).

If someone wants to test, I have added a wayfire plugin to support this protocol: WayfireWM/wayfire#647

examples/wlr-workspace.c Outdated Show resolved Hide resolved
struct wlr_workspace_group_handle_v1 *group;

// request from the client
uint32_t pending, current;
Copy link

@Anakael Anakael Jul 30, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pending_state, current_state better, I think, Or pending_data and current_data

types/wlr_workspace_v1.c Outdated Show resolved Hide resolved
types/wlr_workspace_v1.c Outdated Show resolved Hide resolved
types/wlr_workspace_v1.c Outdated Show resolved Hide resolved
types/wlr_workspace_v1.c Outdated Show resolved Hide resolved
types/wlr_workspace_v1.c Outdated Show resolved Hide resolved
@ammen99
Copy link
Member Author

ammen99 commented Aug 4, 2020

The different states that a workspace can have.
</description>

<entry name="active" value="0" summary="the workspace is active"/>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about add some usefull states mentioned in https://github.com/swaywm/wlr-protocols/pull/35/files
?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the wayland-protocols PR here: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/40
I have added urgent and hidden. I'll also update this PR once it is approved upstream.


wl_display_flush(display);

if (monitor != false) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if (monitor) is better

add wlr-workspace header

start wlr_workspace impl by copying from wlr_foreign_toplevel

add more stubs

workspace: implement output_enter/leave

add create methods

start with impl destroy

finish impelmenttation of workspace-unstable

implement wlr-workspace example

small fixes to the example client

fix names as requested in review
@ammen99
Copy link
Member Author

ammen99 commented May 21, 2021

I have now updated the implementation to match the latest changes in the PR (so this is ready for review)

@Anakael
Copy link

Anakael commented Jul 12, 2021

Any updates here?

@ammen99
Copy link
Member Author

ammen99 commented Jul 13, 2021

Any updates here?

PRs are waiting for a review.

@emersion
Copy link
Member

emersion commented Nov 1, 2021

wlroots has migrated to gitlab.freedesktop.org. This pull request has been moved to:

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/2357

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants