re-org. ok oga@
This commit is contained in:
parent
d4b279e29e
commit
800a938556
664
app/cwm/calmwm.h
664
app/cwm/calmwm.h
@ -15,7 +15,7 @@
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* $Id: calmwm.h,v 1.122 2011/03/22 10:57:31 okan Exp $
|
||||
* $Id: calmwm.h,v 1.123 2011/05/05 16:40:37 okan Exp $
|
||||
*/
|
||||
|
||||
#ifndef _CALMWM_H_
|
||||
@ -31,13 +31,15 @@
|
||||
#include <X11/extensions/Xrandr.h>
|
||||
#include <X11/keysym.h>
|
||||
|
||||
#define CALMWM_MAXNAMELEN 256
|
||||
|
||||
#undef MIN
|
||||
#undef MAX
|
||||
#define MIN(x, y) ((x) < (y) ? (x) : (y))
|
||||
#define MAX(x, y) ((x) > (y) ? (x) : (y))
|
||||
|
||||
#ifndef nitems
|
||||
#define nitems(_a) (sizeof((_a)) / sizeof((_a)[0]))
|
||||
#endif
|
||||
|
||||
#define CONFFILE ".cwmrc"
|
||||
#define WMNAME "CWM"
|
||||
|
||||
@ -51,9 +53,34 @@
|
||||
PointerMotionMask)
|
||||
#define SearchMask (KeyPressMask|ExposureMask)
|
||||
|
||||
#ifndef nitems
|
||||
#define nitems(_a) (sizeof((_a)) / sizeof((_a)[0]))
|
||||
#endif
|
||||
/* kb movement */
|
||||
#define CWM_MOVE 0x0001
|
||||
#define CWM_RESIZE 0x0002
|
||||
#define CWM_PTRMOVE 0x0004
|
||||
#define CWM_BIGMOVE 0x0008
|
||||
#define CWM_UP 0x0010
|
||||
#define CWM_DOWN 0x0020
|
||||
#define CWM_LEFT 0x0040
|
||||
#define CWM_RIGHT 0x0080
|
||||
|
||||
/* exec */
|
||||
#define CWM_EXEC_PROGRAM 0x0001
|
||||
#define CWM_EXEC_WM 0x0002
|
||||
|
||||
/* client cycle */
|
||||
#define CWM_CYCLE 0x0001
|
||||
#define CWM_RCYCLE 0x0002
|
||||
|
||||
/* group cycle */
|
||||
#define CWM_CYCLEGROUP 0x0001
|
||||
#define CWM_RCYCLEGROUP 0x0002
|
||||
|
||||
#define KBTOGROUP(X) ((X) - 1)
|
||||
|
||||
union arg {
|
||||
char *c;
|
||||
int i;
|
||||
};
|
||||
|
||||
enum cwmcolor {
|
||||
CWM_COLOR_BORDOR_ACTIVE,
|
||||
@ -69,6 +96,7 @@ struct color {
|
||||
unsigned long pixel;
|
||||
char *name;
|
||||
};
|
||||
|
||||
struct gap {
|
||||
int top;
|
||||
int bottom;
|
||||
@ -76,13 +104,79 @@ struct gap {
|
||||
int right;
|
||||
};
|
||||
|
||||
struct client_ctx;
|
||||
struct winname {
|
||||
TAILQ_ENTRY(winname) entry;
|
||||
char *name;
|
||||
};
|
||||
TAILQ_HEAD(winname_q, winname);
|
||||
|
||||
TAILQ_HEAD(cycle_entry_q, client_ctx);
|
||||
TAILQ_HEAD(group_ctx_q, group_ctx);
|
||||
struct client_ctx {
|
||||
TAILQ_ENTRY(client_ctx) entry;
|
||||
TAILQ_ENTRY(client_ctx) group_entry;
|
||||
TAILQ_ENTRY(client_ctx) mru_entry;
|
||||
struct screen_ctx *sc;
|
||||
Window win;
|
||||
XSizeHints *size;
|
||||
Colormap cmap;
|
||||
u_int bwidth; /* border width */
|
||||
struct {
|
||||
int x; /* x position */
|
||||
int y; /* y position */
|
||||
int width; /* width */
|
||||
int height;/* height */
|
||||
int basew; /* desired width */
|
||||
int baseh; /* desired height */
|
||||
int minw; /* minimum width */
|
||||
int minh; /* minimum height */
|
||||
int maxw; /* maximum width */
|
||||
int maxh; /* maximum height */
|
||||
int incw; /* width increment progression */
|
||||
int inch; /* height increment progression */
|
||||
float mina; /* minimum aspect ratio */
|
||||
float maxa; /* maximum aspect ratio */
|
||||
} geom, savegeom;
|
||||
struct {
|
||||
int x; /* x position */
|
||||
int y; /* y position */
|
||||
} ptr;
|
||||
#define CLIENT_PROTO_DELETE 0x0001
|
||||
#define CLIENT_PROTO_TAKEFOCUS 0x0002
|
||||
int xproto;
|
||||
#define CLIENT_HIDDEN 0x0001
|
||||
#define CLIENT_IGNORE 0x0002
|
||||
#define CLIENT_DOMAXIMIZE 0x0004
|
||||
#define CLIENT_MAXIMIZED 0x0008
|
||||
#define CLIENT_DOVMAXIMIZE 0x0010
|
||||
#define CLIENT_VMAXIMIZED 0x0020
|
||||
#define CLIENT_DOHMAXIMIZE 0x0040
|
||||
#define CLIENT_HMAXIMIZED 0x0080
|
||||
int flags;
|
||||
int state;
|
||||
int active;
|
||||
int stackingorder;
|
||||
#define CLIENT_HIGHLIGHT_GROUP 0x0001
|
||||
#define CLIENT_HIGHLIGHT_UNGROUP 0x0002
|
||||
int highlight;
|
||||
struct winname_q nameq;
|
||||
#define CLIENT_MAXNAMEQLEN 5
|
||||
int nameqlen;
|
||||
char *name;
|
||||
char *label;
|
||||
char *matchname;
|
||||
struct group_ctx *group;
|
||||
char *app_class;
|
||||
char *app_name;
|
||||
};
|
||||
TAILQ_HEAD(client_ctx_q, client_ctx);
|
||||
TAILQ_HEAD(cycle_entry_q, client_ctx);
|
||||
|
||||
struct winmatch {
|
||||
TAILQ_ENTRY(winmatch) entry;
|
||||
#define WIN_MAXTITLELEN 256
|
||||
char title[WIN_MAXTITLELEN];
|
||||
};
|
||||
TAILQ_HEAD(winmatch_q, winmatch);
|
||||
|
||||
#define CALMWM_NGROUPS 9
|
||||
struct group_ctx {
|
||||
TAILQ_ENTRY(group_ctx) entry;
|
||||
struct client_ctx_q clients;
|
||||
@ -91,160 +185,43 @@ struct group_ctx {
|
||||
int nhidden;
|
||||
int highstack;
|
||||
};
|
||||
TAILQ_HEAD(group_ctx_q, group_ctx);
|
||||
|
||||
struct screen_ctx {
|
||||
TAILQ_ENTRY(screen_ctx) entry;
|
||||
|
||||
u_int which;
|
||||
Window rootwin;
|
||||
Window menuwin;
|
||||
|
||||
struct color color[CWM_COLOR_MAX];
|
||||
GC gc;
|
||||
|
||||
int altpersist;
|
||||
|
||||
int xmax;
|
||||
int ymax;
|
||||
|
||||
struct gap gap;
|
||||
struct cycle_entry_q mruq;
|
||||
|
||||
XftDraw *xftdraw;
|
||||
XftColor xftcolor;
|
||||
XftFont *font;
|
||||
u_int fontheight;
|
||||
|
||||
int xinerama_no;
|
||||
XineramaScreenInfo *xinerama;
|
||||
struct group_ctx *group_active;
|
||||
struct group_ctx groups[CALMWM_NGROUPS];
|
||||
int group_hideall;
|
||||
struct group_ctx_q groupq;
|
||||
char **group_names;
|
||||
int group_nonames;
|
||||
};
|
||||
|
||||
TAILQ_HEAD(screen_ctx_q, screen_ctx);
|
||||
|
||||
#define CLIENT_PROTO_DELETE 0x01
|
||||
#define CLIENT_PROTO_TAKEFOCUS 0x02
|
||||
|
||||
#define CLIENT_MAXNAMEQLEN 5
|
||||
|
||||
#define CLIENT_HIDDEN 0x01
|
||||
#define CLIENT_IGNORE 0x02
|
||||
#define CLIENT_DOMAXIMIZE 0x04
|
||||
#define CLIENT_MAXIMIZED 0x08
|
||||
#define CLIENT_DOVMAXIMIZE 0x10
|
||||
#define CLIENT_VMAXIMIZED 0x20
|
||||
#define CLIENT_DOHMAXIMIZE 0x40
|
||||
#define CLIENT_HMAXIMIZED 0x80
|
||||
|
||||
#define CLIENT_HIGHLIGHT_GROUP 1
|
||||
#define CLIENT_HIGHLIGHT_UNGROUP 2
|
||||
|
||||
struct winname {
|
||||
TAILQ_ENTRY(winname) entry;
|
||||
char *name;
|
||||
};
|
||||
|
||||
TAILQ_HEAD(winname_q, winname);
|
||||
|
||||
struct client_ctx {
|
||||
TAILQ_ENTRY(client_ctx) entry;
|
||||
TAILQ_ENTRY(client_ctx) searchentry;
|
||||
TAILQ_ENTRY(client_ctx) group_entry;
|
||||
TAILQ_ENTRY(client_ctx) mru_entry;
|
||||
|
||||
struct screen_ctx *sc;
|
||||
Window win;
|
||||
XSizeHints *size;
|
||||
|
||||
Colormap cmap;
|
||||
|
||||
u_int bwidth;
|
||||
struct {
|
||||
int x, y, width, height, basew, baseh,
|
||||
minw, minh, maxw, maxh, incw, inch;
|
||||
float mina, maxa;
|
||||
} geom, savegeom;
|
||||
|
||||
struct {
|
||||
int x,y;
|
||||
} ptr;
|
||||
|
||||
int xproto;
|
||||
|
||||
int flags;
|
||||
int state;
|
||||
char *name;
|
||||
struct winname_q nameq;
|
||||
size_t nameqlen;
|
||||
|
||||
char *label;
|
||||
int active;
|
||||
int highlight;
|
||||
|
||||
char *matchname;
|
||||
struct group_ctx *group;
|
||||
|
||||
int stackingorder;
|
||||
|
||||
char *app_class;
|
||||
char *app_name;
|
||||
};
|
||||
|
||||
extern const char *shortcut_to_name[];
|
||||
|
||||
/* Autogroups */
|
||||
struct autogroupwin {
|
||||
TAILQ_ENTRY(autogroupwin) entry;
|
||||
char *class;
|
||||
char *name;
|
||||
int num;
|
||||
};
|
||||
|
||||
TAILQ_HEAD(autogroupwin_q, autogroupwin);
|
||||
|
||||
#define CWM_MOVE 0x01
|
||||
#define CWM_RESIZE 0x02
|
||||
#define CWM_PTRMOVE 0x04
|
||||
#define CWM_BIGMOVE 0x08
|
||||
#define CWM_UP 0x10
|
||||
#define CWM_DOWN 0x20
|
||||
#define CWM_LEFT 0x40
|
||||
#define CWM_RIGHT 0x80
|
||||
|
||||
/*
|
||||
* Match a window.
|
||||
*/
|
||||
#define CONF_MAX_WINTITLE 256
|
||||
struct winmatch {
|
||||
TAILQ_ENTRY(winmatch) entry;
|
||||
char title[CONF_MAX_WINTITLE];
|
||||
};
|
||||
|
||||
TAILQ_HEAD(winmatch_q, winmatch);
|
||||
|
||||
/* for cwm_exec */
|
||||
#define CWM_EXEC_PROGRAM 0x1
|
||||
#define CWM_EXEC_WM 0x2
|
||||
/* for alt-tab */
|
||||
#define CWM_CYCLE 0x0
|
||||
#define CWM_RCYCLE 0x1
|
||||
/* for group cycle */
|
||||
#define CWM_CYCLEGROUP 0x0
|
||||
#define CWM_RCYCLEGROUP 0x1
|
||||
|
||||
#define KBFLAG_NEEDCLIENT 0x01
|
||||
|
||||
#define KBTOGROUP(X) ((X) - 1)
|
||||
|
||||
union arg {
|
||||
char *c;
|
||||
int i;
|
||||
struct screen_ctx {
|
||||
TAILQ_ENTRY(screen_ctx) entry;
|
||||
u_int which;
|
||||
Window rootwin;
|
||||
Window menuwin;
|
||||
struct color color[CWM_COLOR_MAX];
|
||||
GC gc;
|
||||
int altpersist;
|
||||
int xmax;
|
||||
int ymax;
|
||||
struct gap gap;
|
||||
struct cycle_entry_q mruq;
|
||||
XftColor xftcolor;
|
||||
XftDraw *xftdraw;
|
||||
XftFont *font;
|
||||
u_int fontheight;
|
||||
int xinerama_no;
|
||||
XineramaScreenInfo *xinerama;
|
||||
#define CALMWM_NGROUPS 9
|
||||
struct group_ctx groups[CALMWM_NGROUPS];
|
||||
struct group_ctx_q groupq;
|
||||
int group_hideall;
|
||||
int group_nonames;
|
||||
struct group_ctx *group_active;
|
||||
char **group_names;
|
||||
};
|
||||
TAILQ_HEAD(screen_ctx_q, screen_ctx);
|
||||
|
||||
struct keybinding {
|
||||
TAILQ_ENTRY(keybinding) entry;
|
||||
@ -253,33 +230,43 @@ struct keybinding {
|
||||
int modmask;
|
||||
int keysym;
|
||||
int keycode;
|
||||
#define KBFLAG_NEEDCLIENT 0x0001
|
||||
int flags;
|
||||
};
|
||||
TAILQ_HEAD(keybinding_q, keybinding);
|
||||
|
||||
struct mousebinding {
|
||||
TAILQ_ENTRY(mousebinding) entry;
|
||||
void (*callback)(struct client_ctx *, void *);
|
||||
int modmask;
|
||||
int button;
|
||||
#define MOUSEBIND_CTX_ROOT 0x0001
|
||||
#define MOUSEBIND_CTX_WIN 0x0002
|
||||
int context;
|
||||
};
|
||||
TAILQ_HEAD(mousebinding_q, mousebinding);
|
||||
|
||||
struct cmd {
|
||||
TAILQ_ENTRY(cmd) entry;
|
||||
int flags;
|
||||
char image[MAXPATHLEN];
|
||||
char label[256];
|
||||
/* (argv) */
|
||||
#define CMD_MAXLABELLEN 256
|
||||
char label[CMD_MAXLABELLEN];
|
||||
};
|
||||
|
||||
struct mousebinding {
|
||||
int modmask;
|
||||
int button;
|
||||
int context;
|
||||
void (*callback)(struct client_ctx *, void *);
|
||||
TAILQ_ENTRY(mousebinding) entry;
|
||||
};
|
||||
|
||||
#define MOUSEBIND_CTX_ROOT 1
|
||||
#define MOUSEBIND_CTX_WIN 2
|
||||
|
||||
TAILQ_HEAD(keybinding_q, keybinding);
|
||||
TAILQ_HEAD(cmd_q, cmd);
|
||||
TAILQ_HEAD(mousebinding_q, mousebinding);
|
||||
|
||||
/* Global configuration */
|
||||
struct menu {
|
||||
TAILQ_ENTRY(menu) entry;
|
||||
TAILQ_ENTRY(menu) resultentry;
|
||||
#define MENU_MAXENTRY 50
|
||||
char text[MENU_MAXENTRY + 1];
|
||||
char print[MENU_MAXENTRY + 1];
|
||||
void *ctx;
|
||||
short dummy;
|
||||
short abort;
|
||||
};
|
||||
TAILQ_HEAD(menu_q, menu);
|
||||
|
||||
struct conf {
|
||||
struct keybinding_q keybindingq;
|
||||
struct autogroupwin_q autogroupq;
|
||||
@ -287,15 +274,13 @@ struct conf {
|
||||
char conf_path[MAXPATHLEN];
|
||||
struct cmd_q cmdq;
|
||||
struct mousebinding_q mousebindingq;
|
||||
|
||||
#define CONF_STICKY_GROUPS 0x0001
|
||||
#define CONF_STICKY_GROUPS 0x0001
|
||||
int flags;
|
||||
#define CONF_BWIDTH 1
|
||||
#define CONF_BWIDTH 1
|
||||
int bwidth;
|
||||
#define CONF_MAMOUNT 1
|
||||
#define CONF_MAMOUNT 1
|
||||
int mamount;
|
||||
struct gap gap;
|
||||
|
||||
#define CONF_COLOR_ACTIVEBORDER "#CCCCCC"
|
||||
#define CONF_COLOR_INACTIVEBORDER "#666666"
|
||||
#define CONF_COLOR_GROUPBORDER "blue"
|
||||
@ -303,74 +288,126 @@ struct conf {
|
||||
#define CONF_COLOR_MENUFG "black"
|
||||
#define CONF_COLOR_MENUBG "white"
|
||||
struct color color[CWM_COLOR_MAX];
|
||||
|
||||
char termpath[MAXPATHLEN];
|
||||
char lockpath[MAXPATHLEN];
|
||||
|
||||
#define DEFAULTFONTNAME "sans-serif:pixelsize=14:bold"
|
||||
#define DEFAULTFONTNAME "sans-serif:pixelsize=14:bold"
|
||||
char *DefaultFontName;
|
||||
};
|
||||
|
||||
/* Menu stuff */
|
||||
|
||||
#define MENU_MAXENTRY 50
|
||||
|
||||
struct menu {
|
||||
TAILQ_ENTRY(menu) entry;
|
||||
TAILQ_ENTRY(menu) resultentry;
|
||||
|
||||
char text[MENU_MAXENTRY + 1];
|
||||
char print[MENU_MAXENTRY + 1];
|
||||
void *ctx;
|
||||
short dummy;
|
||||
short abort;
|
||||
};
|
||||
|
||||
TAILQ_HEAD(menu_q, menu);
|
||||
|
||||
/* MWM hints */
|
||||
|
||||
struct mwm_hints {
|
||||
u_long flags;
|
||||
u_long functions;
|
||||
u_long decorations;
|
||||
};
|
||||
|
||||
#define MWM_NUMHINTS 3
|
||||
|
||||
#define MWM_NUMHINTS 3
|
||||
#define PROP_MWM_HINTS_ELEMENTS 3
|
||||
#define MWM_HINTS_DECORATIONS (1 << 1)
|
||||
#define MWM_DECOR_ALL (1 << 0)
|
||||
#define MWM_DECOR_BORDER (1 << 1)
|
||||
#define MWM_HINTS_DECORATIONS (1<<1)
|
||||
#define MWM_DECOR_ALL (1<<0)
|
||||
#define MWM_DECOR_BORDER (1<<1)
|
||||
|
||||
__dead void usage(void);
|
||||
|
||||
struct client_ctx *client_find(Window);
|
||||
struct client_ctx *client_new(Window, struct screen_ctx *, int);
|
||||
int client_delete(struct client_ctx *);
|
||||
void client_setactive(struct client_ctx *, int);
|
||||
void client_resize(struct client_ctx *);
|
||||
void client_lower(struct client_ctx *);
|
||||
void client_raise(struct client_ctx *);
|
||||
void client_move(struct client_ctx *);
|
||||
void client_leave(struct client_ctx *);
|
||||
void client_send_delete(struct client_ctx *);
|
||||
struct client_ctx *client_current(void);
|
||||
void client_hide(struct client_ctx *);
|
||||
void client_unhide(struct client_ctx *);
|
||||
void client_setname(struct client_ctx *);
|
||||
void client_warp(struct client_ctx *);
|
||||
void client_ptrwarp(struct client_ctx *);
|
||||
void client_ptrsave(struct client_ctx *);
|
||||
void client_draw_border(struct client_ctx *);
|
||||
void client_maximize(struct client_ctx *);
|
||||
void client_vertmaximize(struct client_ctx *);
|
||||
void client_horizmaximize(struct client_ctx *);
|
||||
void client_map(struct client_ctx *);
|
||||
void client_mtf(struct client_ctx *);
|
||||
struct client_ctx *client_cycle(struct screen_ctx *, int);
|
||||
void client_getsizehints(struct client_ctx *);
|
||||
void client_applysizehints(struct client_ctx *);
|
||||
struct client_ctx *client_current(void);
|
||||
struct client_ctx *client_cycle(struct screen_ctx *, int);
|
||||
int client_delete(struct client_ctx *);
|
||||
void client_draw_border(struct client_ctx *);
|
||||
struct client_ctx *client_find(Window);
|
||||
void client_getsizehints(struct client_ctx *);
|
||||
void client_hide(struct client_ctx *);
|
||||
void client_horizmaximize(struct client_ctx *);
|
||||
void client_leave(struct client_ctx *);
|
||||
void client_lower(struct client_ctx *);
|
||||
void client_map(struct client_ctx *);
|
||||
void client_maximize(struct client_ctx *);
|
||||
void client_move(struct client_ctx *);
|
||||
void client_mtf(struct client_ctx *);
|
||||
struct client_ctx *client_new(Window, struct screen_ctx *, int);
|
||||
void client_ptrsave(struct client_ctx *);
|
||||
void client_ptrwarp(struct client_ctx *);
|
||||
void client_raise(struct client_ctx *);
|
||||
void client_resize(struct client_ctx *);
|
||||
void client_send_delete(struct client_ctx *);
|
||||
void client_setactive(struct client_ctx *, int);
|
||||
void client_setname(struct client_ctx *);
|
||||
void client_unhide(struct client_ctx *);
|
||||
void client_vertmaximize(struct client_ctx *);
|
||||
void client_warp(struct client_ctx *);
|
||||
|
||||
void group_alltoggle(struct screen_ctx *);
|
||||
void group_autogroup(struct client_ctx *);
|
||||
void group_client_delete(struct client_ctx *);
|
||||
void group_cycle(struct screen_ctx *, int);
|
||||
void group_hidetoggle(struct screen_ctx *, int);
|
||||
void group_init(struct screen_ctx *);
|
||||
void group_make_autogroup(struct conf *, char *, int);
|
||||
void group_menu(XButtonEvent *);
|
||||
void group_movetogroup(struct client_ctx *, int);
|
||||
void group_only(struct screen_ctx *, int);
|
||||
void group_sticky(struct client_ctx *);
|
||||
void group_sticky_toggle_enter(struct client_ctx *);
|
||||
void group_sticky_toggle_exit(struct client_ctx *);
|
||||
void group_update_names(struct screen_ctx *);
|
||||
|
||||
void search_match_client(struct menu_q *, struct menu_q *,
|
||||
char *);
|
||||
void search_match_exec(struct menu_q *, struct menu_q *,
|
||||
char *);
|
||||
void search_match_text(struct menu_q *, struct menu_q *,
|
||||
char *);
|
||||
void search_print_client(struct menu *, int);
|
||||
|
||||
XineramaScreenInfo *screen_find_xinerama(struct screen_ctx *, int, int);
|
||||
struct screen_ctx *screen_fromroot(Window);
|
||||
void screen_init_xinerama(struct screen_ctx *);
|
||||
void screen_update_geometry(struct screen_ctx *, int, int);
|
||||
void screen_updatestackingorder(struct screen_ctx *);
|
||||
|
||||
void kbfunc_client_cycle(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_cyclegroup(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_delete(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_group(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_grouponly(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_grouptoggle(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_hide(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_hmaximize(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_label(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_lower(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_maximize(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_movetogroup(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_nogroup(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_raise(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_rcycle(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_search(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_vmaximize(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_cmdexec(struct client_ctx *, union arg *);
|
||||
void kbfunc_exec(struct client_ctx *, union arg *);
|
||||
void kbfunc_lock(struct client_ctx *, union arg *);
|
||||
void kbfunc_menu_search(struct client_ctx *, union arg *);
|
||||
void kbfunc_moveresize(struct client_ctx *, union arg *);
|
||||
void kbfunc_quit_wm(struct client_ctx *, union arg *);
|
||||
void kbfunc_reload(struct client_ctx *, union arg *);
|
||||
void kbfunc_ssh(struct client_ctx *, union arg *);
|
||||
void kbfunc_term(struct client_ctx *, union arg *);
|
||||
|
||||
void mousefunc_menu_cmd(struct client_ctx *, void *);
|
||||
void mousefunc_menu_group(struct client_ctx *, void *);
|
||||
void mousefunc_menu_unhide(struct client_ctx *, void *);
|
||||
void mousefunc_window_grouptoggle(struct client_ctx *,
|
||||
void *);
|
||||
void mousefunc_window_hide(struct client_ctx *, void *);
|
||||
void mousefunc_window_lower(struct client_ctx *, void *);
|
||||
void mousefunc_window_move(struct client_ctx *, void *);
|
||||
void mousefunc_window_resize(struct client_ctx *, void *);
|
||||
|
||||
struct menu *menu_filter(struct screen_ctx *, struct menu_q *,
|
||||
char *, char *, int,
|
||||
@ -378,138 +415,63 @@ struct menu *menu_filter(struct screen_ctx *, struct menu_q *,
|
||||
void (*)(struct menu *, int));
|
||||
void menu_init(struct screen_ctx *);
|
||||
|
||||
void xev_loop(void);
|
||||
|
||||
void xu_getatoms(void);
|
||||
int xu_ptr_grab(Window, int, Cursor);
|
||||
void xu_btn_grab(Window, int, u_int);
|
||||
int xu_ptr_regrab(int, Cursor);
|
||||
void xu_btn_ungrab(Window, int, u_int);
|
||||
void xu_ptr_ungrab(void);
|
||||
void xu_ptr_setpos(Window, int, int);
|
||||
void xu_ptr_getpos(Window, int *, int *);
|
||||
void xu_key_grab(Window, int, int);
|
||||
void xu_key_ungrab(Window, int, int);
|
||||
void xu_configure(struct client_ctx *);
|
||||
void xu_sendmsg(Window, Atom, long);
|
||||
int xu_getprop(Window, Atom, Atom, long, u_char **);
|
||||
int xu_getstrprop(Window, Atom, char **);
|
||||
void xu_setstate(struct client_ctx *, int);
|
||||
int xu_getstate(struct client_ctx *, int *);
|
||||
unsigned long xu_getcolor(struct screen_ctx *, char *);
|
||||
void xu_freecolor(struct screen_ctx *, unsigned long);
|
||||
void xu_setwmname(struct screen_ctx *);
|
||||
|
||||
int u_spawn(char *);
|
||||
void u_exec(char *);
|
||||
|
||||
void xfree(void *);
|
||||
void *xmalloc(size_t);
|
||||
void *xcalloc(size_t, size_t);
|
||||
char *xstrdup(const char *);
|
||||
|
||||
struct screen_ctx *screen_fromroot(Window);
|
||||
void screen_updatestackingorder(struct screen_ctx *);
|
||||
void screen_update_geometry(struct screen_ctx *, int, int);
|
||||
void screen_init_xinerama(struct screen_ctx *);
|
||||
XineramaScreenInfo *screen_find_xinerama(struct screen_ctx *, int, int);
|
||||
|
||||
void conf_setup(struct conf *, const char *);
|
||||
void conf_client(struct client_ctx *);
|
||||
void conf_grab(struct conf *, struct keybinding *);
|
||||
void conf_ungrab(struct conf *, struct keybinding *);
|
||||
void conf_bindname(struct conf *, char *, char *);
|
||||
void conf_mousebind(struct conf *, char *, char *);
|
||||
void conf_grab_mouse(struct client_ctx *);
|
||||
void conf_reload(struct conf *);
|
||||
void conf_gap(struct conf *, struct screen_ctx *);
|
||||
void conf_font(struct conf *, struct screen_ctx *);
|
||||
void conf_color(struct conf *, struct screen_ctx *);
|
||||
void conf_init(struct conf *);
|
||||
void conf_clear(struct conf *);
|
||||
void conf_cmd_add(struct conf *, char *, char *, int);
|
||||
|
||||
int parse_config(const char *, struct conf *);
|
||||
|
||||
void kbfunc_client_lower(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_raise(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_search(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_hide(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_cycle(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_rcycle(struct client_ctx *, union arg *);
|
||||
void kbfunc_cmdexec(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_label(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_delete(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_group(struct client_ctx *, union arg *);
|
||||
void kbfunc_client_grouponly(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_cyclegroup(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_nogroup(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_grouptoggle(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_movetogroup(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_maximize(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_vmaximize(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_client_hmaximize(struct client_ctx *,
|
||||
union arg *);
|
||||
void kbfunc_reload(struct client_ctx *, union arg *);
|
||||
void kbfunc_quit_wm(struct client_ctx *, union arg *);
|
||||
void kbfunc_moveresize(struct client_ctx *, union arg *);
|
||||
void kbfunc_menu_search(struct client_ctx *, union arg *);
|
||||
void kbfunc_exec(struct client_ctx *, union arg *);
|
||||
void kbfunc_ssh(struct client_ctx *, union arg *);
|
||||
void kbfunc_term(struct client_ctx *, union arg *);
|
||||
void kbfunc_lock(struct client_ctx *, union arg *);
|
||||
|
||||
void mousefunc_window_resize(struct client_ctx *, void *);
|
||||
void mousefunc_window_move(struct client_ctx *, void *);
|
||||
void mousefunc_window_grouptoggle(struct client_ctx *,
|
||||
void *);
|
||||
void mousefunc_window_lower(struct client_ctx *, void *);
|
||||
void mousefunc_window_hide(struct client_ctx *, void *);
|
||||
void mousefunc_menu_group(struct client_ctx *, void *);
|
||||
void mousefunc_menu_unhide(struct client_ctx *, void *);
|
||||
void mousefunc_menu_cmd(struct client_ctx *, void *);
|
||||
|
||||
void search_match_client(struct menu_q *, struct menu_q *,
|
||||
char *);
|
||||
void search_print_client(struct menu *, int);
|
||||
void search_match_text(struct menu_q *, struct menu_q *,
|
||||
char *);
|
||||
void search_match_exec(struct menu_q *, struct menu_q *,
|
||||
char *);
|
||||
|
||||
void group_init(struct screen_ctx *);
|
||||
void group_make_autogroup(struct conf *, char *, int);
|
||||
void group_update_names(struct screen_ctx *);
|
||||
void group_hidetoggle(struct screen_ctx *, int);
|
||||
void group_only(struct screen_ctx *, int);
|
||||
void group_cycle(struct screen_ctx *, int);
|
||||
void group_sticky(struct client_ctx *);
|
||||
void group_client_delete(struct client_ctx *);
|
||||
void group_menu(XButtonEvent *);
|
||||
void group_alltoggle(struct screen_ctx *);
|
||||
void group_sticky_toggle_enter(struct client_ctx *);
|
||||
void group_sticky_toggle_exit(struct client_ctx *);
|
||||
void group_autogroup(struct client_ctx *);
|
||||
void group_movetogroup(struct client_ctx *, int);
|
||||
void conf_bindname(struct conf *, char *, char *);
|
||||
void conf_clear(struct conf *);
|
||||
void conf_client(struct client_ctx *);
|
||||
void conf_cmd_add(struct conf *, char *, char *, int);
|
||||
void conf_color(struct conf *, struct screen_ctx *);
|
||||
void conf_font(struct conf *, struct screen_ctx *);
|
||||
void conf_gap(struct conf *, struct screen_ctx *);
|
||||
void conf_grab(struct conf *, struct keybinding *);
|
||||
void conf_grab_mouse(struct client_ctx *);
|
||||
void conf_init(struct conf *);
|
||||
void conf_mousebind(struct conf *, char *, char *);
|
||||
void conf_reload(struct conf *);
|
||||
void conf_setup(struct conf *, const char *);
|
||||
void conf_ungrab(struct conf *, struct keybinding *);
|
||||
|
||||
int font_ascent(struct screen_ctx *);
|
||||
int font_descent(struct screen_ctx *);
|
||||
void font_draw(struct screen_ctx *, const char *, int,
|
||||
Drawable, int, int);
|
||||
u_int font_height(struct screen_ctx *);
|
||||
void font_init(struct screen_ctx *);
|
||||
int font_width(struct screen_ctx *, const char *, int);
|
||||
void font_draw(struct screen_ctx *, const char *, int,
|
||||
Drawable, int, int);
|
||||
XftFont *font_make(struct screen_ctx *, const char *);
|
||||
|
||||
/* Externs */
|
||||
void xev_loop(void);
|
||||
|
||||
void xu_btn_grab(Window, int, u_int);
|
||||
void xu_btn_ungrab(Window, int, u_int);
|
||||
void xu_configure(struct client_ctx *);
|
||||
void xu_freecolor(struct screen_ctx *, unsigned long);
|
||||
void xu_getatoms(void);
|
||||
unsigned long xu_getcolor(struct screen_ctx *, char *);
|
||||
int xu_getprop(Window, Atom, Atom, long, u_char **);
|
||||
int xu_getstate(struct client_ctx *, int *);
|
||||
int xu_getstrprop(Window, Atom, char **);
|
||||
void xu_key_grab(Window, int, int);
|
||||
void xu_key_ungrab(Window, int, int);
|
||||
void xu_ptr_getpos(Window, int *, int *);
|
||||
int xu_ptr_grab(Window, int, Cursor);
|
||||
int xu_ptr_regrab(int, Cursor);
|
||||
void xu_ptr_setpos(Window, int, int);
|
||||
void xu_ptr_ungrab(void);
|
||||
void xu_sendmsg(Window, Atom, long);
|
||||
void xu_setstate(struct client_ctx *, int);
|
||||
void xu_setwmname(struct screen_ctx *);
|
||||
|
||||
void u_exec(char *);
|
||||
int u_spawn(char *);
|
||||
|
||||
void *xcalloc(size_t, size_t);
|
||||
void xfree(void *);
|
||||
void *xmalloc(size_t);
|
||||
char *xstrdup(const char *);
|
||||
|
||||
/* Externs */
|
||||
extern Display *X_Dpy;
|
||||
|
||||
extern Cursor Cursor_move;
|
||||
@ -519,12 +481,10 @@ extern Cursor Cursor_default;
|
||||
extern Cursor Cursor_question;
|
||||
|
||||
extern struct screen_ctx_q Screenq;
|
||||
extern struct screen_ctx *curscreen;
|
||||
|
||||
extern struct client_ctx_q Clientq;
|
||||
extern struct conf Conf;
|
||||
|
||||
extern int HasXinerama, HasRandr, Randr_ev;
|
||||
extern struct conf Conf;
|
||||
|
||||
#define WM_STATE cwm_atoms[0]
|
||||
#define WM_DELETE_WINDOW cwm_atoms[1]
|
||||
|
Loading…
Reference in New Issue
Block a user