wl-mitm/proto/treeland-personalization-manager-v1.xml
Peter Cai 76f4ae4a73 Include all known protocols from wayland-explorer
Also adjust the build scripts so that we don't just export one big Rust
file...
2025-03-02 18:19:23 -05:00

432 lines
20 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<protocol name="treeland_personalization_manager_v1">
<copyright><![CDATA[
SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
SPDX-License-Identifier: MIT
]]></copyright>
<interface name="treeland_personalization_manager_v1" version="1">
<description summary="personalization manager">
This interface allows a client to customized display effects.
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.
</description>
<request name="get_window_context">
<description summary="get personalization window context">
set window background, shadow based on context
</description>
<arg name="id" type="new_id" interface="treeland_personalization_window_context_v1" />
<arg name="surface" type="object" interface="wl_surface" />
</request>
<request name="get_wallpaper_context">
<description summary="custom wallpaper context">
custom user wallpaper
</description>
<arg name="id" type="new_id" interface="treeland_personalization_wallpaper_context_v1" />
</request>
<request name="get_cursor_context">
<description summary="custom wallpaper context">
custom user cursor
</description>
<arg name="id" type="new_id" interface="treeland_personalization_cursor_context_v1" />
</request>
<request name="get_font_context">
<description summary="custom treeland and window global font context">
custom treeland and window global font context
</description>
<arg name="id" type="new_id" interface="treeland_personalization_font_context_v1" />
</request>
<request name="get_appearance_context">
<description summary="custom treeland window global settings context">
custom user treeland window appearance global
</description>
<arg name="id" type="new_id" interface="treeland_personalization_appearance_context_v1" />
</request>
</interface>
<interface name="treeland_personalization_wallpaper_context_v1" version="1">
<description summary="client custom wallpaper context">
This interface allows a client personalization wallpaper.
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.
</description>
<request name="set_fd">
<description summary="set the current user's wallpaper fd" />
<arg name="fd" type="fd" summary="wallpaper file fd" />
<arg name="metadata" type="string" summary="file related metadata information" />
</request>
<request name="set_identifier">
<description summary="identifier for the application window" />
<arg name="identifier" type="string" summary="Identifier for the application window" />
</request>
<enum name="options">
<description summary="xdg desktop portal supported keys" />
<entry name="preview" value="1" summary="whether to show a preview of the picture" />
<entry name="background" value="2" summary="configure screen background" />
<entry name="lockscreen" value="4" summary="configure screen wallpaper" />
</enum>
<request name="set_output">
<description summary="configure xdg desktop portal options" />
<arg name="output" type="string" summary="system output name" />
</request>
<request name="set_on">
<description summary="configure xdg desktop portal options" />
<arg name="options" type="uint" enum="options" summary="xdg desktop portal options" />
</request>
<request name="set_isdark">
<description summary="Set whether the current wallpaper is dark" />
<arg name="isdark" type="uint" summary="is dark" />
</request>
<request name="commit">
<description summary="commit configuration" />
</request>
<request name="get_metadata">
<description summary="get user save meta data">
get the current user's wallpaper
</description>
</request>
<request name="destroy" type="destructor">
<description summary="destroy the context object">
Destroy the context object.
</description>
</request>
<event name="metadata">
<description summary="get metadata event">
Send this signal after getting the user's wallpaper.
</description>
<arg name="metadata" type="string" summary="user meta data" />
</event>
</interface>
<interface name="treeland_personalization_cursor_context_v1" version="1">
<description summary="client custom cursor context">
This interface allows a client personalization cursor.
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.
</description>
<request name="set_theme">
<description summary="set system cursor theme" />
<arg name="name" type="string" summary="cursor theme name" />
</request>
<request name="get_theme">
<description summary="get system cursor theme" />
</request>
<request name="set_size">
<description summary="set system cursor size" />
<arg name="size" type="uint" summary="cursor size" />
</request>
<request name="get_size">
<description summary="get system cursor size" />
</request>
<request name="commit">
<description summary="commit configure">
if only one commit fails validation, the commit will fail
</description>
</request>
<request name="destroy" type="destructor">
<description summary="destroy the context object">
Destroy the context object.
</description>
</request>
<event name="verfity">
<description summary="verfity event">
Send this signal after commit cursor configure.
</description>
<arg name="success" type="int" summary="check whether the configuration is successful" />
</event>
<event name="theme">
<description summary="cursor theme changed event">
Send this signal after system cursor theme changed.
</description>
<arg name="name" type="string" summary="cursor theme name" />
</event>
<event name="size">
<description summary="cursor size changed event">
Send this signal after system cursor size changed.
</description>
<arg name="size" type="uint" summary="cursor size" />
</event>
</interface>
<interface name="treeland_personalization_window_context_v1" version="1">
<description summary="client custom window context">
This interface allows a client personalization window.
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.
</description>
<enum name="blend_mode">
<description summary="window blend mode">
Window blend mode defines how compositor composite window's surface over other
surfaces.
</description>
<entry name="transparent" value="0"
summary="Normal blend mode, just composite over background with alpha channel" />
<entry name="wallpaper" value="1" summary="Composite window over wallpaper" />
<entry name="blur" value="2" summary="Blur the content of the window background" />
</enum>
<request name="set_blend_mode">
<description summary="set window background blend mode">
Set window background blend mode
</description>
<arg name="mode" type="int" enum="window_blend_mode" />
</request>
<request name="set_round_corner_radius">
<description summary="set window round corner radius">
This request will set window round corner radius, invoking this request means user
want to
manage window round corner radius by itself. If not invoked, window round corner
radius will
be decided by compositor.
</description>
<arg name="radius" type="int" />
</request>
<request name="set_shadow">
<description summary="set window shadow">
Set window shadow's radius, offset and color, invoking this request indicates that
client want to manage
the window shadow by itself. If not invoked, window shadow will be decided by the
compositor
</description>
<arg name="radius" type="int" />
<arg name="offset_x" type="int" />
<arg name="offset_y" type="int" />
<arg name="r" type="int" />
<arg name="g" type="int" />
<arg name="b" type="int" />
<arg name="a" type="int" />
</request>
<request name="set_border">
<description summary="set window border">
Set window border width and color
</description>
<arg name="width" type="int" />
<arg name="r" type="int" />
<arg name="g" type="int" />
<arg name="b" type="int" />
<arg name="a" type="int" />
</request>
<enum name="enable_mode">
<description summary="window enable mode">
Set window enable mode
</description>
<entry name="enable" value="0" summary="force enable titlebar" />
<entry name="disable" value="1" summary="force disable titlebar" />
</enum>
<request name="set_titlebar">
<description summary="set if system titlebar is enabled">
Set if system titlebar is enabled
</description>
<arg name="mode" type="int" enum="enable_mode" />
</request>
<request name="destroy" type="destructor">
<description summary="destroy the context object">
Destroy the context object.
</description>
</request>
</interface>
<interface name="treeland_personalization_font_context_v1" version="1">
<description summary="treeland window global font settings">
This interface allows set treeland window global font settings.
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.
</description>
<event name="font">
<description summary="font event">
Send this signal after setting the system font.
</description>
<arg name="font_name" type="string" summary="font name" />
</event>
<event name="monospace_font">
<description summary="monospace font event">
Send this signal after setting the system monospace font.
</description>
<arg name="font_name" type="string" summary="monospace font name" />
</event>
<event name="font_size">
<description summary="font size">
Send this signal after setting the system font size.
</description>
<arg name="font_size" type="uint" summary="font size" />
</event>
<request name="set_font_size">
<description summary="set system font size">
Set the system font size
</description>
<arg name="size" type="uint" summary="font size" />
</request>
<request name="get_font_size">
<description summary="get system font size">
Get the system font size
</description>
</request>
<request name="set_font">
<description summary="set system font">
Set the system font
</description>
<arg name="font_name" type="string" summary="font name" />
</request>
<request name="get_font">
<description summary="get system font">
Get the system font
</description>
</request>
<request name="set_monospace_font">
<description summary="set system monospace font">
Set the system monospace font
</description>
<arg name="font_name" type="string" summary="monospace font name" />
</request>
<request name="get_monospace_font">
<description summary="get system monospace font">
Get the system monospace font
</description>
</request>
<request name="destroy" type="destructor">
<description summary="destroy the context object">
Destroy the context object.
</description>
</request>
</interface>
<interface name="treeland_personalization_appearance_context_v1" version="1">
<description summary="treeland window global appearance settings">
This interface allows set treeland window global appearance settings.
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.
</description>
<enum name="theme_type">
<description summary="window theme type" />
<entry name="auto" value="1" summary="window auto theme" />
<entry name="light" value="2" summary="window light theme" />
<entry name="dark" value="4" summary="window dark theme" />
</enum>
<enum name="error">
<entry name="invalid_round_corner_radius" value="0" summary="Wrong round corner radius" />
<entry name="invalid_icon_theme" value="1" summary="Wrong icon theme" />
<entry name="invalid_active_color" value="2" summary="Wrong active color" />
<entry name="invalid_window_opacity" value="4" summary="Wrong window opacity" />
<entry name="invalid_window_theme_type" value="8" summary="Wrong theme type" />
<entry name="invalid_window_titlebar_height" value="16" summary="Wrong window titlebar height" />
</enum>
<event name="round_corner_radius">
<description summary="round corner radius event">
Send this signal after setting the round corner radius.
</description>
<arg name="radius" type="int" summary="round corner radius" />
</event>
<event name="icon_theme">
<description summary="icon theme event">
Send this signal after setting the system icon theme.
</description>
<arg name="theme_name" type="string" summary="icon theme name" />
</event>
<event name="active_color">
<description summary="active color">
Send this signal after setting the system active color
</description>
<arg name="active_color" type="string" summary="active color" />
</event>
<event name="window_opacity">
<description summary="window opacity">
Send this signal after setting the system active color
</description>
<arg name="opacity" type="uint" summary="window opacity" />
</event>
<event name="window_theme_type">
<description summary="window theme">
Send this signal after setting the system theme
</description>
<arg name="type" type="uint" enum="theme_type" summary="window theme type" />
</event>
<event name="window_titlebar_height">
<description summary="window titlebar height">
Send this signal after setting the window titlebar height
</description>
<arg name="height" type="uint" summary="window titlebar height" />
</event>
<request name="set_round_corner_radius">
<description summary="set window round corner radius">
Set window round corner radius
</description>
<arg name="radius" type="int" />
</request>
<request name="get_round_corner_radius">
<description summary="get window round corner radius">
Get window round corner radius
</description>
</request>
<request name="set_icon_theme">
<description summary="set system icon theme">
Set the system icon theme
</description>
<arg name="theme" type="string" summary="icon theme" />
</request>
<request name="get_icon_theme">
<description summary="get system icon theme">
Get the system icon theme
</description>
</request>
<request name="set_active_color">
<description summary="set system active color">
Set the system active color
</description>
<arg name="color" type="string" summary="rgb" />
</request>
<request name="get_active_color">
<description summary="get system active color">
Get the system active color
</description>
</request>
<request name="set_window_opacity">
<description summary="set window window opacity">
Set the window window opacity
</description>
<arg name="opacity" type="uint" summary="opacity" />
</request>
<request name="get_window_opacity">
<description summary="get window window opacity">
Get the window window opacity
</description>
</request>
<request name="set_window_theme_type">
<description summary="set window theme type">
Set the window theme.
</description>
<arg name="type" type="uint" enum="theme_type" summary="window theme type" />
</request>
<request name="get_window_theme_type">
<description summary="get window theme type">
Get the window theme type
</description>
</request>
<request name="set_window_titlebar_height">
<description summary="set window titlebar height">
Set the window titlebar height
</description>
<arg name="height" type="uint" summary="window titlebar height" />
</request>
<request name="get_window_titlebar_height">
<description summary="get window titlebar height">
Get the window titlebar height
</description>
</request>
<request name="destroy" type="destructor">
<description summary="destroy the context object">
Destroy the context object.
</description>
</request>
</interface>
</protocol>