aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/dwm/dwm.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cmd/dwm/dwm.h')
-rw-r--r--sys/cmd/dwm/dwm.h39
1 files changed, 26 insertions, 13 deletions
diff --git a/sys/cmd/dwm/dwm.h b/sys/cmd/dwm/dwm.h
index d8bfbb3..070717e 100644
--- a/sys/cmd/dwm/dwm.h
+++ b/sys/cmd/dwm/dwm.h
@@ -20,6 +20,8 @@
#include <X11/XKBlib.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
+#include <X11/Xlib-xcb.h>
+#include <xcb/res.h>
#include <X11/extensions/Xinerama.h>
#include <X11/Xft/Xft.h>
@@ -125,9 +127,11 @@ struct Client {
int basew, baseh, incw, inch, maxw, maxh, minw, minh;
int bw, oldbw;
uint tags;
- int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
+ int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isterm, noswallow;
+ pid_t pid;
Client *next;
Client *snext;
+ Client *swallowing;
Monitor *mon;
Window win;
};
@@ -172,15 +176,14 @@ struct Rule {
char *title;
uint tags;
int isfloating;
+ int isterm;
+ int noswallow;
int monitor;
};
/* draw.c */
typedef struct {
- union {
- Cursor;
- Cursor cursor;
- };
+ Cursor cursor;
} Cur;
typedef struct Fnt {
@@ -191,7 +194,7 @@ typedef struct Fnt {
struct Fnt *next;
} Fnt;
-typedef XftColor Color;
+typedef XftColor Clr;
typedef struct {
uint w, h;
@@ -200,14 +203,15 @@ typedef struct {
Window root;
Drawable drawable;
GC gc;
- Color *scheme;
- Font *fonts;
+ Clr *scheme;
+ Fnt *fonts;
} Drw;
/* global state */
extern char broken[];
extern char stext[256];
+extern int scanner;
extern int screen;
extern int sw, sh;
extern int bh, blw;
@@ -216,10 +220,12 @@ extern int (*xerrorxlib)(Display *, XErrorEvent *);
extern uint numlockmask;
extern void (*handler[LASTEvent]) (XEvent *);
+extern xcb_connection_t *xcon;
+
extern Atom wmatom[WMLast], netatom[NetLast];
extern int running;
-extern Cur *cursor[MouseLast];
-extern Color **scheme;
+extern Cur *cursor[MouseLast];
+extern Clr **scheme;
extern Display *dpy;
extern Drw *drw;
extern Monitor *mons, *selmon;
@@ -296,9 +302,12 @@ void setup(void);
void seturgent(Client *c, int urg);
void showhide(Client *c);
void sigchld(int unused);
+void swallow(Client *p, Client *c);
+Client *swallowing(Window w);
void spawn(Arg *arg);
void tag(Arg *arg);
void tagmon(Arg *arg);
+Client *termof(Client *c);
void tile(Monitor *);
void togglebar(Arg *arg);
void togglefocus(Arg *arg);
@@ -308,6 +317,7 @@ void toggleview(Arg *arg);
void unfocus(Client *c, int setfocus);
void unmanage(Client *c, int destroyed);
void unmapnotify(XEvent *e);
+void unswallow(Client *c);
void updatebarpos(Monitor *m);
void updatebars(void);
void updateclientlist(void);
@@ -319,6 +329,7 @@ void updatetitle(Client *c);
void updatewindowtype(Client *c);
void updatewmhints(Client *c);
void view(Arg *arg);
+pid_t winpid(Window w);
Client *wintoclient(Window w);
Monitor *wintomon(Window w);
int xerror(Display *dpy, XErrorEvent *ee);
@@ -342,8 +353,8 @@ uint drw_fontset_getwidth(Drw *drw, char *text);
void drw_font_getexts(Fnt *font, char *text, uint len, uint *w, uint *h);
/* Colorscheme abstraction */
-void drw_clr_create(Drw *drw, Color *dest, char *clrname);
-Color *drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount);
+void drw_clr_create(Drw *drw, Clr *dest, char *clrname);
+Clr *drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount);
/* Cursor abstraction */
Cur *drw_cur_create(Drw *drw, int shape);
@@ -351,7 +362,7 @@ void drw_cur_free(Drw *drw, Cur *cursor);
/* Drawing context manipulation */
void drw_setfontset(Drw *drw, Fnt *set);
-void drw_setscheme(Drw *drw, Color *scm);
+void drw_setscheme(Drw *drw, Clr *scm);
/* Drawing functions */
void drw_rect(Drw *drw, int x, int y, uint w, uint h, int filled, int invert);
@@ -363,3 +374,5 @@ void drw_map(Drw *drw, Window win, int x, int y, uint w, uint h);
/* util.c */
void fatal(char *fmt, ...);
void *ecalloc(size_t nmemb, size_t size);
+pid_t getparentproc(pid_t p);
+pid_t isdescendent(pid_t p, pid_t c);