mpris and bar control impl

gitignore

fix import error
This commit is contained in:
Samuel Onoja committed 2026-10-05 16:12:24 +01:00
1 parent 73f21e20ce
commit 8a0dd7615e
42 files changed
+4026 -227

No files matched your search

+560
View File
@@ -0,0 +1,560 @@
/* Generated by wayland-scanner 1.26.0 */
#ifndef FERESE_SHELL_V1_CLIENT_PROTOCOL_H
#define FERESE_SHELL_V1_CLIENT_PROTOCOL_H
#include <stdint.h>
#include <stddef.h>
#include "wayland-client.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @page page_ferese_shell_v1 The ferese_shell_v1 protocol
* @section page_ifaces_ferese_shell_v1 Interfaces
* - @subpage page_iface_ferese_shell_manager_v1 - create a capability-scoped Ferese shell controller
* - @subpage page_iface_ferese_shell_v1 - managed-window metadata and shell control
* @section page_copyright_ferese_shell_v1 Copyright
* <pre>
*
* Copyright 2026 Ferese contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
* </pre>
*/
struct ferese_shell_manager_v1;
struct ferese_shell_v1;
#ifndef FERESE_SHELL_MANAGER_V1_INTERFACE
#define FERESE_SHELL_MANAGER_V1_INTERFACE
/**
* @page page_iface_ferese_shell_manager_v1 ferese_shell_manager_v1
* @section page_iface_ferese_shell_manager_v1_desc Description
*
* This private global is visible only to clients granted the shell-control
* capability. It does not assign a Wayland surface role.
* @section page_iface_ferese_shell_manager_v1_api API
* See @ref iface_ferese_shell_manager_v1.
*/
/**
* @defgroup iface_ferese_shell_manager_v1 The ferese_shell_manager_v1 interface
*
* This private global is visible only to clients granted the shell-control
* capability. It does not assign a Wayland surface role.
*/
extern const struct wl_interface ferese_shell_manager_v1_interface;
#endif
#ifndef FERESE_SHELL_V1_INTERFACE
#define FERESE_SHELL_V1_INTERFACE
/**
* @page page_iface_ferese_shell_v1 ferese_shell_v1
* @section page_iface_ferese_shell_v1_desc Description
*
* Window, workspace, and output identifiers are unsigned 64-bit values
* encoded as high and low 32-bit words. Each snapshot atomically replaces
* the prior shell view after snapshot_end.
* @section page_iface_ferese_shell_v1_api API
* See @ref iface_ferese_shell_v1.
*/
/**
* @defgroup iface_ferese_shell_v1 The ferese_shell_v1 interface
*
* Window, workspace, and output identifiers are unsigned 64-bit values
* encoded as high and low 32-bit words. Each snapshot atomically replaces
* the prior shell view after snapshot_end.
*/
extern const struct wl_interface ferese_shell_v1_interface;
#endif
#define FERESE_SHELL_MANAGER_V1_GET_SHELL 0
#define FERESE_SHELL_MANAGER_V1_DESTROY 1
/**
* @ingroup iface_ferese_shell_manager_v1
*/
#define FERESE_SHELL_MANAGER_V1_GET_SHELL_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_manager_v1
*/
#define FERESE_SHELL_MANAGER_V1_DESTROY_SINCE_VERSION 1
/** @ingroup iface_ferese_shell_manager_v1 */
static inline void
ferese_shell_manager_v1_set_user_data(struct ferese_shell_manager_v1 *ferese_shell_manager_v1, void *user_data)
{
wl_proxy_set_user_data((struct wl_proxy *) ferese_shell_manager_v1, user_data);
}
/** @ingroup iface_ferese_shell_manager_v1 */
static inline void *
ferese_shell_manager_v1_get_user_data(struct ferese_shell_manager_v1 *ferese_shell_manager_v1)
{
return wl_proxy_get_user_data((struct wl_proxy *) ferese_shell_manager_v1);
}
static inline uint32_t
ferese_shell_manager_v1_get_version(struct ferese_shell_manager_v1 *ferese_shell_manager_v1)
{
return wl_proxy_get_version((struct wl_proxy *) ferese_shell_manager_v1);
}
/**
* @ingroup iface_ferese_shell_manager_v1
*/
static inline struct ferese_shell_v1 *
ferese_shell_manager_v1_get_shell(struct ferese_shell_manager_v1 *ferese_shell_manager_v1)
{
struct wl_proxy *id;
id = wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_manager_v1,
FERESE_SHELL_MANAGER_V1_GET_SHELL, &ferese_shell_v1_interface, wl_proxy_get_version((struct wl_proxy *) ferese_shell_manager_v1), 0, NULL);
return (struct ferese_shell_v1 *) id;
}
/**
* @ingroup iface_ferese_shell_manager_v1
*/
static inline void
ferese_shell_manager_v1_destroy(struct ferese_shell_manager_v1 *ferese_shell_manager_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_manager_v1,
FERESE_SHELL_MANAGER_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_manager_v1), WL_MARSHAL_FLAG_DESTROY);
}
#ifndef FERESE_SHELL_V1_WINDOW_STATE_ENUM
#define FERESE_SHELL_V1_WINDOW_STATE_ENUM
enum ferese_shell_v1_window_state {
FERESE_SHELL_V1_WINDOW_STATE_FOCUSED = 1,
FERESE_SHELL_V1_WINDOW_STATE_URGENT = 2,
FERESE_SHELL_V1_WINDOW_STATE_FULLSCREEN = 4,
FERESE_SHELL_V1_WINDOW_STATE_FLOATING = 8,
};
#endif /* FERESE_SHELL_V1_WINDOW_STATE_ENUM */
#ifndef FERESE_SHELL_V1_FAILED_REQUEST_ENUM
#define FERESE_SHELL_V1_FAILED_REQUEST_ENUM
enum ferese_shell_v1_failed_request {
FERESE_SHELL_V1_FAILED_REQUEST_ACTIVATE_WINDOW = 0,
FERESE_SHELL_V1_FAILED_REQUEST_CLOSE_WINDOW = 1,
FERESE_SHELL_V1_FAILED_REQUEST_SELECT_OVERVIEW_WINDOW = 2,
FERESE_SHELL_V1_FAILED_REQUEST_ACTIVATE_WORKSPACE = 3,
};
#endif /* FERESE_SHELL_V1_FAILED_REQUEST_ENUM */
/**
* @ingroup iface_ferese_shell_v1
* @struct ferese_shell_v1_listener
*/
struct ferese_shell_v1_listener {
/**
*/
void (*snapshot_begin)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t serial);
/**
*/
void (*window)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t window_hi,
uint32_t window_lo,
uint32_t workspace_hi,
uint32_t workspace_lo,
const char *app_id,
const char *title,
uint32_t state);
/**
* @param focused one when this is the focused output
*/
void (*output)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t output_hi,
uint32_t output_lo,
const char *name,
uint32_t active_workspace_hi,
uint32_t active_workspace_lo,
uint32_t focused);
/**
* @param output_hi zero when the workspace has no output
* @param output_lo zero when the workspace has no output
* @param index one-based position on this output
* @param window_count managed windows, including floating windows
* @param visible one when displayed on its output
* @param focused one when visible on the focused output
*/
void (*workspace)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t workspace_hi,
uint32_t workspace_lo,
uint32_t output_hi,
uint32_t output_lo,
const char *name,
uint32_t index,
uint32_t window_count,
uint32_t visible,
uint32_t focused);
/**
*/
void (*snapshot_end)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t serial);
/**
* @param active one when overview is active
*/
void (*overview_state)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t active);
/**
*/
void (*request_failed)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t request,
uint32_t object_hi,
uint32_t object_lo,
const char *reason);
/**
* marks completion of initial protocol setup
*
*
*/
void (*capabilities)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t version);
/**
* complete validated configuration for live reload
*
* Sent only after the compositor has accepted the complete
* configuration. Followed by bounded UTF-8 chunks and config_end.
* Clients apply only the completed source, preserving their
* current appearance if parsing fails.
* @since 2
*/
void (*config_begin)(void *data,
struct ferese_shell_v1 *ferese_shell_v1);
/**
* @since 2
*/
void (*config_chunk)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
const char *source);
/**
* @since 2
*/
void (*config_end)(void *data,
struct ferese_shell_v1 *ferese_shell_v1);
/**
* @since 3
*/
void (*logout_cancelled)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t serial);
/**
* @since 3
*/
void (*logout_requested)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
uint32_t serial,
const char *output_name);
/**
* toggle the shortcut hint on the focused output
*
* Explicit requests are independent of the guide-at-login
* preference.
* @since 5
*/
void (*toggle_keybinding_guide)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
const char *output_name);
/**
* toggle the display mode chooser on the focused output
*
*
* @since 6
*/
void (*toggle_display_mode)(void *data,
struct ferese_shell_v1 *ferese_shell_v1,
const char *output_name);
/**
* physical monitor configuration changed
*
* Query the output IPC inventory after reconciliation. This
* includes disabled monitors and mirror targets without a logical
* wl_output.
* @since 6
*/
void (*monitor_state_changed)(void *data,
struct ferese_shell_v1 *ferese_shell_v1);
};
/**
* @ingroup iface_ferese_shell_v1
*/
static inline int
ferese_shell_v1_add_listener(struct ferese_shell_v1 *ferese_shell_v1,
const struct ferese_shell_v1_listener *listener, void *data)
{
return wl_proxy_add_listener((struct wl_proxy *) ferese_shell_v1,
(void (**)(void)) listener, data);
}
#define FERESE_SHELL_V1_ACTIVATE_WINDOW 0
#define FERESE_SHELL_V1_CLOSE_WINDOW 1
#define FERESE_SHELL_V1_ACTIVATE_WORKSPACE 2
#define FERESE_SHELL_V1_ENTER_OVERVIEW 3
#define FERESE_SHELL_V1_EXIT_OVERVIEW 4
#define FERESE_SHELL_V1_SELECT_OVERVIEW_WINDOW 5
#define FERESE_SHELL_V1_DESTROY 6
#define FERESE_SHELL_V1_CONFIRM_LOGOUT 7
#define FERESE_SHELL_V1_CANCEL_LOGOUT 8
#define FERESE_SHELL_V1_CONFIRM_LOGOUT_WITH_INHIBITORS 9
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_SNAPSHOT_BEGIN_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_WINDOW_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_OUTPUT_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_WORKSPACE_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_SNAPSHOT_END_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_OVERVIEW_STATE_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_REQUEST_FAILED_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_CAPABILITIES_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_CONFIG_BEGIN_SINCE_VERSION 2
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_CONFIG_CHUNK_SINCE_VERSION 2
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_CONFIG_END_SINCE_VERSION 2
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_LOGOUT_CANCELLED_SINCE_VERSION 3
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_LOGOUT_REQUESTED_SINCE_VERSION 3
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_TOGGLE_KEYBINDING_GUIDE_SINCE_VERSION 5
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_TOGGLE_DISPLAY_MODE_SINCE_VERSION 6
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_MONITOR_STATE_CHANGED_SINCE_VERSION 6
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_ACTIVATE_WINDOW_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_CLOSE_WINDOW_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_ACTIVATE_WORKSPACE_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_ENTER_OVERVIEW_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_EXIT_OVERVIEW_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_SELECT_OVERVIEW_WINDOW_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_DESTROY_SINCE_VERSION 1
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_CONFIRM_LOGOUT_SINCE_VERSION 3
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_CANCEL_LOGOUT_SINCE_VERSION 3
/**
* @ingroup iface_ferese_shell_v1
*/
#define FERESE_SHELL_V1_CONFIRM_LOGOUT_WITH_INHIBITORS_SINCE_VERSION 4
/** @ingroup iface_ferese_shell_v1 */
static inline void
ferese_shell_v1_set_user_data(struct ferese_shell_v1 *ferese_shell_v1, void *user_data)
{
wl_proxy_set_user_data((struct wl_proxy *) ferese_shell_v1, user_data);
}
/** @ingroup iface_ferese_shell_v1 */
static inline void *
ferese_shell_v1_get_user_data(struct ferese_shell_v1 *ferese_shell_v1)
{
return wl_proxy_get_user_data((struct wl_proxy *) ferese_shell_v1);
}
static inline uint32_t
ferese_shell_v1_get_version(struct ferese_shell_v1 *ferese_shell_v1)
{
return wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_activate_window(struct ferese_shell_v1 *ferese_shell_v1, uint32_t window_hi, uint32_t window_lo)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_ACTIVATE_WINDOW, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), 0, window_hi, window_lo);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_close_window(struct ferese_shell_v1 *ferese_shell_v1, uint32_t window_hi, uint32_t window_lo)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_CLOSE_WINDOW, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), 0, window_hi, window_lo);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_activate_workspace(struct ferese_shell_v1 *ferese_shell_v1, uint32_t workspace_hi, uint32_t workspace_lo)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_ACTIVATE_WORKSPACE, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), 0, workspace_hi, workspace_lo);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_enter_overview(struct ferese_shell_v1 *ferese_shell_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_ENTER_OVERVIEW, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), 0);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_exit_overview(struct ferese_shell_v1 *ferese_shell_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_EXIT_OVERVIEW, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), 0);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_select_overview_window(struct ferese_shell_v1 *ferese_shell_v1, uint32_t window_hi, uint32_t window_lo)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_SELECT_OVERVIEW_WINDOW, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), 0, window_hi, window_lo);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_destroy(struct ferese_shell_v1 *ferese_shell_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), WL_MARSHAL_FLAG_DESTROY);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_confirm_logout(struct ferese_shell_v1 *ferese_shell_v1, uint32_t serial)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_CONFIRM_LOGOUT, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), 0, serial);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_cancel_logout(struct ferese_shell_v1 *ferese_shell_v1, uint32_t serial)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_CANCEL_LOGOUT, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), 0, serial);
}
/**
* @ingroup iface_ferese_shell_v1
*/
static inline void
ferese_shell_v1_confirm_logout_with_inhibitors(struct ferese_shell_v1 *ferese_shell_v1, uint32_t serial, uint32_t inhibitor_revision, uint32_t query_token, uint32_t force)
{
wl_proxy_marshal_flags((struct wl_proxy *) ferese_shell_v1,
FERESE_SHELL_V1_CONFIRM_LOGOUT_WITH_INHIBITORS, NULL, wl_proxy_get_version((struct wl_proxy *) ferese_shell_v1), 0, serial, inhibitor_revision, query_token, force);
}
#ifdef __cplusplus
}
#endif
#endif