keep progress

This commit is contained in:
2025-11-10 23:20:12 +08:00
parent e77c986109
commit ce7a3f7757
12 changed files with 191 additions and 1 deletions

View File

@@ -1,16 +1,85 @@
#pragma once
#include <glib.h>
#include <stdint.h>
#include <xcb/xcb.h>
#include <xcb/xproto.h>
#include "base.h"
#include "color.h"
typedef struct client_t client_t;
typedef struct monitor_t monitor_t;
typedef struct tag_t tag_t;
typedef struct task_in_tag_t task_in_tag_t;
struct client_t {
client_t *stack_next;
client_t *next;
tag_t *tag;
area_t geometry;
color_t border_color;
uint16_t border_width;
bool floating;
bool fullscreen;
bool maximize;
bool minimize;
bool sticky;
char *name;
char *class;
char *instance;
xcb_window_t transient_for_window;
xcb_window_t frame_window;
xcb_window_t window;
};
struct monitor_t {
monitor_t *next;
area_t geometry;
area_t workarea;
tag_t *tag_list;
tag_t *selected_tag;
xcb_window_t bar_window;
};
struct tag_t {
uint32_t index; /* index in all tags */
uint32_t mask;
extent_in_bar_t bar_extent;
tag_t *next;
char *name;
monitor_t *monitor;
task_in_tag_t *task_list;
};
struct task_in_tag_t {
client_t *client;
task_in_tag_t *next;
area_t geometry;
extent_in_bar_t bar_extent;
};
typedef struct global_state_t {
bool need_restart;
GMainLoop *loop;
client_t *client_list;
client_t *client_stack_list;
client_t *client_focused;
monitor_t *monitor_list;
monitor_t *current_monitor;
xcb_connection_t *xcb_conn;
xcb_screen_t *screen;
int default_screen;
bool have_xfixes;
bool have_xinerama;
bool have_randr;
} global_state_t;
extern global_state_t global_state;