wlmaker
Loading...
Searching...
No Matches
server.h
Go to the documentation of this file.
1/* ========================================================================= */
20#ifndef __WLMAKER_SERVER_H__
21#define __WLMAKER_SERVER_H__
22
23#include <libbase/libbase.h>
24#include <libbase/plist.h>
25#include <stdbool.h>
26#include <stdint.h>
27#include <wayland-server-core.h>
28#include <xkbcommon/xkbcommon.h>
29#define WLR_USE_UNSTABLE
30#include <wlr/backend.h>
31#include <wlr/types/wlr_data_control_v1.h>
32#include <wlr/types/wlr_data_device.h>
33#include <wlr/types/wlr_primary_selection_v1.h>
34#include <wlr/types/wlr_seat.h>
35#undef WLR_USE_UNSTABLE
36
39
44
53
54#include "backend/backend.h"
55#include "config.h"
56#include "corner.h" // IWYU pragma: keep
57#include "cursor.h" // IWYU pragma: keep
58#include "files.h"
59#include "icon_manager.h" // IWYU pragma: keep
60#include "input_observation.h"
61#include "idle.h" // IWYU pragma: keep
62#include "layer_shell.h" // IWYU pragma: keep
63#include "lock_mgr.h" // IWYU pragma: keep
64#include "root_menu.h" // IWYU pragma: keep
65#include "subprocess_monitor.h" // IWYU pragma: keep
66#include "toolkit/toolkit.h"
67#include "xdg_decoration.h" // IWYU pragma: keep
68#include "xdg_shell.h" // IWYU pragma: keep
69#include "xwl.h" // IWYU pragma: keep
70
71#ifdef __cplusplus
72extern "C" {
73#endif // __cplusplus
74
76typedef struct {
80 uint32_t width;
82 uint32_t height;
86
92 bspl_dict_t *config_dict_ptr;
95
97 struct wl_display *wl_display_ptr;
99 const char *wl_socket_name_ptr;
100
105
107 struct wlr_viewporter *wlr_viewporter_ptr;
109 struct wlr_fractional_scale_manager_v1 *wlr_fractional_scale_manager_ptr;
111 struct wlr_seat *wlr_seat_ptr;
115 struct wlr_scene *wlr_scene_ptr;
117 struct wlr_output_layout *wlr_output_layout_ptr;
118
121
122 // Clipboard and selection support.
123
125 struct wlr_data_device_manager *wlr_data_device_manager_ptr;
126
129
131 struct wlr_primary_selection_v1_device_manager
133
136
138 struct wlr_data_control_manager_v1 *wlr_data_control_manager_v1_ptr;
139
160
162 bs_dllist_t input_devices;
163
169 struct wl_signal task_list_enabled_event;
171 struct wl_signal task_list_disabled_event;
172
174 bs_dllist_t bindings;
175
177 bs_dllist_t clients;
178
181
184
185 // TODO(kaeser@gubbe.ch): Move these events into a 'registry' struct, so
186 // it can be more easily shared throughout the code.
188 struct wl_signal window_created_event;
190 struct wl_signal window_destroyed_event;
191
194
198 bspl_array_t *root_menu_array_ptr;
201
204};
205
209 uint32_t modifiers;
213 xkb_keysym_t keysym;
216};
217
232 bspl_dict_t *config_dict_ptr,
233 wlmaker_files_t *files_ptr,
234 const wlmaker_config_style_t *style_ptr,
235 const wlmaker_server_options_t *options_ptr);
236
243
254 wlmaker_server_t *server_ptr,
255 const wlmaker_key_combo_t *key_combo_ptr,
257
265 wlmaker_server_t *server_ptr,
266 wlmaker_key_binding_t *key_binding_ptr);
267
278 wlmaker_server_t *server_ptr,
279 xkb_keysym_t keysym,
280 uint32_t modifiers);
281
288
295
303struct wlr_output *wlmaker_server_get_output_at_cursor(
304 wlmaker_server_t *server_ptr);
305
307extern const uint32_t wlmaker_modifier_default_mask;
308
310extern const bs_test_set_t wlmaker_server_test_set;
311
312#ifdef __cplusplus
313} // extern "C"
314#endif // __cplusplus
315
316#endif /* __WLMAKER_SERVER_H__ */
317/* == End of server.h ================================================== */
const bs_test_set_t wlmaker_server_test_set
Definition server.c:786
void wlmaker_server_deactivate_task_list(wlmaker_server_t *server_ptr)
Definition server.c:498
void wlmaker_server_unbind_key(wlmaker_server_t *server_ptr, wlmaker_key_binding_t *key_binding_ptr)
Definition server.c:541
void wlmaker_server_activate_task_list(wlmaker_server_t *server_ptr)
Definition server.c:491
bool wlmaker_keyboard_process_bindings(wlmaker_server_t *server_ptr, xkb_keysym_t keysym, uint32_t modifiers)
Definition server.c:550
const uint32_t wlmaker_modifier_default_mask
Definition server.c:103
bool(* wlmaker_keybinding_callback_t)(const wlmaker_key_combo_t *kc)
Definition server.h:52
struct wlr_output * wlmaker_server_get_output_at_cursor(wlmaker_server_t *server_ptr)
Definition server.c:515
wlmaker_key_binding_t * wlmaker_server_bind_key(wlmaker_server_t *server_ptr, const wlmaker_key_combo_t *key_combo_ptr, wlmaker_keybinding_callback_t callback)
Definition server.c:525
wlmaker_server_t * wlmaker_server_create(bspl_dict_t *config_dict_ptr, wlmaker_files_t *files_ptr, const wlmaker_config_style_t *style_ptr, const wlmaker_server_options_t *options_ptr)
Definition server.c:116
void wlmaker_server_destroy(wlmaker_server_t *server_ptr)
Definition server.c:375
Definition corner.c:53
Definition cursor.h:40
Definition files.c:32
Definition icon_manager.c:43
Definition idle.c:43
Definition input_observation.c:46
Definition server.c:68
Definition server.h:207
uint32_t modifiers
Definition server.h:209
uint32_t modifiers_mask
Definition server.h:211
xkb_keysym_t keysym
Definition server.h:213
bool ignore_case
Definition server.h:215
Definition layer_shell.c:38
Definition lock_mgr.c:52
Definition root_menu.c:50
Definition server.h:88
wlmaker_lock_mgr_t * lock_mgr_ptr
Definition server.h:102
wlmaker_root_menu_t * root_menu_ptr
Definition server.h:196
wlmaker_xwl_t * xwl_ptr
Definition server.h:159
struct wl_listener unclaimed_button_event_listener
Definition server.h:200
struct wlr_scene * wlr_scene_ptr
Definition server.h:115
wlmaker_icon_manager_t * icon_manager_ptr
Definition server.h:151
wlmaker_files_t * files_ptr
Definition server.h:90
wlmaker_xdg_shell_t * xdg_shell_ptr
Definition server.h:143
bs_dllist_t input_devices
Definition server.h:162
bs_dllist_t clients
Definition server.h:177
struct wl_signal task_list_enabled_event
Definition server.h:169
struct wl_signal window_created_event
Definition server.h:188
wlmaker_idle_monitor_t * idle_monitor_ptr
Definition server.h:104
uint32_t last_keyboard_group_index
Definition server.h:113
struct wlr_seat * wlr_seat_ptr
Definition server.h:111
bspl_dict_t * config_dict_ptr
Definition server.h:92
wlmaker_corner_t * corner_ptr
Definition server.h:183
wlmtk_dock_t * clip_dock_ptr
Definition server.h:193
struct wl_listener backend_new_input_device_listener
Definition server.h:120
struct wl_signal task_list_disabled_event
Definition server.h:171
const wlmaker_config_style_t * style_ptr
Definition server.h:203
wlmtk_root_t * root_ptr
Definition server.h:165
wlmaker_subprocess_monitor_t * monitor_ptr
Definition server.h:180
bool task_list_enabled
Definition server.h:167
struct wl_listener request_set_selection_listener
Definition server.h:128
const char * wl_socket_name_ptr
Definition server.h:99
struct wlr_output_layout * wlr_output_layout_ptr
Definition server.h:117
struct wlr_primary_selection_v1_device_manager * wlr_primary_selection_v1_device_manager_ptr
Definition server.h:131
wlmaker_input_observation_manager_t * input_observation_manager_ptr
Definition server.h:153
wlmaker_layer_shell_t * layer_shell_ptr
Definition server.h:147
wlmaker_cursor_t * cursor_ptr
Definition server.h:141
struct wlr_data_control_manager_v1 * wlr_data_control_manager_v1_ptr
Definition server.h:138
struct wl_signal window_destroyed_event
Definition server.h:190
struct wl_listener request_set_primary_selection_listener
Definition server.h:135
const wlmaker_server_options_t * options_ptr
Definition server.h:94
bs_dllist_t bindings
Definition server.h:174
struct wl_display * wl_display_ptr
Definition server.h:97
struct wlr_viewporter * wlr_viewporter_ptr
Definition server.h:107
wlmaker_xdg_decoration_manager_t * xdg_decoration_manager_ptr
Definition server.h:145
struct wlr_data_device_manager * wlr_data_device_manager_ptr
Definition server.h:125
wlmbe_backend_t * backend_ptr
Definition server.h:149
struct wlr_fractional_scale_manager_v1 * wlr_fractional_scale_manager_ptr
Definition server.h:109
bspl_array_t * root_menu_array_ptr
Definition server.h:198
Definition subprocess_monitor.c:39
Definition xdg_decoration.c:43
Definition xdg_shell.h:38
Definition xwl.c:87
Definition backend.c:54
Definition dock.c:35
Definition root.c:47
Definition config.h:74
Definition server.h:76
uint32_t width
Definition server.h:80
bool start_xwayland
Definition server.h:78
uint32_t height
Definition server.h:82
bool bind_with_logo
Definition server.h:84