点击切换 tag 功能做成 button 配置

This commit is contained in:
2025-11-21 17:45:55 +08:00
parent bf595e6c8a
commit ec93e6c023
5 changed files with 91 additions and 10 deletions

42
src/action.h Normal file
View File

@@ -0,0 +1,42 @@
#pragma once
#include <stdint.h>
#include <xcb/xproto.h>
typedef union user_action_arg_t {
bool b;
int32_t i;
uint32_t ui;
void *ptr;
} user_action_arg_t;
typedef enum click_area_t {
click_none,
click_tag,
} click_area_t;
typedef enum modifier_t {
modifier_none = 0,
modifier_shift = XCB_MOD_MASK_SHIFT,
modifier_control = XCB_MOD_MASK_CONTROL,
modifier_alt = XCB_MOD_MASK_1,
modifier_super = XCB_MOD_MASK_4,
modifier_any = XCB_MOD_MASK_ANY,
} modifier_t;
typedef enum button_index_t {
button_any = XCB_BUTTON_INDEX_ANY,
button_left = XCB_BUTTON_INDEX_1,
button_right = XCB_BUTTON_INDEX_2,
button_middle = XCB_BUTTON_INDEX_3,
} button_index_t;
typedef struct button_t {
click_area_t click_area;
modifier_t modifiers;
button_index_t button;
void (*func)(const user_action_arg_t *arg);
const user_action_arg_t arg;
} button_t;
void select_tag_of_current_monitor(const user_action_arg_t *arg);