mirror of
https://github.com/swaywm/sway.git
synced 2024-08-19 16:53:00 +00:00
This modifies `bar_cmd_tray_bindsym` to use `get_mouse_bindsym` for parsing mouse buttons. This also introduces `bar_cmd_tray_bindcode`, which will use `get_mouse_bindcode` for parsing mouse buttons. Like with sway bindings, the two commands are encapsulated in a single file to maximize shared code. This also modifies tray bindings to work off of events codes rather than x11 buttons, which allows for any mouse buttons to be used. For `get_bar_config`, `event_code` has been added to the `tray_bindings` section and will include to event code for the button. If the event code can be mapped to a x11 button, `input_code` will still be the x11 button number. Otherwise, `input_code` will be `0`.
93 lines
1.8 KiB
C
93 lines
1.8 KiB
C
#ifndef _SWAYBAR_CONFIG_H
|
|
#define _SWAYBAR_CONFIG_H
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <wayland-client.h>
|
|
#include "../include/config.h"
|
|
#include "list.h"
|
|
#include "util.h"
|
|
|
|
struct box_colors {
|
|
uint32_t border;
|
|
uint32_t background;
|
|
uint32_t text;
|
|
};
|
|
|
|
struct config_output {
|
|
struct wl_list link; // swaybar_config::outputs
|
|
char *name;
|
|
size_t index;
|
|
};
|
|
|
|
struct swaybar_binding {
|
|
uint32_t button;
|
|
char *command;
|
|
bool release;
|
|
};
|
|
|
|
struct swaybar_config {
|
|
char *status_command;
|
|
bool pango_markup;
|
|
uint32_t position; // zwlr_layer_surface_v1_anchor
|
|
char *font;
|
|
char *sep_symbol;
|
|
char *mode;
|
|
char *hidden_state;
|
|
char *modifier;
|
|
bool strip_workspace_numbers;
|
|
bool strip_workspace_name;
|
|
bool binding_mode_indicator;
|
|
bool wrap_scroll;
|
|
bool workspace_buttons;
|
|
list_t *bindings;
|
|
struct wl_list outputs; // config_output::link
|
|
bool all_outputs;
|
|
int height;
|
|
int status_padding;
|
|
int status_edge_padding;
|
|
struct {
|
|
int top;
|
|
int right;
|
|
int bottom;
|
|
int left;
|
|
} gaps;
|
|
|
|
struct {
|
|
uint32_t background;
|
|
uint32_t statusline;
|
|
uint32_t separator;
|
|
|
|
uint32_t focused_background;
|
|
uint32_t focused_statusline;
|
|
uint32_t focused_separator;
|
|
|
|
struct box_colors focused_workspace;
|
|
struct box_colors active_workspace;
|
|
struct box_colors inactive_workspace;
|
|
struct box_colors urgent_workspace;
|
|
struct box_colors binding_mode;
|
|
} colors;
|
|
|
|
#if HAVE_TRAY
|
|
char *icon_theme;
|
|
struct wl_list tray_bindings; // struct tray_binding::link
|
|
bool tray_hidden;
|
|
list_t *tray_outputs; // char *
|
|
int tray_padding;
|
|
#endif
|
|
};
|
|
|
|
#if HAVE_TRAY
|
|
struct tray_binding {
|
|
uint32_t button;
|
|
char *command;
|
|
struct wl_list link; // struct tray_binding::link
|
|
};
|
|
#endif
|
|
|
|
struct swaybar_config *init_config(void);
|
|
void free_config(struct swaybar_config *config);
|
|
uint32_t parse_position(const char *position);
|
|
|
|
#endif
|