dde shell manager

This interface allows DDE change some treeland function.

Warning! The protocol described in this file is currently in the testing phase. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes can only be done by creating a new major version of the extension.

get_shell_surface(id: new_id<treeland_dde_shell_surface_v1>, surface: object<wl_surface>)
Argument
Type
Description
idnew_id<treeland_dde_shell_surface_v1>
surfaceobject<wl_surface>
create a shell surface from a surface

Create a shell surface for an existing wl_surface.

Only one shell surface can be associated with a given surface.

Recommended for use with xdg_surface.

get_treeland_dde_active(id: new_id<treeland_dde_active_v1>, seat: object<wl_seat>)
Argument
Type
Description
idnew_id<treeland_dde_active_v1>
seatobject<wl_seat>
seat associated with the dde_active
create a new dde active

Create a new dde active for a given seat.

get_treeland_multitaskview(id: new_id<treeland_multitaskview_v1>)
Argument
Type
Description
idnew_id<treeland_multitaskview_v1>
create a new multitaskview context

Create a new multitaskview context for toggle.

get_treeland_window_picker(id: new_id<treeland_window_picker_v1>)
Argument
Type
Description
idnew_id<treeland_window_picker_v1>
create a new window picker

Create a new window picker to pick window.

get_treeland_lockscreen(id: new_id<treeland_lockscreen_v1>)
Argument
Type
Description
idnew_id<treeland_lockscreen_v1>
create a new lockscreen context

Create a new lockscreen context for toggle.


An opened toplevel

A treeland_dde_shell_handle_v1 object represents an opened toplevel window. Each app may have multiple opened toplevels.

Warning! The protocol described in this file is currently in the testing phase. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes can only be done by creating a new major version of the extension.

Argument
Type
Description
widthint
heightint
anchoruint<treeland_window_overlap_checker.anchor>
outputobject<wl_output>allow null
Register the detected surface

This interface is used to receive the detected surface. When the xdgshell window in the workspace overlaps with the detected window, an event will be sent to notify the client to process it. The window position will only be recorded when this interface is called. If the window moves, this interface needs to be called again.

destroy()
destroy the treeland_window_overlap_checker object

Destroys the treeland_window_overlap_checker object.

This request should be called either when the client does not want to use the toplevel anymore or after the closed event to finalize the destruction of the object.

enter()
Window has overlapped

This event is sent when windows overlapped. This event is sent only once.

leave()
Window not has overlapped

This event is sent when windows not overlapped. This event is sent only once.

anchor { top, bottom, left, right } 
Argument
Value
Description
top1
the top edge of the anchor rectangle
bottom2
the bottom edge of the anchor rectangle
left4
the left edge of the anchor rectangle
right8
the right edge of the anchor rectangle
same layershell

same layershell


metadata interface

An interface that may be implemented by a wl_surface, for implementations that provide the shell user interface.

It provides requests to set surface role, set skip, set the position set auto placement in output coordinates.

On the server side the object is automatically destroyed when the related wl_surface is destroyed. On client side, treeland_dde_shell_surface_v1.destroy() must be called before destroying the wl_surface object.

destroy()
destroy the treeland_dde_shell_surface_v1 object

The treeland_dde_shell_surface_v1 interface is removed from the wl_surface object that was turned into a shell surface with the treeland_shell_v1.get_treeland_dde_shell_surface request.

The shell surface role is lost and wl_surface is unmapped.

set_surface_position(x: int, y: int)
Argument
Type
Description
xint
x coordinate in global space
yint
y coordinate in global space
change the shell surface position

Move the surface to new coordinates.

Coordinates are global, for example 50,50 for a 1920,0+1920x1080 output is 1970,50 in global coordinates space.

Argument
Type
Description
roleuint<treeland_dde_shell_surface_v1.role>
assign a role to this surface

Assign a role to a shell surface.

set_auto_placement(y_offset: uint)
Argument
Type
Description
y_offsetuint
y position is relative to the cursor bottom
Place the surface at the bottom of the cursor area

Set the vertical alignment of the surface within the cursor width.

Do not use it together with set_surface_position to avoid exceptions.

The position of the surface will be controlled by the compositor after the request, including preventing it from being displayed beyond the edge of the output.

set_skip_switcher(skip: uint)
Argument
Type
Description
skipuint
Boolean value that sets whether to skip the window switcher.
make the window not appear in a switcher

Setting this bit will indicate that the window prefers not to be listed in a switcher.

set_skip_dock_preview(skip: uint)
Argument
Type
Description
skipuint
Boolean value that sets whether to skip the dock preview.
make the window not appear in a dock preview

Setting this bit will indicate that the window prefers not to be listed in a dock preview.

set_skip_muti_task_view(skip: uint)
Argument
Type
Description
skipuint
Boolean value that sets whether to skip the mutitask view.
make the window not appear in a mutitask view

Setting this bit will indicate that the window prefers not to be listed in a mutitask view.

set_accept_keyboard_focus(accept: uint)
Argument
Type
Description
acceptuint
Boolean value that sets whether to accept keyboard focus
control whether the surface accepts keyboard focus

Setting this will determine whether the surface can receive keyboard focus. When set to 0, the surface will not receive keyboard focus even when clicked or activated. When set to 1 (default), the surface will receive keyboard focus normally.

role { overlay } 
Argument
Value
Description
overlaysince 11
available roles for surfaces

These values indicate which roles a surface can be rendered in, They are ordered by z depth.

Displayed below wlr-layer-shell, at the overlay level of the workspace.

Multiple surfaces can share a single role, and ordering within a single role is undefined.


metadata interface

An interface used to monitor special events.

destroy
Type: destructorsince 1
destroy()
destroy the treeland_dde_active_v1 object
Argument
Type
Description
reasonuint<treeland_dde_active_v1.reason>
activeIn event
Argument
Type
Description
reasonuint<treeland_dde_active_v1.reason>
activeOut event
start_drag()
sent when the compositor starts a drag operation
drop()
sent when the compositor drop operation
reason { mouse, wheel } 
Argument
Value
Description
mousesince 10
wheelsince 11
event reason

multitaskview context interface

An interface used to control multitaskview.

destroy
Type: destructorsince 1
destroy()
destroy the treeland_multitaskview_v1 object
toggle()
toggle multitaskview

Show or hide the multitaskview.


window picker interface

An interface used to pick window and return credentials.

destroy
Type: destructorsince 1
destroy()
destroy the treeland_window_picker_v1 object
pick(hint: string)
Argument
Type
Description
hintstring
Hint of pick process
pick a window

Pick a window to get information.

window(pid: int)
Argument
Type
Description
pidint
Pid of picked window
window picked

Picked window information.


lockscreen interface

An interface used to operate lockscreen.

destroy
Type: destructorsince 1
destroy()
destroy the treeland_lockscreen_v1 object
lock()
lock screen

Lock the screen.

shutdown()
show shutdown

Show shutdown.

switch_user()
switch user

Switch user.


Compositor Support

Mutter
Mutter
47.3
KWin
KWin
6.3
Sway
Sway
1.10
COSMIC
COSMIC
0.1
Hyprland
Hyprland
0.44
niri
25.01
Weston
Weston
14
Mir
Mir
2.19
GameScope
GameScope
3.15.14
Jay
1.9.0
Labwc
Labwc
0.8.2
Wayfire
0.9.0
Treeland
Treeland
0.5.17
Louvre
Louvre
2.14.1
treeland_dde_shell_manager_v1
x
x
x
x
x
x
x
x
x
x
x
x
1
x

SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. SPDX-License-Identifier: MIT