simplier .clang-format and fix swap focus

This commit is contained in:
2026-05-14 18:16:40 +07:00
parent 5c7dbfbe03
commit 090659d582
21 changed files with 1614 additions and 2052 deletions
+50 -65
View File
@@ -4,93 +4,78 @@
#include "keybinds.h"
#include "types.h"
#define CURSOR_MOD WLR_MODIFIER_ALT
#define CURSOR_MOVE_BUTTON BTN_LEFT
#define CURSOR_MOD WLR_MODIFIER_ALT
#define CURSOR_MOVE_BUTTON BTN_LEFT
#define CURSOR_RESIZE_BUTTON BTN_RIGHT
#define TOPLEVEL_BW 2
#define TOPLEVEL_BW 2
static const float bgcolor[4] = { 0.0, 0.0, 0.0, 1.0 };
static const float bgcolor[4] = {0.0, 0.0, 0.0, 1.0};
static const float focused_bc[4] = { 1.0, 0.4, 0.6, 1.0 };
static const float urgent_bc[4] = { 1.0, 0.0, 0.0, 1.0 };
static const float unfocused_bc[4] = { 0.28, 0.28, 0.28, 1.0 };
static const float focused_bc[4] = {1.0, 0.4, 0.6, 1.0};
static const float urgent_bc[4] = {1.0, 0.0, 0.0, 1.0};
static const float unfocused_bc[4] = {0.28, 0.28, 0.28, 1.0};
#define STACK_COUNT 1
#define STACK_SIZE 0.5
#define STACK_SIZE 0.5
#define OUTPUT_GAP 10
#define LAYOUT_GAP 5
#define OUTPUT_GAP 10
#define LAYOUT_GAP 5
#define ALT WLR_MODIFIER_ALT
#define CTRL WLR_MODIFIER_CTRL
#define SHIFT WLR_MODIFIER_SHIFT
#define LOGO WLR_MODIFIER_LOGO
#define ALT WLR_MODIFIER_ALT
#define CTRL WLR_MODIFIER_CTRL
#define SHIFT WLR_MODIFIER_SHIFT
#define LOGO WLR_MODIFIER_LOGO
static const char *workspaces[] = {
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
};
static const absn_keybind keybinds[] = {
{ ALT, XKB_KEY_Escape, quit, { 0 } },
{ALT, XKB_KEY_Escape, quit, {0}},
{ ALT, XKB_KEY_Return, &run, { .v = "alacritty" } },
{ ALT, XKB_KEY_q, kill_focus, { 0 } },
{ALT, XKB_KEY_Return, &run, {.v = "alacritty"}},
{ALT, XKB_KEY_q, kill_focus, {0}},
{ ALT, XKB_KEY_j, cycle_focus, { .i = +1 } },
{ ALT, XKB_KEY_k, cycle_focus, { .i = -1 } },
{ALT, XKB_KEY_j, cycle_focus, {.i = +1}},
{ALT, XKB_KEY_k, cycle_focus, {.i = -1}},
{ ALT | SHIFT, XKB_KEY_j, swap_focus, { .i = +1 } },
{ ALT | SHIFT, XKB_KEY_k, swap_focus, { .i = -1 } },
{ALT | SHIFT, XKB_KEY_j, swap_focus, {.i = +1}},
{ALT | SHIFT, XKB_KEY_k, swap_focus, {.i = -1}},
{ ALT, XKB_KEY_f, toggle_fullscreen, { 0 } },
{ALT, XKB_KEY_f, toggle_fullscreen, {0}},
{ ALT, XKB_KEY_h, increase_master_count, { .i = +1 } },
{ ALT, XKB_KEY_l, increase_master_count, { .i = -1 } },
{ALT, XKB_KEY_h, increase_master_count, {.i = +1}},
{ALT, XKB_KEY_l, increase_master_count, {.i = -1}},
{ ALT | SHIFT, XKB_KEY_h, increase_master_width, { .f = -0.05 } },
{ ALT | SHIFT, XKB_KEY_l, increase_master_width, { .f = +0.05 } },
{ALT | SHIFT, XKB_KEY_h, increase_master_width, {.f = -0.05}},
{ALT | SHIFT, XKB_KEY_l, increase_master_width, {.f = +0.05}},
{ ALT, XKB_KEY_t, set_layout, { .i = LAYOUT_TILE } },
{ ALT, XKB_KEY_r, set_layout, { .i = LAYOUT_TILELEFT } },
{ ALT, XKB_KEY_m, set_layout, { .i = LAYOUT_MONOCLE } },
{ALT, XKB_KEY_t, set_layout, {.i = LAYOUT_TILE}},
{ALT, XKB_KEY_r, set_layout, {.i = LAYOUT_TILELEFT}},
{ALT, XKB_KEY_m, set_layout, {.i = LAYOUT_MONOCLE}},
{ ALT, XKB_KEY_1, switch_workspace, { .v = "1" } },
{ ALT, XKB_KEY_2, switch_workspace, { .v = "2" } },
{ ALT, XKB_KEY_3, switch_workspace, { .v = "3" } },
{ ALT, XKB_KEY_4, switch_workspace, { .v = "4" } },
{ ALT, XKB_KEY_5, switch_workspace, { .v = "5" } },
{ ALT, XKB_KEY_6, switch_workspace, { .v = "6" } },
{ ALT, XKB_KEY_7, switch_workspace, { .v = "7" } },
{ ALT, XKB_KEY_8, switch_workspace, { .v = "8" } },
{ ALT, XKB_KEY_9, switch_workspace, { .v = "9" } },
{ ALT, XKB_KEY_0, switch_workspace, { .v = "10" } },
{ALT, XKB_KEY_1, switch_workspace, {.v = "1"}},
{ALT, XKB_KEY_2, switch_workspace, {.v = "2"}},
{ALT, XKB_KEY_3, switch_workspace, {.v = "3"}},
{ALT, XKB_KEY_4, switch_workspace, {.v = "4"}},
{ALT, XKB_KEY_5, switch_workspace, {.v = "5"}},
{ALT, XKB_KEY_6, switch_workspace, {.v = "6"}},
{ALT, XKB_KEY_7, switch_workspace, {.v = "7"}},
{ALT, XKB_KEY_8, switch_workspace, {.v = "8"}},
{ALT, XKB_KEY_9, switch_workspace, {.v = "9"}},
{ALT, XKB_KEY_0, switch_workspace, {.v = "10"}},
{ ALT | SHIFT, XKB_KEY_exclam, move_focus_to_workspace, { .v = "1" } },
{ ALT | SHIFT, XKB_KEY_at, move_focus_to_workspace, { .v = "2" } },
{ ALT | SHIFT, XKB_KEY_numbersign, move_focus_to_workspace,
{ .v = "3" } },
{ ALT | SHIFT, XKB_KEY_dollar, move_focus_to_workspace, { .v = "4" } },
{ ALT | SHIFT, XKB_KEY_percent, move_focus_to_workspace, { .v = "5" } },
{ ALT | SHIFT, XKB_KEY_asciicircum, move_focus_to_workspace,
{ .v = "6" } },
{ ALT | SHIFT, XKB_KEY_ampersand, move_focus_to_workspace,
{ .v = "7" } },
{ ALT | SHIFT, XKB_KEY_asterisk, move_focus_to_workspace,
{ .v = "8" } },
{ ALT | SHIFT, XKB_KEY_parenleft, move_focus_to_workspace,
{ .v = "9" } },
{ ALT | SHIFT, XKB_KEY_parenright, move_focus_to_workspace,
{ .v = "10" } },
{ALT | SHIFT, XKB_KEY_exclam, move_focus_to_workspace, {.v = "1"}},
{ALT | SHIFT, XKB_KEY_at, move_focus_to_workspace, {.v = "2"}},
{ALT | SHIFT, XKB_KEY_numbersign, move_focus_to_workspace, {.v = "3"}},
{ALT | SHIFT, XKB_KEY_dollar, move_focus_to_workspace, {.v = "4"}},
{ALT | SHIFT, XKB_KEY_percent, move_focus_to_workspace, {.v = "5"}},
{ALT | SHIFT, XKB_KEY_asciicircum, move_focus_to_workspace, {.v = "6"}},
{ALT | SHIFT, XKB_KEY_ampersand, move_focus_to_workspace, {.v = "7"}},
{ALT | SHIFT, XKB_KEY_asterisk, move_focus_to_workspace, {.v = "8"}},
{ALT | SHIFT, XKB_KEY_parenleft, move_focus_to_workspace, {.v = "9"}},
{ALT | SHIFT, XKB_KEY_parenright, move_focus_to_workspace, {.v = "10"}},
};
#endif
+2 -2
View File
@@ -3,8 +3,8 @@
#include "types.h"
absn_toplevel *toplevel_at(absn_server *server, double lx, double ly,
struct wlr_surface **surface, double *sx, double *sy);
absn_toplevel *toplevel_at(absn_server *server, double lx, double ly, struct wlr_surface **surface, double *sx,
double *sy);
bool toplevel_is_unmanaged(absn_toplevel *toplevel);
+170 -170
View File
@@ -21,259 +21,259 @@
#include <xcb/xcb_icccm.h>
#endif
#define BTN_LEFT 0x110
#define BTN_RIGHT 0x111
#define BTN_LEFT 0x110
#define BTN_RIGHT 0x111
#define BTN_MIDDLE 0x112
#define MAX(A, B) (A) > (B) ? (A) : (B)
#define MIN(A, B) (A) < (B) ? (A) : (B)
#define MAX(A, B) (A) > (B) ? (A) : (B)
#define MIN(A, B) (A) < (B) ? (A) : (B)
/* macro for adding listener for event */
#define LISTEN(L, C, E) \
do { \
(L).notify = (C); \
wl_signal_add(&(E), &(L)); \
} while (0);
#define UNUSED(X) (void)(X)
#define LISTEN(L, C, E) \
do { \
(L).notify = (C); \
wl_signal_add(&(E), &(L)); \
} while (0);
#define UNUSED(X) (void)(X)
#define CLEANMASK(M) (M & ~WLR_MODIFIER_CAPS)
/* cursor mode */
enum {
CURSOR_PASSTHROUGH,
CURSOR_MOVE,
CURSOR_RESIZE,
CURSOR_PASSTHROUGH,
CURSOR_MOVE,
CURSOR_RESIZE,
};
/* resizing corners */
enum {
TOP_LEFT,
TOP_RIGHT,
BOTTOM_LEFT,
BOTTOM_RIGHT,
TOP_LEFT,
TOP_RIGHT,
BOTTOM_LEFT,
BOTTOM_RIGHT,
};
/* toplevel types */
enum {
TOPLEVEL_XDG,
TOPLEVEL_X11,
LAYER_SURFACE,
TOPLEVEL_XDG,
TOPLEVEL_X11,
LAYER_SURFACE,
};
/* layers for wlr layer shell */
enum {
LAYER_BACKGROUND,
LAYER_BOTTOM,
LAYER_TILE,
LAYER_FLOAT,
LAYER_FULLSCREEN,
LAYER_TOP,
LAYER_OVERLAY,
LAYERS_COUNT,
LAYER_BACKGROUND,
LAYER_BOTTOM,
LAYER_TILE,
LAYER_FLOAT,
LAYER_FULLSCREEN,
LAYER_TOP,
LAYER_OVERLAY,
LAYERS_COUNT,
};
static const int layermap[] = {
LAYER_BACKGROUND,
LAYER_BOTTOM,
LAYER_TOP,
LAYER_FULLSCREEN,
LAYER_BACKGROUND,
LAYER_BOTTOM,
LAYER_TOP,
LAYER_FULLSCREEN,
};
enum {
LAYOUT_TILE,
LAYOUT_TILELEFT,
LAYOUT_TILETOP,
LAYOUT_TILEBOTTOM,
LAYOUT_MONOCLE,
LAYOUT_SPIRAL,
LAYOUT_DWINDLE,
LAYOUT_VGRID,
LAYOUT_HGRID,
LAYOUT_TILE,
LAYOUT_TILELEFT,
LAYOUT_TILETOP,
LAYOUT_TILEBOTTOM,
LAYOUT_MONOCLE,
LAYOUT_SPIRAL,
LAYOUT_DWINDLE,
LAYOUT_VGRID,
LAYOUT_HGRID,
};
typedef struct absn_output absn_output;
typedef struct absn_toplevel absn_toplevel;
typedef struct {
int layout;
const char *name;
absn_output *output;
int count;
float size;
int layout;
const char *name;
absn_output *output;
int count;
float size;
} absn_workspace;
typedef struct {
struct wl_display *display;
struct wlr_backend *backend;
struct wlr_renderer *renderer;
struct wlr_allocator *allocator;
struct wlr_compositor *compositor;
struct wlr_scene *scene;
struct wlr_scene_output_layout *scene_layout;
struct wlr_scene_rect *bg;
struct wl_display *display;
struct wlr_backend *backend;
struct wlr_renderer *renderer;
struct wlr_allocator *allocator;
struct wlr_compositor *compositor;
struct wlr_scene *scene;
struct wlr_scene_output_layout *scene_layout;
struct wlr_scene_rect *bg;
struct wlr_xdg_shell *xdg_shell;
struct wl_listener new_xdg_toplevel;
struct wl_listener new_xdg_popup;
struct wlr_xdg_decoration_manager_v1 *xdg_deco_mgr;
struct wl_listener new_xdg_deco;
struct wlr_xdg_shell *xdg_shell;
struct wl_listener new_xdg_toplevel;
struct wl_listener new_xdg_popup;
struct wlr_xdg_decoration_manager_v1 *xdg_deco_mgr;
struct wl_listener new_xdg_deco;
struct wlr_layer_shell_v1 *layer_shell;
struct wl_listener new_layer_surface;
struct wlr_scene_tree *layers[LAYERS_COUNT];
struct wlr_layer_shell_v1 *layer_shell;
struct wl_listener new_layer_surface;
struct wlr_scene_tree *layers[LAYERS_COUNT];
#ifdef XWAYLAND
struct wlr_xwayland *xwayland;
struct wl_listener xw_new_surface;
struct wl_listener xw_ready;
struct wlr_xwayland *xwayland;
struct wl_listener xw_new_surface;
struct wl_listener xw_ready;
#endif
struct wlr_cursor *cursor;
struct wlr_xcursor_manager *cursor_mgr;
struct wl_listener cursor_motion;
struct wl_listener cursor_motion_abs;
struct wl_listener cursor_button;
struct wl_listener cursor_axis;
struct wl_listener cursor_frame;
struct wlr_cursor *cursor;
struct wlr_xcursor_manager *cursor_mgr;
struct wl_listener cursor_motion;
struct wl_listener cursor_motion_abs;
struct wl_listener cursor_button;
struct wl_listener cursor_axis;
struct wl_listener cursor_frame;
struct wlr_seat *seat;
struct wl_listener new_input;
struct wl_listener request_cursor;
struct wl_listener pointer_focus_change;
struct wl_listener request_set_selection;
struct wl_list keyboards;
struct wlr_seat *seat;
struct wl_listener new_input;
struct wl_listener request_cursor;
struct wl_listener pointer_focus_change;
struct wl_listener request_set_selection;
struct wl_list keyboards;
int cursor_mode;
int resize_corner;
struct wlr_box grab_geom;
int32_t grab_x, grab_y;
int cursor_mode;
int resize_corner;
struct wlr_box grab_geom;
int32_t grab_x, grab_y;
struct wl_list toplevels;
struct wl_list focus_stack;
absn_toplevel *focused_toplevel;
struct wl_list toplevels;
struct wl_list focus_stack;
absn_toplevel *focused_toplevel;
absn_output *focused_output;
struct wl_list outputs;
struct wl_listener new_output;
struct wlr_output_layout *output_layout;
struct wl_listener layout_change;
struct wlr_output_manager_v1 *output_mgr;
struct wl_listener mgr_apply;
struct wl_listener mgr_test;
absn_output *focused_output;
struct wl_list outputs;
struct wl_listener new_output;
struct wlr_output_layout *output_layout;
struct wl_listener layout_change;
struct wlr_output_manager_v1 *output_mgr;
struct wl_listener mgr_apply;
struct wl_listener mgr_test;
int workspaces_count;
absn_workspace *workspaces;
int workspaces_count;
absn_workspace *workspaces;
} absn_server;
struct absn_output {
struct wl_list link;
absn_server *server;
struct wl_list link;
absn_server *server;
absn_workspace *workspace;
absn_workspace *workspace;
struct wlr_box geom;
struct wlr_box usable_area;
struct wlr_box geom;
struct wlr_box usable_area;
struct wlr_output *wlr;
struct wl_listener frame;
struct wl_listener request_state;
struct wl_listener destroy;
struct wlr_output *wlr;
struct wl_listener frame;
struct wl_listener request_state;
struct wl_listener destroy;
struct wl_list layers[4];
struct wl_list layers[4];
};
typedef struct {
struct wl_list link;
struct wl_list link;
absn_server *server;
absn_output *output;
absn_server *server;
absn_output *output;
int type; /* LAYER_SURFACE */
struct wlr_scene_tree *scene_tree;
struct wlr_scene_layer_surface_v1 *scene_layer;
int type; /* LAYER_SURFACE */
struct wlr_scene_tree *scene_tree;
struct wlr_scene_layer_surface_v1 *scene_layer;
struct wlr_layer_surface_v1 *wlr;
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener commit;
struct wl_listener new_popup;
struct wl_listener destroy;
struct wlr_layer_surface_v1 *wlr;
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener commit;
struct wl_listener new_popup;
struct wl_listener destroy;
} absn_layer_surface;
struct absn_toplevel {
struct wl_list link;
struct wl_list flink; /* link for focus stack */
uint32_t tag;
absn_server *server;
absn_output *output;
absn_workspace *workspace;
struct wl_list link;
struct wl_list flink; /* link for focus stack */
uint32_t tag;
absn_server *server;
absn_output *output;
absn_workspace *workspace;
struct wlr_scene_tree *scene_tree;
struct wlr_scene_tree *scene_surface;
struct wlr_scene_tree *scene_tree;
struct wlr_scene_tree *scene_surface;
int32_t bw;
struct wlr_scene_rect *border[4];
struct wlr_xdg_toplevel_decoration_v1 *deco;
int32_t bw;
struct wlr_scene_rect *border[4];
struct wlr_xdg_toplevel_decoration_v1 *deco;
bool floating;
bool fullscreen;
bool urgent;
uint32_t resizing;
bool floating;
bool fullscreen;
bool urgent;
uint32_t resizing;
struct wlr_box geom;
struct wlr_box prev_geom;
struct wlr_box geom;
struct wlr_box prev_geom;
int type;
union {
struct wlr_xdg_toplevel *xdg;
struct wlr_xwayland_surface *xw;
};
int type;
union {
struct wlr_xdg_toplevel *xdg;
struct wlr_xwayland_surface *xw;
};
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener commit;
struct wl_listener destroy;
struct wl_listener request_move;
struct wl_listener request_resize;
struct wl_listener request_maximize;
struct wl_listener request_fullscreen;
struct wl_listener deco_request_mode;
struct wl_listener deco_destroy;
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener commit;
struct wl_listener destroy;
struct wl_listener request_move;
struct wl_listener request_resize;
struct wl_listener request_maximize;
struct wl_listener request_fullscreen;
struct wl_listener deco_request_mode;
struct wl_listener deco_destroy;
#ifdef XWAYLAND
struct wl_listener xw_activate;
struct wl_listener xw_associate;
struct wl_listener xw_dissociate;
struct wl_listener xw_configure;
struct wl_listener xw_set_hints;
struct wl_listener xw_activate;
struct wl_listener xw_associate;
struct wl_listener xw_dissociate;
struct wl_listener xw_configure;
struct wl_listener xw_set_hints;
#endif
};
typedef struct {
struct wlr_xdg_popup *wlr;
struct wl_listener commit;
struct wl_listener destroy;
struct wlr_xdg_popup *wlr;
struct wl_listener commit;
struct wl_listener destroy;
} absn_popup;
typedef struct {
struct wl_list link;
absn_server *server;
struct wl_list link;
absn_server *server;
struct wlr_keyboard *wlr;
struct wl_listener modifiers;
struct wl_listener key;
struct wl_listener destroy;
struct wlr_keyboard *wlr;
struct wl_listener modifiers;
struct wl_listener key;
struct wl_listener destroy;
} absn_keyboard;
typedef struct {
int i;
float f;
const void *v;
int i;
float f;
const void *v;
} absn_arg;
typedef struct {
uint32_t mods;
xkb_keysym_t keysym;
void (*cb)(absn_server *, const absn_arg *);
const absn_arg arg;
uint32_t mods;
xkb_keysym_t keysym;
void (*cb)(absn_server *, const absn_arg *);
const absn_arg arg;
} absn_keybind;
#endif /* __TYPES_H_ */