aboutsummaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/dwm.c4
-rw-r--r--src/core/dwm.h2
-rw-r--r--src/core/globals.h21
-rw-r--r--src/core/types.h158
4 files changed, 182 insertions, 3 deletions
diff --git a/src/core/dwm.c b/src/core/dwm.c
index cd7fdb0..6d4cdcd 100644
--- a/src/core/dwm.c
+++ b/src/core/dwm.c
@@ -851,7 +851,7 @@ Atom getatomprop(Client *c, Atom prop)
851 return atom; 851 return atom;
852} 852}
853 853
854unsigned int getsystraywidth() 854unsigned int getsystraywidth(void)
855{ 855{
856 unsigned int w = 0; 856 unsigned int w = 0;
857 Client *i; 857 Client *i;
@@ -1970,7 +1970,7 @@ void updatebarpos(Monitor *m)
1970 m->by = -bh; 1970 m->by = -bh;
1971} 1971}
1972 1972
1973void updateclientlist() 1973void updateclientlist(void)
1974{ 1974{
1975 Client *c; 1975 Client *c;
1976 Monitor *m; 1976 Monitor *m;
diff --git a/src/core/dwm.h b/src/core/dwm.h
index 273645a..d3bdf5a 100644
--- a/src/core/dwm.h
+++ b/src/core/dwm.h
@@ -153,7 +153,7 @@ static void focusin(XEvent *e);
153static Atom getatomprop(Client *c, Atom prop); 153static Atom getatomprop(Client *c, Atom prop);
154static int getrootptr(int *x, int *y); 154static int getrootptr(int *x, int *y);
155static long getstate(Window w); 155static long getstate(Window w);
156static unsigned int getsystraywidth(); 156static unsigned int getsystraywidth(void);
157static int gettextprop(Window w, Atom atom, char *text, unsigned int size); 157static int gettextprop(Window w, Atom atom, char *text, unsigned int size);
158static void grabbuttons(Client *c, int focused); 158static void grabbuttons(Client *c, int focused);
159static void grabkeys(void); 159static void grabkeys(void);
diff --git a/src/core/globals.h b/src/core/globals.h
new file mode 100644
index 0000000..4b800fe
--- /dev/null
+++ b/src/core/globals.h
@@ -0,0 +1,21 @@
1
2#pragma once
3
4#include "types.h"
5
6extern Display *dpy;
7extern Window root, wmcheckwin;
8
9extern Monitor *mons, *selmon;
10
11extern int screen;
12extern int sw, sh;
13extern int bh;
14extern int running;
15extern unsigned int numlockmask;
16
17extern Atom wmatom[WMLast];
18extern Atom netatom[NetLast];
19extern Atom xatom[XLast];
20
21extern Systray *systray;
diff --git a/src/core/types.h b/src/core/types.h
new file mode 100644
index 0000000..dc10fc0
--- /dev/null
+++ b/src/core/types.h
@@ -0,0 +1,158 @@
1
2#pragma once
3
4#include <X11/Xatom.h>
5#include <X11/Xlib.h>
6#include <sys/types.h>
7
8/* cursors */
9enum { CurNormal, CurResize, CurMove, CurLast };
10
11/* color schemes */
12enum { SchemeNorm, SchemeSel };
13
14/* EWMH atoms */
15enum {
16 NetSupported,
17 NetWMName,
18 NetWMState,
19 NetWMCheck,
20 NetSystemTray,
21 NetSystemTrayOP,
22 NetSystemTrayOrientation,
23 NetSystemTrayOrientationHorz,
24 NetWMFullscreen,
25 NetActiveWindow,
26 NetWMWindowType,
27 NetWMWindowTypeDialog,
28 NetClientList,
29 NetLast
30};
31
32/* XEmbed */
33enum { Manager, Xembed, XembedInfo, XLast };
34
35/* ICCCM */
36enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast };
37
38/* clicks */
39enum {
40 ClkTagBar,
41 ClkLtSymbol,
42 ClkStatusText,
43 ClkWinTitle,
44 ClkClientWin,
45 ClkRootWin,
46 ClkLast
47};
48
49/* generic argument */
50typedef union {
51 int i;
52 unsigned int ui;
53 float f;
54 const void *v;
55} Arg;
56
57/* input */
58typedef struct {
59 unsigned int click;
60 unsigned int mask;
61 unsigned int button;
62 void (*func)(const Arg *arg);
63 const Arg arg;
64} Button;
65
66typedef struct {
67 unsigned int mod;
68 KeySym keysym;
69 void (*func)(const Arg *);
70 const Arg arg;
71} Key;
72
73/* forward decls */
74typedef struct Client Client;
75typedef struct Monitor Monitor;
76
77/* layout */
78typedef struct {
79 const char *symbol;
80 void (*arrange)(Monitor *);
81} Layout;
82
83/* client */
84struct Client {
85 char name[256];
86
87 float mina, maxa;
88 int basew, baseh, incw, inch, maxw, maxh, minw, minh;
89 int hintsvalid;
90
91 int x, y, w, h;
92 int oldx, oldy, oldw, oldh;
93 int bw, oldbw;
94
95 unsigned int tags;
96 int isfixed, isfloating, isurgent, neverfocus;
97 int oldstate, isfullscreen;
98 int isterminal, noswallow;
99
100 pid_t pid;
101
102 Client *next;
103 Client *snext;
104 Client *swallowing;
105
106 Monitor *mon;
107 Window win;
108};
109
110/* monitor */
111struct Monitor {
112 char ltsymbol[16];
113
114 float mfact;
115 int nmaster;
116 int num;
117
118 int mx, my, mw, mh;
119 int wx, wy, ww, wh;
120 int by;
121
122 int gappih, gappiv;
123 int gappoh, gappov;
124
125 unsigned int seltags;
126 unsigned int sellt;
127 unsigned int tagset[2];
128
129 int showbar;
130 int topbar;
131
132 Client *clients;
133 Client *sel;
134 Client *stack;
135
136 Monitor *next;
137 Window barwin;
138
139 const Layout *lt[2];
140};
141
142/* rules */
143typedef struct {
144 const char *class;
145 const char *instance;
146 const char *title;
147 unsigned int tags;
148 int isfloating;
149 int isterminal;
150 int noswallow;
151 int monitor;
152} Rule;
153
154/* systray */
155typedef struct Systray {
156 Window win;
157 Client *icons;
158} Systray;